From 538f7f8a9557cf9d1d104aa9e9113cc4cbd4c914 Mon Sep 17 00:00:00 2001 From: cmcm2222 Date: Thu, 6 Jun 2019 12:28:55 +0900 Subject: [PATCH 1/9] [WIP] wiki translate in Korean --- docs/community_KR.md | 27 +++++ docs/index_KR.md | 27 +++++ docs/news.md | 6 +- docs/news_KR.md | 14 +++ docs/polkadot/build/cumulus_KR.md | 29 +++++ docs/polkadot/build/deploy-parachains_KR.md | 87 ++++++++++++++ docs/polkadot/build/dev-roadmap_KR.md | 48 ++++++++ docs/polkadot/build/examples/index_KR.md | 33 ++++++ docs/polkadot/build/extrinsic-format_KR.md | 40 +++++++ docs/polkadot/build/hackathon_KR.md | 57 +++++++++ docs/polkadot/build/index_KR.md | 41 +++++++ docs/polkadot/build/networks_KR.md | 69 +++++++++++ docs/polkadot/build/rust-style-guide_KR.md | 108 +++++++++++++++++ docs/polkadot/build/tools/index_KR.md | 76 ++++++++++++ docs/polkadot/build/tools/subkey_KR.md | 55 +++++++++ ...\354\247\270\353\241\234 parachains_KR.md" | 58 +++++++++ ...10\354\247\270\353\241\234 phragmen_KR.md" | 32 +++++ docs/polkadot/learn/DOT_KR.md | 50 ++++++++ docs/polkadot/learn/PRE_KR.md | 23 ++++ docs/polkadot/learn/bridges_KR.md | 40 +++++++ docs/polkadot/learn/consensus_KR.md | 92 ++++++++++++++ docs/polkadot/learn/cryptography_KR.md | 23 ++++ docs/polkadot/learn/implementations_KR.md | 20 ++++ docs/polkadot/learn/index_KR.md | 29 +++++ docs/polkadot/learn/introduction_KR.md | 35 ++++++ docs/polkadot/learn/randomness_KR.md | 21 ++++ docs/polkadot/learn/spree_KR.md | 23 ++++ docs/polkadot/learn/wasm_KR.md | 14 +++ docs/research_KR.md | 3 + mkdocs_KR.yml | 112 ++++++++++++++++++ 30 files changed, 1289 insertions(+), 3 deletions(-) create mode 100644 docs/community_KR.md create mode 100644 docs/index_KR.md create mode 100644 docs/news_KR.md create mode 100644 docs/polkadot/build/cumulus_KR.md create mode 100644 docs/polkadot/build/deploy-parachains_KR.md create mode 100644 docs/polkadot/build/dev-roadmap_KR.md create mode 100644 docs/polkadot/build/examples/index_KR.md create mode 100644 docs/polkadot/build/extrinsic-format_KR.md create mode 100644 docs/polkadot/build/hackathon_KR.md create mode 100644 docs/polkadot/build/index_KR.md create mode 100644 docs/polkadot/build/networks_KR.md create mode 100644 docs/polkadot/build/rust-style-guide_KR.md create mode 100644 docs/polkadot/build/tools/index_KR.md create mode 100644 docs/polkadot/build/tools/subkey_KR.md create mode 100644 "docs/polkadot/learn/7\353\262\210\354\247\270\353\241\234 parachains_KR.md" create mode 100644 "docs/polkadot/learn/9\353\262\210\354\247\270\353\241\234 phragmen_KR.md" create mode 100644 docs/polkadot/learn/DOT_KR.md create mode 100644 docs/polkadot/learn/PRE_KR.md create mode 100644 docs/polkadot/learn/bridges_KR.md create mode 100644 docs/polkadot/learn/consensus_KR.md create mode 100644 docs/polkadot/learn/cryptography_KR.md create mode 100644 docs/polkadot/learn/implementations_KR.md create mode 100644 docs/polkadot/learn/index_KR.md create mode 100644 docs/polkadot/learn/introduction_KR.md create mode 100644 docs/polkadot/learn/randomness_KR.md create mode 100644 docs/polkadot/learn/spree_KR.md create mode 100644 docs/polkadot/learn/wasm_KR.md create mode 100644 docs/research_KR.md create mode 100644 mkdocs_KR.yml diff --git a/docs/community_KR.md b/docs/community_KR.md new file mode 100644 index 00000000..282769a6 --- /dev/null +++ b/docs/community_KR.md @@ -0,0 +1,27 @@ +# 커뮤니티 + +The Polkadot 커뮤니티는 매일 확장되고 있습니다. 아래는 가장 핵심적인 커뮤니티 채널들의 리스트입니다. + +## General + +- [Join the Polkadot PoC-4 Testnet ("Alexander")](https://polkadot.js.org/apps/#/explorer) - Access the UI dashboard for interacting with the latest Polkadot testnet. +- [Polkadot GitHub](https://github.com/paritytech/polkadot/) - Parity maintained repository that houses the Rust implementation of the Polkadot runtime environment. +- [Polkadot meetups](https://github.com/w3f/Web3-collaboration/blob/master/meetups.md) - Information on hosting meetup이나 모금, and materials for running it. + +## Riot + +- [Polkadot Beginners Lounge](https://riot.im/app/#/room/#polkadotnoobs:matrix.org) - Polkadot을 처음 시작하는 사람들을 위한 곳입니다. **질문하기 좋은 장소예요!** +- [Polkadot Watercooler Chat](https://riot.im/app/#/room/#polkadot-watercooler:matrix.org) - Polkadot에 대해서 수다떠는 방. +- [Substrate Technical](https://riot.im/app/#/room/#substrate-technical:matrix.org) - 서브스트레이트(Substrate)를 빌드하고 구동하는데 관련된 기술적인 질문을 하는 곳. + +## Socials + +- [Subscribe to the Polkadot newsletter](https://polkadot.network/#roadmap) - Email sign up form is available at the bottom of the page. +- [Polkadot Telegram](https://t.me/polkadotofficial) - Official Telegram room for discussion of Polkadot (please read the rules before chatting). +- [Polkadot Twitter](https://twitter.com/polkadotnetwork) - Official Twitter account of Polkadot. +- [Polkadot Reddit](https://www.reddit.com/r/dot/) - Official Polkadot Reddit. +- [Polkadot Youtube Channel](https://www.youtube.com/channel/UCB7PbjuZLEba_znc7mEGNgw) - Video content from founders and build of Polkadot describing the network and the vision. + +## Ecosystem + +- [Teams Building on Polkadot](https://forum.web3.foundation/t/teams-building-on-polkadot/67) - Maintained list of teams building on Polkadot and/or Substrate. \ No newline at end of file diff --git a/docs/index_KR.md b/docs/index_KR.md new file mode 100644 index 00000000..ae21dc0c --- /dev/null +++ b/docs/index_KR.md @@ -0,0 +1,27 @@ +# 폴카닷 위키(Polkadot Wiki) + + + +폴카닷 위키에 오신것을 환영합니다. 여기에서 폴카닷 프로토콜에 대해서 배우고 노드를 구동시켜보고 네트워크를 만들어 볼 수 있습니다. +폴카닷에 대한 소개글을 찾으신다면 [이 링크](./polkadot/learn/introduction_KR.md)를 참고하세요. + +## 좀 더 자료가 필요하시다면 + +- [위키 돌아다녀 보기](./polkadot/learn/index_KR.md) - 위키의 정보 섹션을 읽어보세요. +- [관련된 링크들](./polkadot/learn/relevant-links-KR.md) - **폴카닷 과 관련된 전반적인 모든 링크들.** + +## 폴카닷 위에서 구현해보고 싶으신 것이 있다면 + +- [Builders Portal](./polkadot/build) - build하는데 도움을 줄 도구와 라이브러리들. +- [스타터 가이드](./polkadot/build/build-with-polkadot_KR.md) - **Polkadot에서 어떻게 프로젝트를 시작할것인가에 대한 전체적인 개요들.** + +## 노드 구동을 하고 싶다면 + +- [노드 구동하기](./polkadot/node/) - Polkadot network에서 노드를 구동 할 때 필요한 정보들. + +## Resources + +- [Community / Ecosystem](./community.md) - Polkadot과 관련된 커뮤니티 들과 채널들. +- [News](./news.md) - Polkadot의 핫한 주간 뉴스들. 매주 발행됩니다. +- [Sample Applications](./polkadot/build/examples/) - Polkadot에서 구현되고 있거나 이미 구현된 샘플 어플리케이션들 +- [Contributing Guide](./contributing.md) - wiki에 기여하기 위해 필요한 규칙들 diff --git a/docs/news.md b/docs/news.md index ad9dccf3..4e515ec8 100644 --- a/docs/news.md +++ b/docs/news.md @@ -6,9 +6,9 @@ This Week in Polkadot is a weekly aggregation of the top news in the Polkadot sp - [This Week in Polkadot 9](https://www.reddit.com/r/dot/comments/bj3mvo/this_week_in_polkadot/) - April 30, 2019 - [This Week in Polkadot 8](https://www.reddit.com/r/dot/comments/bgkjhj/this_week_in_polkadot/) - April 23, 2019 - [This Week in Polkadot 7](https://www.reddit.com/r/dot/comments/bdyg5w/this_week_in_polkadot/) - April 16, 2019 -- [This Week in Polkadot 6](https://www.reddit.com/r/dot/comments/bayezl/this_week_in_polkadot/) - April 8, 2019 +- [This Week in Polkadot 6](https://www.reddit.com/r/dot/comments/bayezl/this_week_in_polkadot/) - April 8, 2019 - [This Week in Polkadot 5](https://www.reddit.com/r/dot/comments/b87807/this_week_in_polkadot/) - April 1, 2019 -- [This Week in Polkadot 4](https://www.reddit.com/r/dot/comments/b532hl/this_week_in_polkadot/) - March 25, 2019 +- [This Week in Polkadot 4](https://www.reddit.com/r/dot/comments/b532hl/this_week_in_polkadot/) - March 25, 2019 - [This Week in Polkadot 3](https://www.reddit.com/r/dot/comments/b1ja5z/this_week_in_rdot_march_15_2019/) - March 15, 2019 - [This Week in Polkadot 2](https://www.reddit.com/r/dot/comments/av73tg/this_week_in_rdot_february_26_2019_week_2/) - February 26, 2019 -- [This Week in Polkadot](https://www.reddit.com/r/dot/comments/as39xj/this_week_in_rdot_february_18_2019/) - February 18, 2019 +- [This Week in Polkadot](https://www.reddit.com/r/dot/comments/as39xj/this_week_in_rdot_february_18_2019/) - February 18, 2019 \ No newline at end of file diff --git a/docs/news_KR.md b/docs/news_KR.md new file mode 100644 index 00000000..b2f726f2 --- /dev/null +++ b/docs/news_KR.md @@ -0,0 +1,14 @@ +# 폴카닷(Polkadot)의 주간 뉴스 + +This Week in Polkadot is a weekly aggregation of the top news in the Polkadot space, maintained by Rory from W3F. + +- [This Week in Polkadot 10](https://www.reddit.com/r/dot/comments/bm5bmc/this_week_in_polkadot/) - 5월 8일, 2019 +- [This Week in Polkadot 9](https://www.reddit.com/r/dot/comments/bj3mvo/this_week_in_polkadot/) - 4월 30일, 2019 +- [This Week in Polkadot 8](https://www.reddit.com/r/dot/comments/bgkjhj/this_week_in_polkadot/) - 4월 23알, 2019 +- [This Week in Polkadot 7](https://www.reddit.com/r/dot/comments/bdyg5w/this_week_in_polkadot/) - 4월 16일, 2019 +- [This Week in Polkadot 6](https://www.reddit.com/r/dot/comments/bayezl/this_week_in_polkadot/) - 4월 8일, 2019 +- [This Week in Polkadot 5](https://www.reddit.com/r/dot/comments/b87807/this_week_in_polkadot/) - 4월 1일, 2019 +- [This Week in Polkadot 4](https://www.reddit.com/r/dot/comments/b532hl/this_week_in_polkadot/) - 3월 25일, 2019 +- [This Week in Polkadot 3](https://www.reddit.com/r/dot/comments/b1ja5z/this_week_in_rdot_march_15_2019/) - 3월 15일, 2019 +- [This Week in Polkadot 2](https://www.reddit.com/r/dot/comments/av73tg/this_week_in_rdot_february_26_2019_week_2/) - 2월 26일, 2019 +- [This Week in Polkadot](https://www.reddit.com/r/dot/comments/as39xj/this_week_in_rdot_february_18_2019/) - 2월 18일, 2019 \ No newline at end of file diff --git a/docs/polkadot/build/cumulus_KR.md b/docs/polkadot/build/cumulus_KR.md new file mode 100644 index 00000000..a181b25f --- /dev/null +++ b/docs/polkadot/build/cumulus_KR.md @@ -0,0 +1,29 @@ +# Cumulus + +> Cumulus clouds are shaped sort of like dots and are up in the air, like this project (as it is an initial prototype -- expect a rename when it gets cooler.) + +[Cumulus](https://github.com/paritytech/cumulus) is an extension to Substrate that makes it easy to make any Substrate built runtime into a Polkadot compatible parachain. + +## Components + +### Cumulus Consensus + +*cumulus-consensus* is a consensus engine for Substrate which follows a Polkadot relay chain. This will run a Polkadot node internally, and dictate to the client and synchronization algorithms which chain to follow, finalize, and treat as best. + +### Cumulus Runtime + +A wrapper around Substrate runtimes to allow them to be validated by Polkadot validators and provide witness generating routines. It adds a `validate_block` API to the Substrate external interface which will be called by validators. + +Integrating it into your substrate runtime will be as easy as importing the crate and adding this one line macro to your code. + +``` rust +runtime::register_validate_block!(Block, BlockExecutor); +``` + +### Cumulus Collator + +A planned Polkadot collator for a parachain. + +## Resources + +- [Rob's talk from EthCC introducing Cumulus](https://www.youtube.com/watch?v=thgtXq5YMOo) diff --git a/docs/polkadot/build/deploy-parachains_KR.md b/docs/polkadot/build/deploy-parachains_KR.md new file mode 100644 index 00000000..33c37d76 --- /dev/null +++ b/docs/polkadot/build/deploy-parachains_KR.md @@ -0,0 +1,87 @@ +# How to view and deploy parachains + +The guide has been updated to work with the Alexander testnet. + +## How to view parachains + +On the [Polkadot UI](https://polkadot.js.org/apps/#/explorer) navigate to the `Chain State` tab. Select the `parachains` module and the `parachains()` then hit the `+` button. It will return an array of the currently active parachains. + +## How to deploy the Adder parachain + +**You will need to have the minimum deposit needed to create a referendum. Currently this minimum is 5 DOTs.** + +The `adder` parachain is a simple parachain which will keep a value in storage and add to this value as messages are sent to it. It can be found in the Polkadot repository under the `test-parachains` folder. + +> A slightly out-of-date video version of this guide presented by Adrian Brink is available [here](https://www.youtube.com/watch?v=pDqkzvA4C0E). When the two guides diverge, please refer to this written text as definitive and updated. + +### Building the code + +The first step is to download locally the Polkadot code. + +```bash +git clone https://github.com/paritytech/polkadot.git +``` + +Now make sure you have Rust installed. + +```bash +curl https://sh.rustup.rs -sSf | sh +sudo apt install make clang pkg-config libssl-dev +rustup update +``` + +Now navigate to the `test-parachains` folder in the Polkadot code repository and run the build script. + +```bash +cd polkadot/test-parachains +./build.sh +``` + +This will create the Wasm executable of the simple `adder` parachain contained in this folder. This parachain will simply add messages that are sent to it. The Wasm executable will output into the `parachains/test/res/adder.wasm` path so make sure you are able to find it there. + +You will need to build and run the collator node in order to get the genesis state of this parachain. + +Navigate to the `test-parachains/adder/collator` directory and run the `build` and `run` commands. + +```bash +cargo build +cargo run +[ctrl-c] +``` + +Feel free to stop the collator node right away. You will get some output that looks like this: + +``` +Starting adder collator with genesis: +Dec: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 27, 77, 3, 221, 140, 1, 241, 4, 145, 67, +207, 156, 76, 129, 126, 75, 22, 127, 29, 27, 131, 229, 198, 240, 241, 13, 137, 186, 30, 123, 206] +Hex: 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000011b4d03dd8c01f1049143cf9c4c817e4b167f1d1b83e5c6f0f10d89ba1e7bce +``` + +The important information is the hex string. This is your genesis state and you will need to save it for the next steps. + +### Deploying the parachain + +Go to [Polkadot UI](https://polkadot.js.org/apps/#/extrinsics) on the `Extrinsics` tab. Select the account you wish to deploy the parachain from. You will need to create a referendum to deploy the parachain. + +Click on `democracy` -> `propose(proposal,value)` -> `parachains` -> `registerParachain(id,code,initial_head_data)`. + +In the `id` input enter in the id of the parachain. In the case of the simple adder it will be `100`. In the `code` field click on the page button and then upload the `adder.wasm` binary that was compiled from before. In the `initial_head_data` we will copy and paste the hex data that we got from running the collator node. In the `value` field you will need to input the minimum required value for creating a referendum. At the time of writing this is _5 DOTs_ on the Alexander testnet. + +![registering a parachain](../../img/parachain/register.png) + +If you navigate to the `Democracy` tab you will be able to see your proposal in the proposals section. + +Once you wait for the proposal to become a referendum you will be able to vote `Nay` or `Aye` on it. Assumably, you will vote Aye as this will be a vote for the deployment of your parachain. + +![parachain referendum](../../img/parachain/referendum.png) + +After the voting period of your referendum goes through you will be able to query the state of your parachain. + +You can go to the `Chain State` tab and by querying the `parachains` state you should be able to see some information on your parachain. + +![parachain info](../../img/parachain/info.png) + +### Interacting with the parachain + +_Coming soon_ diff --git a/docs/polkadot/build/dev-roadmap_KR.md b/docs/polkadot/build/dev-roadmap_KR.md new file mode 100644 index 00000000..139bfe21 --- /dev/null +++ b/docs/polkadot/build/dev-roadmap_KR.md @@ -0,0 +1,48 @@ +# Roadmap For Developers + +Developers need some guide posts for when they can expect certain milestones +to be reached by the upstream teams. We will try to keep the sections below +up to date with the what we know and add definite dates if possible. + +## Substrate + +### 1.0 + +41% Complete + +[Milestone tracker](https://github.com/paritytech/substrate/milestone/9) + +Expected Features: + + - Final API and stable interfaces + - Ristretto Crypto + - Solid networking + - Outstanding bugs fixed + - Decoupled balances + - Integration tests + - Enhanced control over Wasm/native execution heuristics + - Panics/overflows sweeps in runtime + +### 1.1 + +[Milestone tracker](https://github.com/paritytech/substrate/milestone/4) + +Expected Features: + + - Economic safety + +## Polkadot + +Current release: **PoC-4** + +### PoC 5,6,7 + +7% Progress on issue tracker + +[Milestone tracker](https://github.com/paritytech/polkadot/milestone/2) + +Expected Features: + + - BLS signature aggregation for parachain candidate attestations + - [Integrate Parachain tokens into governance](https://github.com/paritytech/polkadot/issues/124) + - Improvements to parachain validation \ No newline at end of file diff --git a/docs/polkadot/build/examples/index_KR.md b/docs/polkadot/build/examples/index_KR.md new file mode 100644 index 00000000..30cf81de --- /dev/null +++ b/docs/polkadot/build/examples/index_KR.md @@ -0,0 +1,33 @@ +# Examples + +구현 예시들은 개발패턴을 설명하는데 도움이 됩니다. +이 레포지토리는 개발자들에게 도움이 될만한 몇몇 오픈소스 구현 예시들을 모아 놓았습니다. + +## 서브스트레이트(Substrate) 런타임 구현체들 + +### Parity + +- [Shasper](https://github.com/paritytech/shasper)- 서브스트레이트 런타임 으로 구현된 이더리움 2.0. +- [Substrate TCR](https://github.com/parity-samples/substrate-tcr)- 런타임 모듈로 구현된 토큰 큐레이트 레지스트리(Token curated registry). +- [Substrate ERC20](https://github.com/parity-samples/substrate-erc20) - 서브스트레이트에 구현된 ERC20 토큰 표준 (Token standard) . + +### 커뮤니티 + +- AdEx 페이먼트 채널은 섭스트레이트를 사용합니다.[Video](https://www.youtube.com/watch?v=1CeI6Oa1BnU). [Repo](https://github.com/AdExNetwork/adex-protocol-substrate). +- ROS 와 통합된 로보노믹스 모듈(Robonomics modules for integrating with ROS). [Repo](https://github.com/airalab/substrate-node-robonomics) +- Staked Technologies의 서브스트레이트(Substrate) 위에서 플라즈마(Plasma)구현. [Repo](https://github.com/stakedtechnologies/Plasm) +- 엣지웨어(Edgeware). [Repo](https://github.com/hicommonwealth/edgeware-node) +- 프라이버시에 중점을 둔 런타임 모듈인 제로체인 (Zerochain privacy-focused runtime module). + - [Zero-chain Repo](https://github.com/LayerXcom/zero-chain) + - [Bellman-substrate (섭스트레이트 위애서 zksnark 구현) Repo](https://github.com/LayerXcom/bellman-substrate) +- 섭스트레이트 위에서 IPFS 메타데이터를 구현한 Starlog. [Repo](https://github.com/PACTCare/Starlog) +- 섭스트레이트를 사용해서 사과를 파는 "애플 스토어" 구현 예제 (An example "Apple Store" to sell apples using Substrate). [Repo](https://github.com/osuketh/apple-store-substrate) +- 랜드체인(Landchain), 크로스체인 게이밍 플랫폼(cross-chain gaming platform). [Repo](https://github.com/evolutionlandorg/land-chain) +- 조이스트림(Joystream), 유저 중심의 비디로 플랫폼 (user governed video platform). [Repo](https://github.com/Joystream/substrate-node-joystream) +- IPFS 브라우저(IPFS browser). [Repo](https://github.com/Polygos/substrate-node-ipfsbrowser) +- 섭스트레이트 멀티시그(Substrate multisig). [Repo](https://github.com/mixbytes/substrate-module-multisig) +- 머클트리 모듈(Merkle tree module). [Repo](https://github.com/filiplazovic/substrate-merkle-tree) +- 섭스트레트를 사용한 주차 공간 등록기(Parking spaces registry using Substrate). [Repo](https://github.com/yjkimjunior/ParkingSpaceSubstrate) +- 섭스트레이트 고유 데이터 샘플들(Substrate inherents sample). [Repo](https://github.com/gautamdhameja/substrate-inherents-sample) +- 현금성 자산을 위한 대체 불가능 자산으로 담보 만들기 (Collateralize non-fungible assets for cash). [Repo](https://github.com/nczhu/collateral) +- Cid 체인(CidChain). [Repo](https://github.com/Polygos/substrate-node-cidchain) diff --git a/docs/polkadot/build/extrinsic-format_KR.md b/docs/polkadot/build/extrinsic-format_KR.md new file mode 100644 index 00000000..28f63a82 --- /dev/null +++ b/docs/polkadot/build/extrinsic-format_KR.md @@ -0,0 +1,40 @@ +# Polkadot Extrinsic Format aka Transaction Format + +## Old Format + +For reference the **old** extrinsic format was: + +``` +[ account-id (32-bytes), index (4-bytes), call (dynamic-length), signature on first three fields (64 bytes) ] +``` + +## Current Format + +The Polkadot extrinsic format is: + +``` +[ address (1/3/5/9/33-bytes, dependent on first byte), index (4-bytes), call (dynamic-length), signature on *original* fields (64 bytes) ] +``` + +The *original* fields refer to the following from the old extrinsic format: + +``` +[ account-id (32-bytes), index (4-bytes), call (dynamic-length) ] +``` + +The specific format for the new address type is one of 5 sub-formats, switched on the first byte: + +- `0xff, 32-byte account id` +- `0xfe, 8-byte account index` +- `0xfd, 4-byte account index` +- `0xfc, 2-byte account index` +- `[0xf0...0xfb] (invalid, reserved for future use)` +- `[0x00...0xef] 1-byte account index (less than 0xf0)` + +The account index variants are significantly smaller but require a lookup in the state. To avoid a transaction replay attack when an index changes its account, the signature is signed not with the first field as the index, but rather as the account id, thereby invalidating all previous signatures once the index is used to lookup a different id. + +In addition to the sender field, any parameters to Call/Propose (PrivCall) fields that were AccountId (32-bytes) in the old format are now Address (1/3/5/9/33-bytes). + +## Source + +[Substrate #195](https://github.com/paritytech/substrate/pull/195) diff --git a/docs/polkadot/build/hackathon_KR.md b/docs/polkadot/build/hackathon_KR.md new file mode 100644 index 00000000..da74ce82 --- /dev/null +++ b/docs/polkadot/build/hackathon_KR.md @@ -0,0 +1,57 @@ +# Hackathon + +As one of our objectives in the Web3 Foundation is pushing the [Web3 technology stack](http://wiki.web3.foundation/en/latest/tech_stack/tech_stack_overview/), we would like to support any individual or team who wants to organize a hackathon that gets more developers to understand Polkadot/Substrate in your city. + +We are not only providing technical resources for you, but we can have someone from our team give a hands-on workshop/presentation about the technology to help participants get started hacking on it more quickly. + +## Ideas + +- NFT +- Bonded Tokens +- New governance modules with different styles of voting & democracy +- Upgrade the TCR module +- IPFS integration +- Decentralized identity solutions +- Oracle module +- Implement Generalized State Channel/Plasma Chain +- Decentralized Exchange +- Tools for monitoring validator performance +- dApps across different parachains + +## Why you should host a hackathon? + +- Love to deliver the vision of Web3 +- Learn the bleeding-edge technology +- Believe the Web3 technology stack is suitable for developers to build their applications +- Like to make connections + +## How do hackathons differ from workshops? +Hackathon is aimed at participants who want to deliver their prototype and demonstrate their ideas to reality in a short period (few hours - one day). Workshops are more for getting developers familiar with the tooling and understanding more about what are the resources currently available and how they can make use of it. + +## How can you run a hackathon in your city? +1. Submit your application (Coming soon.) +2. Review +3. Decision +4. Follow up + +## How we can help you + +- Provide technical resources/materials. +- Find a venue. +- Ensure the hackathon run smoothly. + +## Upcoming hackathon events + +Coming soon. + +## Template / Starter packs + +Coming soon. + +## Resources + +- [Substrate Developer Hub](https://docs.substrate.dev) + +## Support / Contact + +If you have any questions regarding organizing a hackathon, please free feel to contact us by [email](mailto:events@web3.foundation) or ask us via [Riot](https://riot.im/app/#/room/#polkadot-watercooler:matrix.org) chat. diff --git a/docs/polkadot/build/index_KR.md b/docs/polkadot/build/index_KR.md new file mode 100644 index 00000000..18775ca4 --- /dev/null +++ b/docs/polkadot/build/index_KR.md @@ -0,0 +1,41 @@ +# Builders Portal + +!!! info + _🏗️ Polkadot is under construction, these documents will likely change._ + +Welcome to the builders section of the Polkadot wiki. + +Here you will be able to find the most up-to-date information on the status of the development tools in the @(Polkadot) ecosystem. +We are always adding new tools and frameworks as we learn about them so if you are working on something that should be included please reach out to us on [Riot](https://riot.im/app/#/room/#polkadot-watercooler:matrix.org). + +This section of the wiki is divided into three parts: the first +part takes the shape of a technical guide that will get you quickly +up to speed with developing for Polkadot. The second part is an +up-to-date catalogue of developer tooling. The third part is a +resource which will contain some deeper technical information +that is not available to be found elsewhere. + +## Development Guide + +- [Starter's Guide](./build-with-polkadot.md) - High level overview on choosing a parachain or smart contract, and what resources are available today to get started. +- [Development Roadmap](./dev-roadmap.md) +- [Parachain Development Kits](./pdk.md) - Learn about parachain development kits and create your own parachain. +- [Smart Contracts](./smart-contracts.md) - Learn all about smart contracts on Polkadot and Substrate and how to get started today. + +## Tools + +- [Tools](./tools/index.md) - Maintained list of tools. +- [Subkey](./tools/subkey.md) - Commandline utility for generating Polkadot/Substrate keys. + +## Resources + +- [Extrinsics Format](./extrinsic-format.md) +- [Networks](./networks.md) +- [Examples](./examples/index.md) +- [Rust Style Guide](./rust-style-guide.md) + +## Hackathon + +- [Resources For Running a Hackathon](./hackathon.md) + +_More coming soon._ diff --git a/docs/polkadot/build/networks_KR.md b/docs/polkadot/build/networks_KR.md new file mode 100644 index 00000000..66b1c0f4 --- /dev/null +++ b/docs/polkadot/build/networks_KR.md @@ -0,0 +1,69 @@ +# Networks + +The following commands can be used to connect to the different networks. + +## Development + +Install Polkadot and have a `polkadot` binary install to your `PATH` with: + +```bash +cargo install --git https://github.com/paritytech/polkadot.git polkadot +``` + +You can run a simple single-node development "network" on your machine by running in a terminal: + +```bash +polkadot --dev +``` + +You can muck around by cloning and building the http://github.com/paritytech/polka-ui and http://github.com/paritytech/polkadot-ui or just heading to https://polkadot.js.org/apps. + +## Krumme Lanke + +Krumme Lanke is a testnet network used during the development of PoC-2. + +Install Polkadot PoC-2 and have a `polkadot` binary installed to your `PATH` with: + +```bash +cargo install --git https://github.com/paritytech/substrate.git --branch v0.2 polkadot +``` + +Connect to the global "Krumme Lanke" testnet by default by running: + +```bash +polkadot +``` + +## Alexander (PoC-4) + +Alexander is a testnet network used during the development of PoC-3 and PoC-4. + +Install Polkadot PoC-4 and have a `polkadot` binary installed to your `PATH` with: + +```bash +cargo install --git https://github.com/paritytech/polkadot.git --branch v0.4 polkadot +``` + +Connect to the global "Alexander" testnet by default by running: + +```bash +polkadot +``` + +## Local Two-Node Testnet + +If you want to see the multi-node consensus algorithm in action locally, then +you can create a local testnet. You'll need two terminals open. In one, run: + +```bash +polkadot --chain=local --validator --key Alice -d /tmp/alice +``` + +and in the other, run: + +```bash +polkadot --chain=local --validator --key Bob -d /tmp/bob --port 30334 --bootnodes '/ip4/127.0.0.1/tcp/30333/p2p/ALICE_BOOTNODE_ID_HERE' +``` + +Ensure you replace `ALICE_BOOTNODE_ID_HERE` with the node ID from the output of +the first terminal. diff --git a/docs/polkadot/build/rust-style-guide_KR.md b/docs/polkadot/build/rust-style-guide_KR.md new file mode 100644 index 00000000..3cd7ce90 --- /dev/null +++ b/docs/polkadot/build/rust-style-guide_KR.md @@ -0,0 +1,108 @@ +# 폴카닷(Polkadot)의 러스트(rust) 스타일 가이드 + +- 들여쓰기(Indent)는 탭(tab)을 사용합니다. +- 코드 한 줄은 예외적인 경우에만 80 자 이상이어야 하며 120자를 넘지 않아야합니다. 이 목적으로 탭은 글자 4개의 너비 입니다. +- Indent levels should be greater than 5 only in exceptional circumstances and certainly no greater than 8. If they are greater than 5, then consider using `let` or auxiliary functions in order to strip out complex inline expressions. +- 들여쓰기 레벨은 예외적인 상황에서만 5보다 커야하며 8보다 크지 않아야 합니다. 5보다 크면 복잡한 인라인 표현식을 제거하기 위해`let` 또는 보조 함수를 사용하는 것을 고려하십시오. +- Never have spaces on a line prior to a non-whitespace character +- 공백이 없는 글자보다 먼저 줄에 공백을 두지 마십시오.( code 작성이나 주석 작성시 스페이스바를 먼저 쓰지 말라는 얘기 - 역자 주) +- Follow-on lines are only ever a single indent from the original line. +```rust +fn calculation(some_long_variable_a: i8, some_long_variable_b: i8) -> bool { + let x = some_long_variable_a * some_long_variable_b + - some_long_variable_b / some_long_variable_a + + sqrt(some_long_variable_a) - sqrt(some_long_variable_b); + x > 10 +} +``` +- Indent level should follow open parens/brackets, but should be collapsed to the smallest number of levels actually used: +```rust +fn calculate( + some_long_variable_a: f32, + some_long_variable_b: f32, + some_long_variable_c: f32, +) -> f32 { + (-some_long_variable_b + sqrt( + // two parens open, but since we open & close them both on the + // same line, only one indent level is used + some_long_variable_b * some_long_variable_b + - 4 * some_long_variable_a * some_long_variable_c + // both closed here at beginning of line, so back to the original indent + // level + )) / (2 * some_long_variable_a) +} +``` +- `where` is indented, and its items are indented one further +- Argument lists or function invocations too long to fit on one line are indented similarly to code blocks, and once one param is indented in such a way, all others should be, too. Run-on parameter lists are also acceptable for single-line run-ons of basic function calls. + +```rust +// OK +fn foo( + really_long_parameter_name_1: SomeLongTypeName, + really_long_parameter_name_2: SomeLongTypeName, + shrt_nm_1: u8, + shrt_nm_2: u8, +) { + ... +} + +// NOT OK +fn foo(really_long_parameter_name_1: SomeLongTypeName, really_long_parameter_name_2: SomeLongTypeName, + shrt_nm_1: u8, shrt_nm_2: u8) { + ... +} + +``` + +```rust +{ + // Complex line (not just a function call, also a let statement). Full + // structure. + let (a, b) = bar( + really_long_parameter_name_1, + really_long_parameter_name_2, + shrt_nm_1, + shrt_nm_2, + ); + + // Long, simple function call. + waz( + really_long_parameter_name_1, + really_long_parameter_name_2, + shrt_nm_1, + shrt_nm_2, + ); + + // Short function call. Inline. + baz(a, b); +} +``` + +- Always end last item of a multi-line comma-delimited set with `,` when legal: +```rust +struct Point { + x: T, + y: T, // <-- Multiline comma-delimited lists end with a trailing , +} + +// Single line comma-delimited items do not have a trailing `,` +enum Meal { Breakfast, Lunch, Dinner }; +``` + +- Avoid trailing `;`s where unneeded. +```rust +if condition { + return 1 // <-- no ; here +} +``` + +- `match` arms may be either blocks or have a trailing `,` but not both. +- Blocks should not be used unnecessarily. +```rust +match meal { + Meal::Breakfast => "eggs", + Meal::Lunch => { check_diet(); recipe() }, +// Meal::Dinner => { return Err("Fasting") } // WRONG + Meal::Dinner => return Err("Fasting"), +} +``` diff --git a/docs/polkadot/build/tools/index_KR.md b/docs/polkadot/build/tools/index_KR.md new file mode 100644 index 00000000..cf4b3164 --- /dev/null +++ b/docs/polkadot/build/tools/index_KR.md @@ -0,0 +1,76 @@ +# Tools + +여기에서는 개발에 사용할 수 있는 도구 목록을 제공합니다. 도구들은 프로그래밍 언어별로 정렬됩니다. 현재 Rust 생태계는 가장 성숙했고 현시점의 서브스트레이트 위에서 개발을 시작 할 수 있습니다. 다른 프로그래밍 언어를 둘러싼 생태계가 확장되면 아래 섹션도 채워질것입니다. + +## 블록 탐색기 (Block explorers) + +- [Polka.io](https://polka.io) - 폴카닷(Polkadot)의 블록 탐색기(Blockchain explorer) . +- [Polkadot-JS Apps Explorer](https://polkadot.js.org/apps/#/explorer) - 폴카닷(Polkadot)의 대시보드(dashboard) 블록탐색기(block explorer). 기본설정으로 현재 알렉산더 테스트 넷(Alexander testnet)에 연결되어 있습니다. 다른 외부나 로컬의 엔드포인트(endpoint)로 연결 할 수 있습니다. +- [Polkascan](https://polkascan.io/) - 폴카닷(Polkadot)의 블록 탐색기(Blockchain explorer) . **현재 사용중지.** + +## 지갑들 (Wallets) + +- [Polkadot-JS Apps - Accounts](https://polkadot.js.org/apps/#/accounts) +- [Bonds oo7 Polkadot UI](https://github.com/paritytech/substrate-ui) - Bonds oo7 라이브러리로 만들어진 지갑. +- [Polkawallet](https://polkawallet.io/) - 아이폰(iOs)과 안드로이드(Android)를 둘 다 지원하는 폴카닷 모바일 월렛(mobile wallet for Polkadot). 현재 개발중이며 베타버전은 다운로드가 가능합니다. 이 [GitHub](https://github.com/polkawallet-io/polkawallet-RN)링크에서 확인하세요. +- [SpeckleOS](https://www.speckleos.io/) - 브라우저 확장 월렛, 개발중입니다.- 이 [GitHub](https://github.com/SpeckleOS/speckle-browser-extension)에서 진행사항을 확인 할 수 있습니다. +- [ImageWallet](https://www.reddit.com/r/dot/comments/ah3py1/introducing_alpha_version_of_httpsimagewalletio/) - Cross-chain wallet with visuals. **In development with planned support for Polkadot and all Substrate chains.** + +## 네트워크 모니터링 및 리포팅 툴 (Network Monitoring & Reporting) + +- [Polkadot Telemetry Service](https://telemetry.polkadot.io/) - Network information including what nodes are running the chain, what software versions they are running, sync status, and map showing where they are located. +- Polkabot - Polkadot network monitoring and reporting using Riot chat. Users may create custom bot plugins. [Blogpost](https://medium.com/polkadot-network/polkabot-a3dba18c20c8). [Github Repository](https://gitlab.com/Polkabot/polkabot) + +## 러스트 (Rust) + +### 클라이언트 + +- [Polkadot](https://github.com/paritytech/polkadot) - 러스트로 구현된 폴카닷 런타임 환경(Polkadot Runtime Environment). + +### Tools + +- [서브스트레이트(Substrate)](https://github.com/paritytech/substrate) - 러스트로 개발된 블록체인 개발 플랫폼(Blockchain development platform). 폴카닷(Polkadot)은 서브스트레이트 위에서 작성됩니다. +- [Substrate Development Hub](https://docs.substrate.dev) - 서브스트레이트를 사용해서 만들어진 블록체인의 전체적인 문서들과 튜토리얼들 + +## C++ + +- [Kagome](https://github.com/soramitsu/kagome) - [Soramitsu](https://github.com/soramitsu)에서 구현한 C++ 폴카닷 클라이언트(Polkadot client) + +## Go + +- [Gossamer](https://github.com/ChainSafe/gossamer) - 폴카닷 런타임 환경(Polkadot Runtime Environment)의 Golang 구현체. +- [Golkadot](https://github.com/opennetsys/golkadot) -폴카닷 서브스트레이트(Polkadot Substrate)의 Golang 구현체 . + +## 자바 스크립트 (JS) + +### 클라이언트 + +- [Polkadot-JS client](https://github.com/polkadot-js/client) - JavaScript를 사용하는 개발자들을 위해서 구현된 다른 클라이언트. + +[Polkadot-JS](https://polkadot.js.org)의 문서들은 폴카닷을 좀 더 깊이 이해하는데 좋은 시작 포인트라고 할 수 있습니다. + +로컬 노드(local node)를 설정하고 시작하서 작동시키면 일반 [Polkadot 익스플로러](https://polkadot.js.org/apps/#/explorer))를 통해 인터렉션 할 수 있습니다. + +### 라이브러리들 (Libraries) + +### Polkadot-JS Common + +Polkadot-JS Common은 @polkadot 네임 스페이스 내의 모든 프로젝트에서 사용하는 다양하고 유용한 유틸리티 기능을 제공합니다. 그리고 다음과 같은 여러가지 내부 유틸리티 패키지로 분할됩니다. 문서 및 사용법은 [Polkadot-JS / Common API 문서 링크](https://polkadot.js.org/common/)를 참고하세요. + +- [@polkadot/keyring](https://polkadot.js.org/common/keyring/) JavaScript로 계정을 생성 /로드하거나, 지갑을 만드는데 도움이 되거나 또는 체인에 무언가 쓸(Write) 필요가 있는 그 어떤 애플리케이션에 도움이 되는 툴 입니다. [관련 예시 참고 링크](https://polkadot.js.org/common/examples/keyring/) +- [@polkadot/util](https://polkadot.js.org/common/util/) 문자열 (String)이 Hex 인코딩이 되었는지 등을 확인 할 때 쓰는 유용한 유틸리티 +- [@polkadot/util-crypto](https://polkadot.js.org/common/util-crypto/) Polkadot로 개발하는 동안 유용하게 사용할 수있는 암호 유틸리티. + +#### Bonds oo7 + +- [oo7-polkadot](https://github.com/polkadot-js/oo7-polkadot) Polkadot의 bonds 라이브러리. [oo7 API 문서](https://paritytech.github.io/oo7/) + +### CLI Tools + +- [@polkadot/api-cli](https://github.com/polkadot-js/tools/tree/master/packages/api-cli) Polkadot API를 위한 단순한 CLI(commandline interface). [참고문서](https://polkadot.js.org/api/api/) +- [@polkadot/monitor-rpc](https://github.com/polkadot-js/tools/tree/master/packages/monitor-rpc) Polkadot의 RPC 모니터. RPC tool 과 관련해서는 아래의 추가 정보를 확인하세요. + +### RPC 도구들(tools) + +- [@polkadot/api/rpc-provider](https://github.com/polkadot-js/api/tree/master/packages/rpc-provider) - 노드들이 JS 도구를 사용해서 RPC를 통해 어떻게 인터랙션 하는지 보여줍니다. +- [RPC documentation](https://polkadot.js.org/api/METHODS_RPC.html) - 섭스트레이트 RPC 엔드포인트 관련 문서들. diff --git a/docs/polkadot/build/tools/subkey_KR.md b/docs/polkadot/build/tools/subkey_KR.md new file mode 100644 index 00000000..80a3f38f --- /dev/null +++ b/docs/polkadot/build/tools/subkey_KR.md @@ -0,0 +1,55 @@ +# 서브키(Subkey) + +Subkey is a commandline utility included with Substrate that generates or restores Substrate keys. + +`subkey` will use the [sr25519](http://wiki.polkadot.network/en/latest/polkadot/learn/cryptography/#keypairs-and-signing) cryptography by default. If you need to use the older ed25519 cryptography to generate or restore your key pass the `--ed25519` flag to any of the commands. + +## 사용방법 (Usage) + +### 무작위 계정 생성하기 (Generate a random account) + +```bash +subkey generate +``` + +Will output a mnemonic phrase and give you the seed, public key, and address of a new account. DO NOT SHARE your mnemonic or seed with ANYONE it will give them access to your funds. If someone is making a transfer to you they will only need your **Address**. + +### Key 검사하기(Inspecting a key) + +You can inspect a given URI (mnemonic, seed, public key, or address) and recover the public key and the address. + +```bash +subkey inspect + +OUTPUT: + Public key (hex): 0x461edcf1ba99e43f50dec4bdeb3d1a2cf521ad7c3cd0eeee5cd3314e50fd424c + Address (SS58): 5DeeNqcAcaHDSed2HYnqMDK7JHcvxZ5QUE9EKmjc5snvU6wF +``` + +### 서명하기 (Signing) + +`subkey` expects a message to come in on STDIN, one way to sign a message would look like this: + +```bash +echo | subkey sign + +OUTPUT: +a69da4a6ccbf81dbbbfad235fa12cf8528c18012b991ae89214de8d20d29c1280576ced6eb38b7406d1b7e03231df6dd4a5257546ddad13259356e1c3adfb509 +``` + +### 서명 증명하기 (Verifying a signature) + +```bash +echo | subkey verify
+ +OUTPUT: +Signature verifies correctly. +``` + +### Using the vanity generator + +You can use the included vanity generator to find a seed that provides an address which includes the desired pattern. Be warned, depending on your hardware this may take a while. + +```bash +subkey vanity 1337 +``` diff --git "a/docs/polkadot/learn/7\353\262\210\354\247\270\353\241\234 parachains_KR.md" "b/docs/polkadot/learn/7\353\262\210\354\247\270\353\241\234 parachains_KR.md" new file mode 100644 index 00000000..f8e7fc97 --- /dev/null +++ "b/docs/polkadot/learn/7\353\262\210\354\247\270\353\241\234 parachains_KR.md" @@ -0,0 +1,58 @@ +# Parachains + +## What is a parachain? + +Parachains take their name from the concept of "parallelized" chains which share in the security of the Polkadot relay chain. Parachains are _validatable, globally-coherent dynamic data-structures_ which can connect into the Polkadot network and although most commonly will resemble independent blockchains, there is no specific need for them to be blockchain in nature. + +Parachains는 Polkadot 릴레이 체인의 보안을 공유하는 "병렬화 된"체인 개념에서 이름을 따 왔습니다. Parachains는 Polkadot 네트워크에 연결할 수있는 유효성이 낮은 전역 적으로 일관된 동적 데이터 구조이며 가장 일반적으로 독립적 인 블록 체인과 유사하지만 자연에서 블록 체인이 필요하지는 않습니다. + +Rob Habermeier, a co-founder of Polkadot, [described parachains in the following way](https://medium.com/polkadot-network/polkadot-the-parachain-3808040a769a): + +> A parachain (parallelizable chain) is a simpler form of blockchain, which attaches to the security provided by a ‘relay chain’ rather than providing its own. The relay chain provides security to attached parachains, but also provides a guarantee of secure message-passing between them. + + +parachain (병렬화 가능 체인)은 블록 체인의 더 간단한 형태로, 자체 체인을 제공하는 것이 아니라 '릴레이 체인'이 제공하는 보안에 연결됩니다. 릴레이 체인은 부착 된 낙하산에 보안을 제공 할뿐만 아니라 안전한 낙하산을 보장합니다. + + +The Polkadot architecture allows for the state transitions performed on the parachain to be specified as a Wasm executable. Proofs of new state transitions that occur on a parachain must be validated against the registered state transition function (STF) by validators before the state transition can take place. + +Polkadot 구조는 parachain에서 수행 된 상태 전이가 Wasm 실행 파일로 지정되도록합니다. 파라과이에서 발생하는 새로운 상태 전이의 증거는 상태 전환이 발생할 수 있기 전에 유효성 검사기에 의해 등록 된 상태 전이 함수 (STF)에 대해 유효성을 검사해야합니다. + +## Benefits of parachains + +By connecting to Polkadot a parachain gains two major advantages over an independent _sovereign chain:_ + +- [Shared security](./security.md) +- [Trust-free interchain transactability](./interchain.md) + +## Examples + +- Encrypted Consortium Chains +- High Frequency Chains +- Privacy Chains +- Smart Contract Chains + +## Collators + +Parachains are operated and new blocks are authored by [collator nodes](../node/collator.md) that maintain "full-nodes" of a particular parachain. They retain all necessary information to be able to propose new blocks and execute transactions in a similar way as miners do in traditional PoW blockchains. A block proposed by a collator node will be checked by the validator node before it is accepted as a canonical state transition by the relay chain. + +Parachains가 작동되고 특정 parachain의 "전체 노드"를 유지하는 collator 노드 (../node/collator.md)가 새로운 블록을 작성합니다. 그들은 광부가 전통적인 PoW 블록 체인에서하는 것과 유사한 방식으로 새로운 블록을 제안하고 거래를 수행 할 수 있도록 필요한 모든 정보를 보유합니다. 콜레 이터 노드에 의해 제안 된 블록은 릴레이 체인에 의한 표준 상태 전이로 수락되기 전에 유효성 검사기 노드에 의해 검사됩니다. + +## What is "parachain consensus"? + +"Parachain consensus" is special in that it will follow the Polkadot relay chain. Parachains cannot use other consensus algorithms that provide their own finality, and if they do will be sovereign chains that must bridge to the relay chain. Parachains have control over how blocks are authored and by who. + +"Parachain consensus"는 Polkadot 릴레이 체인을 따를 것이라는 점에서 특별합니다. Parachains는 자신의 최종성을 제공하는 다른 합의 알고리즘을 사용할 수 없으며 릴레이 체인에 연결되어야하는 주권 체인이됩니다. 낙하산은 블록 작성 방법 및 누가 작성자를 제어합니다. +"Parachain consensus + +## How will parachain slots be distributed? + +Parachain slots will be acquirable through auction, please see the [parachain slots](./auction.md) article. + +## Parachain Development Kits (PDKs) + +Parachain Development Kits are a set of tools that enable developers to create their own applications as parachains. For more info see [here](../build/pdk.md). + +## Deploying parachains + +Please see the builder's article on [deploying parachains](../build/deploy-parachains.md). diff --git "a/docs/polkadot/learn/9\353\262\210\354\247\270\353\241\234 phragmen_KR.md" "b/docs/polkadot/learn/9\353\262\210\354\247\270\353\241\234 phragmen_KR.md" new file mode 100644 index 00000000..d435c1b4 --- /dev/null +++ "b/docs/polkadot/learn/9\353\262\210\354\247\270\353\241\234 phragmen_KR.md" @@ -0,0 +1,32 @@ +# Phragmen이 무엇이고 노드 운영자에겐 어떤 의미 인가요? + +## sequential Phragmen method가 뭔가요? + +The sequential Phragmen method is a multi-winner election method introduce by Edvard Phragmen in the 1890s. + +> The problem that Phragm ́en’s methods try to solve is that of electing a set of a given numbers of persons from a larger set of candidates. Phragm ́en discussed this in the context of a parliamentary election in a multi-member constituency; the same problem can, of course, also occur in local elections, but also in many other situations such as electing a board or a committee in an organization. + +Phragmen's sequential method is used in the NPoS algorithm of Polkadot to elect validators based on the weight (amount staked to them by nominators). It also handles equalization of weights among validators after each round. Equalization happens in order to spread nominated DOTs among the wider set of validators and enforce stronger decentralization properties to the network. + +## What does it mean for node operators? + +_Updated as of Alexander v0.4.3_ + +### For nominators + +Currently the `equalise` flag is set to false so equalization will not take place. As a nominator your nomination will stay with the validator that you nominate to. + +### For validators + +Currently the `equalise` flag is set to false so equalization will not take place. As a validator the nominations you have received will stay with you. + +## Details + +The implementation of the Phragmen method can be found in the Substrate `srml-staking` crate. It is used in the selection of validators from the available set based on their role preferences (validator or nominator). The election will run for a number of rounds which is equal to that amount of current validators. + +## External Resources + +- [W3F Research Page on Sequential Phragmen Method](https://research.web3.foundation/en/latest/polkadot/NPoS/4.%20Sequential%20Phragm%C3%A9n%E2%80%99s%20method./) - The formal adaptation of the Phragmen method as applied to Polkadot validators. +- [Python Reference Implementations](https://github.com/w3f/consensus/tree/master/NPoS) - Implementations of Simple and Complicated Phragmen methods. +- [Substrate Implementation](https://github.com/paritytech/substrate/blob/master/srml/staking/src/phragmen.rs) - Rust implementation used in the Substrate Runtime Module Library. +- [Phragmen's and Thiele's Election Methods](https://arxiv.org/pdf/1611.08826.pdf) - 95-page paper explaining Phragmen's election methods in detail. diff --git a/docs/polkadot/learn/DOT_KR.md b/docs/polkadot/learn/DOT_KR.md new file mode 100644 index 00000000..40f0048c --- /dev/null +++ b/docs/polkadot/learn/DOT_KR.md @@ -0,0 +1,50 @@ +# DOT + +## DOT가 무엇인가요? + +BTC가 Bitcoin의 고유한 토큰이거나 Ether이 Ethereum Blockchain의 고유한 토큰인 것과 비슷하게 DOT는 Polkadot 네트워크의 기본 토큰입니다. + +  현재 DOT는 소수점 15 자리를 차지하고 가장 작은 단위는 펨토-닷(Femto-DOT)이라고합니다. DOT가 비트코인이나 이더와 같다면, Femto-DOT와 Satoshi 또는 Wei를 비교할 수 있습니다. + +|단위 |소수점 자리| +|-----|--------| +|Femto| 0 | +|Pico | 3 | +|Nano | 6 | +|Micro| 9 | +|Milli| 12 | +|DOT | 15 | + +## DOT는 무엇에 사용되나요?? + +DOT는 Polkadot에서 다음과 같은 세가지 주요 역할들을 제공합니다. + +(i) 네트워크의 거버넌스에 사용되고, + +(ii) 네트워크 운영을 위해 스테이킹 하고, + +(iii) Polkadot의 체인을 패러체인으로 연결하는 담보로 사용됩니다. + +### 네트워크의 거버넌스로 사용되는 DOTs + +DOT의 첫 번째 기능은 플랫폼의 거버넌스를 Dot의 홀더들이 제어 할 수있는 권리를 주는 것입니다. 거버넌스 메커니즘에 포함될 네트워크 수수료 결정, 패러체인을 추가하거나 제거하기, Polkadot 플랫폼 업그레이드 및 수정과 같은 예외적 인 이벤트 같은 기능들이 포함될 예정입니다. + +거버넌스 메커니즘은 모든 DOT 소지자에게 형식적으로 부여되는 것이 아니라 Polkadot의 기본 코드가 DOT 소지자가 거버넌스에 참여할 수 있도록 할 것 입니다. + +### 합의(consensus)에 사용되는 DOTs + +Polkadot을 뒷받침하는 DOT을 컨센서스 메커니즘을 촉진하는 데 사용합니다. Polkadot은 플랫폼을 작동시키고 패러체인들 간 유효한 트랜잭션을 수행하기 위해 적극적인 역할을 하는 DOT홀더가 필요합니다. 참가자는 DOT을 스테이크를 통해 이러한 기능을 수행합니다. DOT의 스테이크는 악의적인 참가자들의 DOT를 삭감함으로써 네트워크를 통해 불이익을 줍니다. 네트워크에 참여하는 데 필요한 DOT는 어떤 활동을 하느냐, 얼마만큼의 기간동안 DOT가 스테이킹 될것이냐, 그리고 스테이킹 된 총 DOT의 개수에 따라 달라집니다. + +### DOTs for bonding + +DOT는 네트워크에 새로운 패러체인을 추가하기 위해 일정 기간 담보로 묶일 수 있습니다. DOT는 본딩 기간 동안 묶일 것이고 담보(bonded) 기간이 지나고 패러체인이 제거 된 후 DOT가 본딩 된 계좌로 다시 릴리스됩니다. + +## Testnet DOTs + +DOT는 Polkadot 네트워크에서 트랜잭션을 작성해야합니다. Testnet DOT는 폴카닷 네트워크에 대해서 실험 할 수있는 다른 값을 가지고 있지 않습니다. + +### 테스트넷에서 DOT 받기 + +[faucet](https://faucets.blockxlabs.com/)에서 [Polkadot Watercooler](https://riot.im/app/#/room/#polkadot-watercooler:matrix.org)에 있는 누군가에게 DOT를 보내달라고 요청 할 수 있습니다. + +[밸리데이터가 되어서](https://github.com/paritytech/polkadot/wiki/Validating-on-PoC-2) DOT를 생성 할 수도 있습니다. \ No newline at end of file diff --git a/docs/polkadot/learn/PRE_KR.md b/docs/polkadot/learn/PRE_KR.md new file mode 100644 index 00000000..e0febab6 --- /dev/null +++ b/docs/polkadot/learn/PRE_KR.md @@ -0,0 +1,23 @@ +# Polkadot 런티임 환경 (Polkadot Runtime Environment,PRE) + +Polkadot 런타임 환경 (Polkadot Runtime Environment, 이하 PRE- 역자 주)는 Polkadot 프로토콜의 중요한구성 요소입니다. 네트워킹, 합의 및 Wasm VM으로 구성되며 Polkadot 런타임 및 패러체인들의 런타임을 기본으로하는 스택의 하위 계층으로 작동합니다. 아래에서 언급했듯이 체인 로직과 PRE 사이에는 명확한 구분이 있지만 대략 PRE는 Polkadot 릴레이 체인과 같은 의미로 생각할 수 있습니다 . + +PRE의 구성요소는 다음과 같습니다. + +- 네트워크 인터렉션 (Network Interactions) +- 상태(State) 저장소와 저장소 트라이 (Trie) +- 합의 엔진 (Consensus Engine) +- Wasm 가상 머신 (Virtual Machine ,VM) + +체인로직을 구현하는 코드로 정의된 런타임은 PRE와 같이 동작하지 않습니다. 런타임과 PRE, 이 두 구성 요소를 분리하면 PRE를 업그레이드 할 필요없이 런타임을 쉽게 업그레이드 할 수 있습니다. + +Polkadot 런타임과 parachains의 런타임은 컴파일 된 WebAssembly(Wasm)blob 이어야 합니다. Polkadot 런타임은 Polkadot RE에 "플러그인"되며 거버넌스 메커니즘을 통해 바꿀 수 있습니다. + +아래 이미지는 Gavin Wood가 Substrate의 [slide deck](https://slides.com/paritytech/paritysubstrate#/8)에서 가져온 것으로 Polkadot 스택의 4개 레이어를 시각적으로 보여줍니다. + +![PRE](../../img/PRE.png) + +## 자료들 (Resources) + +- [PRE 런타임 프로토콜 스펙(Polkadot Runtime Environment Protocol Specification)](https://github.com/w3f/polkadot-re-spec) - PRE spec의 인큐베이터. +- [polkadot-re-tests](https://github.com/w3f/polkadot-re-tests) - PRE를 위한 교차 규현 테스트 (Cross-implementation tests for the Polkadot Runtime Environment). diff --git a/docs/polkadot/learn/bridges_KR.md b/docs/polkadot/learn/bridges_KR.md new file mode 100644 index 00000000..24989dfa --- /dev/null +++ b/docs/polkadot/learn/bridges_KR.md @@ -0,0 +1,40 @@ +# Bridges + +블록체인 간 통신의 핵심 아이디어 중 하나는 브릿지 역할입니다. Polkadot에서 브릿징(Bridging)이 어떻게 작동하는지에 대한 정확한 세부 사항 중 일부는 아직 결정되지 않았습니다. 이 페이지는 현재 작업진행중(work in progress)입니다. . 더 많은 세부 사항이 결정되면 업데이트 될 것입니다. + +현재 Polkadot 에서는 아래오 같은 세가지 다른 종류의 브릿징(bridging)이 있습니다. + +* _브릿징 컨트랙트_(_Bridge contracts_) -Polkadot과 외부 블록체인 간 브릿지로 배포된 스마트 컨트랙트. + +* _크로스-패러체인 통신_(_Cross-parachain communication_) - 컨트랙트가 필요 없음. + +* _내장된 브릿징 모듈_(_In-built bridging modules_) - 전용 모듈을 통해 외부 체인에서 Polkadot에 브릿징. + +## 브릿지 컨트랙트(Bridge Contracts) + +Ethereum 에 이미 익숙한 사람들은 [Parity Bridge](https://github.com/paritytech/parity-bridge) 및 PoA 사이드체인을 Ethereum 메인넷에 연결하기 위한 노력에 대해 알고있을 수 있습니다. 브릿지는 두 가지 스마트 계약의 조합으로, 각 체인에 배포되어 크로스-체인 가치 전송을 허용합니다. 예를 들어, 초기 패리티 브리지 (Parity Bridge) PoC(proof of concept)는 `main`과 `side` 두 개의 이더리움 체인 을 연결합니다. `main`의 컨트랙트에 이더를 입금하면 `side`에 ERC-20 토큰으로 표시되어 잔고가 생성됩니다. 반대로 `side`에사 ERC-20 토큰이 컨트랙트로 다시 입금되면 `main`에서 (입금되어서 잠긴) 이더를 해제 할 수 있습니다. + +Polkadot의 경우, 말하자면 EVM 기반 독립(standalone) 체인과 스마트 컨트랙트가 가능한 패러체인(Parachain)에 배포된 컨트랙트에 브리지 컨트랙트를 배포 할 수 있어야 합니다. 이것은 반드시 가장 효율적인 브리징 방법은 아닐수도 있지만, Turing-완전한 패러체인의 대부분을 고려할 때 Polkadot 과 어떤 다른 스마트 컨트랙트 블록체인을 브릿지 할 수 있습니다. + +### 참고 자료들 (Resources) + +* [Edgeth Bridge](https://github.com/hicommonwealth/edgeth_bridge/) - Ethereum에서 Edgeware로 브릿지한 서브스트레이트 기반 체인. +* [Parity Bridge](https://github.com/paritytech/parity-bridge) +* [POA Network](https://poa.network/) +* [Case study](https://medium.com/giveth/ethereum-dapp-scaling-poa-network-acee8a51e772) 패리티 사의 브릿지 체인 솔루션인 POA 네트워크 구현체 + +## 크로스 패러체인 커뮤니케이션 (Cross-Parachain Communication) + +[parachains](./parachains.md) 페이지에서 언급했듯이, 패러체인은 트랜잭션을 포함해서 서로 메시지를 보낼 수 있습니다 그러므로 브리징 기능을 작동시키기 위한 스마트 컨트랙트가 필요 없습니다. 크로스-체인(Cross-parachain) 메시징(messaging)은 Polkadot에서 기본(native)으로 제공됩니다. + +## 내장 브릿지 모듈 (In-built Bridging Modules) + +패러체인이 패러체인이 아닌 블록체인에서 메시지를 받는것은 클라이언트 소프트웨어의 모듈 내에서 기본적으로 작동될것입니다. 이것은 브리징 계약을 불필요하게 마들고 패러체인이 아닌 블록체인을 "가상 패러체인(virtual parachains)"인 것처럼 작동 할 수있게 합니다. 특정 블록체인 콜레이터(collator,병합기)는 트랜잭션이나 다른 상태전이를 대조하여 블록체인이 마치 패러체인인 것처럼 릴레이 체인(relay chain)에 보낼 수 있습니다. + +비트코인이나 이더리움 처럼 특정 패러체인을 염두에 두고 브릿지 모듈이 구현 될 것입니다. 즉, 어떤 블록체인이든 저 특정 블록체인을 기반으로 한다면 패러체인에 브릿징 컨트랙트를 통할 필요없이 Polkadot에 직접 브리지 할 수 있어야합니다.이런 점은 호환가능한 체인들의 실행 속도를 빠르게 합니다. + +Polkadot에 내장 브리징 모듈이 없는 독립형 체인의 경우 브리지 계약을 배포해야합니다 (위 참조). + +### 참고자료 (Resources) + +* [ChainX BTC Bridge](https://github.com/chainx-org/ChainX/tree/develop/cxrml/bridge/btc) - ChainX have implemented a BTC to Substrate bridge for their parachain \ No newline at end of file diff --git a/docs/polkadot/learn/consensus_KR.md b/docs/polkadot/learn/consensus_KR.md new file mode 100644 index 00000000..ca7a1bc5 --- /dev/null +++ b/docs/polkadot/learn/consensus_KR.md @@ -0,0 +1,92 @@ +# 폴카닷 합의 알고리즘 (Polkadot Consensus) + +## 왜 합의가 필요한가요? + +합의는 공유된 상태(shared state)에 대한 일치(agreement)에 이르는 방법입니다. 블록체인의 상태(state)가 계속해서 쌓고 앞으로 나아가려면 네트워크의 모든 노드가 동의하고 합의에 이르러야 합니다. 합의는 분산 네트워크의 노드가 서로 동기화 상태를 유지할 수 있는 방법입니다. 블록체인에서 분산된 네트워크에 대한 합의가 없으면 한 노드가 참이라고 믿는 상태가 다른 노드와 공유 될 수 있도록 보장 할 방법이 없습니다. 합의는 각자 자신의 네트워크에 대한 _주관적_ 관점을 가지고있는 참가자들 사이에서 상태의 _객관적인_ 시각을 제공하는 것이 목표입니다. 이 노드들이 의사 소통을하고 합의에 도달하고 새로운 블록을 만들 수 있게 하는 프로세스입니다. + +## PoW와 PoS는 무엇인가요? + +Proof of Work (PoW)와 Proof of Stake (PoS)는 소위 블록체인의 합의 메커니즘이라고 언급되지만 전체 그림을 담아내지는 않습니다. PoW는 블록 작성자와 Bitcoin에서는 체인 선택 알고리즘인 Longest chain 규칙을 포함하는 더 완전한 [나카모토 컨센서스](#nakamoto-consensus)의 일부에 동의하는 방법입니다. 마찬가지로 PoS는 밸리데이터 집합을 선택하기위한 규칙들의 집합이고 체인 선택 규칙이나 어떻게 체인이 블록의 Finality에 도달하는 방법에 대해서는 특정하지 않습니다. PoS 알고리즘은 전통적으로 노드간에 Byzantine agreement를 맺는 알고리즘과 함께 사용되었습니다. 예를 들어, [Tendermint](./comparisons/cosmos.md)는 밸리데이터 세트의 선택 방법으로 PoS를 사용하는 PBFT(Practical Byzantine Fault Tolerant) 알고리즘입니다. + +## 확정 가능성이 있는 블록의 확정성 대 입증된 블록의 확정성 (Probable vs. provable finality) + +PoW를 수행하는 순수한 나카모토 컨센서스 블록 체인은 _확률적 Finality_ 의 개념을 세우고 _결과적으로 합의(consensus)_ 에 도달 할 수 있습니다. 확률적 Finality는 네트워크 와 참가자에 대한 몇몇 가정 하에서 만약 주어진 블록에 몇 개의 블록을 구축하는 것을 볼 수 있으면 블록의 Finaity에 대한 확률을 예측할 수 있다는 의미입니다. 최종 합의는 모든 노드가 한 세트의 데이터의 진실성에 대해서 미래의 어느 시점에 동의한다는 것을 의미합니다. 이 최종 합의는 오랜 시간이 걸릴 수 있으며 시간이 얼마나 걸릴지 미리 결정될 수 없습니다. 그러나 GRANDPA 또는 Ethereum의 Casper FFG와 같은 Finality 도구들은 블록의 Finality에 대해 강력하고 신속한 보장을 제공하도록 설계되었습니다. 특히 Byzantine agreement의 일부 프로세스가 완료된 후 되돌릴 수는 없습니다. 비가역적인(irreversible) 합의의 개념은 _확정 가능한 finality_ 로 알려져 있습니다 . + +GRANPA문서에서는 다음과 같이 설명되어 있습니다. + +> 프로토콜의 오라클 A가 어느 지정되지 않은 시간 후에 모든 참여자들에게 같은 값을 반환한다면 _결과적으로 일관됨(eventually consistent)_ 이라고 합니다. + +## GRANDPA/BABE가 무엇인가요? + +### 하이브리드 컨센서스 (Hybrid Consensus) + +Polkadot의 합의 프로토콜에 관해 이야기 할 때 사용하는 GRANDPA 와 BABE 라는 두 가지 약어가 있습니다. Polkadot은 **하이브리드 컨센서스**를 사용하기 때문에 두 가지 약어에 대해 이야기합니다. 하이브리드 컨센서스는 블록 생성 메커니즘에서 finality 도구를 분리합니다. 이를 통해 블록 생성 속도를 높이고 느린 finality 메커니즘을 별도의 프로세스에서 실행하여 느린 트랜잭션 처리에 대한 우려앖이 블록을 확정(finalize) 할 수 있습니다. + +이전에 하이브리드 컨센서스가 제안 되었습니다. 주목할만한 것은, 지금은 없지만 Ethereum의 전환 단계로 [EIP 1011](http://eips.ethereum.org/EIPS/eip-1011)에서의 지분 증명(Proof of stake)를 구체화한 [Casper FFG](#casper-ffg)으로 제시 되었습니다. + +### GRANDPA: Finality 도구 + +GRANDPA (GHOST-based Recursive ANcestor Deriving Prefix Agreement)는 Polkadot relay chain을 위해 구현된 Finality 도구입니다. + +노드의 2/3이 네트워크에 대해 정직하고 20%(1/5)의 비잔틴 노드를 비동기 세팅에서 대처 할 수있는 부분 동기식 네트워크 모델(partially synchronous network model)에서 작동합니다. +눈에 띄는 차이점은 GRANDPA가 블록이 아닌 체인에 대한 합의에 도달한다는 것입니다. + +GRANDPA에 대한 자세한 내용은 W3F Research 페이지의 [GRANDPA 링크](http://research.web3.foundation/en/latest/polkadot/GRANDPA/)를 참조하세요. + +### "Polite" GRANDPA + +Polite GRANDPA는 노드 간의 네트워크 성능을 향상시키는 구현 방법입니다. 이것은 스펙의 일부로 고려되어야만 하고 클라이언트를 구축하는 독립적인 팀에 의해 복제되어야하기 때문에 여기에 언급됩니다. + +### BABE: 블록 생성 도구 + +BABE (Blind Assignment for Blockchain Extension)는 밸리데이터 노드 사이에서 간에 실행되고 새 블록의 생성자를 결정하는 블록 생성 메커니즘입니다. + +BABE는 스테이킹과 폴카닷을 사용해서 [무작위 사이클](./randomness.md)를 사용하여 밸리데이터들에게 블록 생성 슬롯을 할당합니다. + +BABE는 Ouroboros Praos의 알고리즘과 비슷하지만 체인 선택규칙(chain selection rule)과 슬롯 시간조정(slot time adjustments)에서 주요 차이점이 있습니다. + +BABE에 대한 자세한 내용은 [초안](http://research.web3.foundation/en/latest/polkadot/BABE/Babe/)을 참조하세요. + +## 다른 컨센서스 알고리즘과 비교 (Comparisons) + +### 나카모토 컨센서스 (Nakamoto consensus) + +나카모토 컨센서스는 작업 증명 (Proof of Work)을 사용하는 Longest chain rule로 이루어져 있습니다. 작업 증명은 시빌 저항 매커니즘과 (sybil resistance mechanism)와 리더 뽑기 (leader election)에 쓰입니다. + +나카모토 컨센서스는 확률적인 finality만 줍니다. 과거의 블록을 되돌릴 수 없다는 것에 대해서 보장 하는것은 확률적인 finality의 속성에 의존합니다. 과거의 블록이 가지고있는 확인(confirmation)수 나 그 위에 있는 블록 수만큼 확률적인 finality 상태가 안전하다고 합니다. Proof of Work 체인에서 더 많은 블록이 특정 블록 위에 쌓일수록 특정 체인 뒤에 계산 작업이 더 많이 소비됩니다. 그러나 잠재적으로 경쟁 체인을 구축하고 특정 블록을 포함하지 않는 체인을 생성 할 수있는 무제한 리소스를 가진 액터가 충분한 계산 리소스를 소비 할 수 있기 때문에 블록을 포함하는 체인이 항상 합의 된 체인이 된다는 것을 보장하지는 않습니다. 이러한 Longest chain규칙을 Bitcoin 및 기타 작업 증명 체인에서 사용하고 가장 긴 새로운 체인이 표준 체인이 됩니다.. + +### PBFT / Tendermint + +이와 관련해서는 [코스모스와의 비교 문서](./comparisons/cosmos.md#consensus)를 참고하세요 + + + +### Casper FFG + +GRANDPA and Casper FFG (Friendly Finality Gadget)는 다음과 같이 두가지 차이점이 있습니다.: + + - GRANPA에서는 다른 투표자들이 다른 높이에 있는 블록에 동시에 투표를 할 수 있습니다. + - GRANDPA 는 기본적인 블록 생성 매커니즘의 포크 선택룰에 영향을 주는 확정된 블록에서만 영향을 받습니다. + +### Casper CBC + +_Coming soon!_ + + + +## 왜 PoW를 쓰지 않나요? + +분산된 합의를 만드는 것에는 효과적이지만 PoW는 엄청난 에너지를 쓰고 경제적인 Finality가 없고 카르텔에 저항하는 효과적인 전략이 없습니다. + +## 참고자료 (Resources) + +- [GRANDPA paper](https://github.com/w3f/consensus/blob/master/pdf/grandpa.pdf) - GRANDPA finality 도구의 학술적인 설명문서. 알고리즘의 형식 증명이 표함되어 있습니다. +- [Rust implementation](https://github.com/paritytech/finality-grandpa) - 참고 구현체와 [Substrate runtime module](https://github.com/paritytech/substrate/blob/master/srml/grandpa/src/lib.rs). + + diff --git a/docs/polkadot/learn/cryptography_KR.md b/docs/polkadot/learn/cryptography_KR.md new file mode 100644 index 00000000..923f24db --- /dev/null +++ b/docs/polkadot/learn/cryptography_KR.md @@ -0,0 +1,23 @@ +# Polkadot 에서 사용하는 암호학 설명 (Cryptography Explainer) + +이 문서는 Polkadot에서 사용되는 암호화에 대한 고수준의 개요에 대해서 설명합니다. 일반적으로 블록체인에서 사용하는 해시(hash), ECC(Elliptic Curve Cryptography) 및 공개키 - 비밀키 쌍과 같은 기초 암호화 지식이 있다고 가정합니다. + +[research wiki](https://research.web3.foundation)에서 암호화에 대한 자세한 설명을 볼 수 있습니다. + +## 해싱 알고리즘 (Hashing Algorithm) + +Polkadot에서 사용되는 해싱 알고리즘은 [Blake2b](https://en.wikipedia.org/wiki/BLAKE_(hash_function)#BLAKE2)입니다. + +Blake2는 [Zcash](https://z.cash)에서도 사용하는 매우 빠른 암호 해시함수 입니다. + +## 키페어와 서명 (Keypairs and Signing) + +Polkadot은 Schnorrkel/Ristretto x25519("sr25519")를 키 유도 및 서명 알고리즘으로 사용합니다. + +Sr25519는 EdDSA에 대응되는 [Ed25519](https://en.wikipedia.org/wiki/EdDSA#Ed25519) 와 같은 기반인 [Curve25519](https://en.wikipedia.org/wiki/Curve25519)을 사용합니다. 그러나 EdDSA 스킴(Scheme) 대신 Schnorr 서명을 사용합니다. Schnorr 서명은 ECDSA/EdDSA 체계에 보다 더 좋은 이점을 제공합니다. 그 중 하나는 더 효율적이며 동일한 기능 셋과 보안 가정을 ​​가지고 있다는 것입니다. 또한 [서명 통합(Signature aggregation)](https://bitcoincore.org/en/2017/03/23/schnorr-signature-aggregation/)를 통해 schnorr 서명이 기본적으로 가지고 있는 다자간 서명(multisignature)을 허용합니다. + +The names Schnorrkel and Ristretto come from the two Rust libraries that implement this +scheme, the [Schnorrkel](https://github.com/w3f/schnorrkel) library for Schnorr signatures and the [Ristretto](https://ristretto.group/ristretto.html) +library that makes it possible to use cofactor-8 curves like the Curve25519. + +Schnorrkel과 Ristretto라는 이름은 Schnorr서명을 위한 [Schnorrkel](https://github.com/w3f/schnorrkel) Rust 라이브러리와 Curve25519와 같이 cofactor-8 커브를 사용할 수 있게 하는 [Ristretto](https://ristretto.group/ristretto.html) Rust 라이브러리에서 그 이름이 유래했습니다. \ No newline at end of file diff --git a/docs/polkadot/learn/implementations_KR.md b/docs/polkadot/learn/implementations_KR.md new file mode 100644 index 00000000..e2801882 --- /dev/null +++ b/docs/polkadot/learn/implementations_KR.md @@ -0,0 +1,20 @@ +# Polkadot 구현체들 (Implementations) + +Rust, C++, Go, JavaScript로 개발중인 Polkadot 구현체들이 아래와 같이 있습니다. + +[**Polkadot**](https://github.com/paritytech/polkadot) - Parity Technologies 에서 개발중인 [Substrate](https://github.com/paritytech/substrate)와 협력해서 구현중인 Rust client. + +[**Kagome**](https://github.com/soramitsu/kagome) -[Soramitsu](https://github.com/soramitsu)가 C++로 개발중인 Polkadot 런타임 환경(Polkadot Runtime Enviroment), [Soramitsu](https://github.com/soramitsu)는 일본 디지털 신원 개발사로서 이전에 [Hyperledger Iroha](https://iroha.tech)를 개발 했습니다. They were awarded a grant from the Web3재단에서 개발 지원금을 받았고 Kagome를 [2019년 8월까지 릴리즈](https://medium.com/web3foundation/w3f-grants-soramitsu-to-implement-polkadot-runtime-environment-in-c-cf3baa08cbe6) 할 계획입니다. libp2p 네트워킹 레이어를 C++로 개발중입니다. +[**Gossamer**](https://github.com/ChainSafeSystems/gossamer) - A Go implementation being built by [ChainSafe Systems](https://github.com/ChainSafeSystems)가 개발중인 Golang 구현체, 토론토에 23명의 개발팀이 있으며 Eth2.0 Serenity client도 개발중입니다. [개발지원금에 대한 발표](https://medium.com/web3foundation/w3f-grants-chainsafe-to-implement-polkadot-runtime-environment-in-go-ca4973c9edaf). + +polkadot runtime environment + +[**Golkadot**](https://github.com/opennetsys/golkadot) - Open Network Systems가 개발중인 Polkadot Substrate Golang 구현체 + +[**Polkadot-JS**](https://github.com/polkadot-js) - [Polkadot JS](https://polkadot.js.org/)가 개발한 [자바스크립트 클라이언트 (Javascript client](https://github.com/polkadot-js/client) 와 툴 모음들. + +## 왜 중복된 구현체를 만드나요? + +Soramitsu의 개발 지원금 발표 중에서 : + +> 분산화, 지식 확산 및 프로토콜의 더 나은 정의를 비롯한 여러 가지 이유로 Polkadot 프로토콜을 여러 번 구현하는 것은 매우 중요합니다. Polkadot의 여러 구현은 네트워크의 회복력을 좀 더 낫게 하고 네트워크의 분산화를 촉진시킵니다. 네트워크에서 노드를 실행하는 클라이언트를 여러 팀이 만든다면 네트워크 관리가 더욱 민주화됩니다. \ No newline at end of file diff --git a/docs/polkadot/learn/index_KR.md b/docs/polkadot/learn/index_KR.md new file mode 100644 index 00000000..aaebdc03 --- /dev/null +++ b/docs/polkadot/learn/index_KR.md @@ -0,0 +1,29 @@ +# Learn about Polkadot + +- [Introduction](./introduction.md) - Introduction to the _who_, _what_, _where_, _when_, and _why_ of Polkadot. +- [FAQ](./faq.md) - Answers to some of the frequently asked questions in regard to Polkadot. + +## Digging deeper + +- [Bridges](./bridges.md) - Overview of bridges. +- [Cryptography](./cryptography.md) - Describes the cryptography used in Polkadot and where in the protocol it's employed. +- [Consensus](./consensus.md) - What is the consensus used in the Polkadot protocol and how does it compare to other consensus protocols? +- [DOT](./DOT.md) - Information on the DOT, the native token of the Polkadot protocol. +- [Governance](./governance.md) - How does governance work in Polkadot? +- [Interchain Communication](./interchain.md) - Information regarding how interchain messaging works. +- [Parachains](./parachains.md) - Overview of parachains. +- [Parachain Auctions](./auction.md) - Describes the mechanism for the auctioning of parachain slots. +- [Phragmen](./phragmen.md) - Information on the Phragmen method. +- [Polkadot Runtime Environment](./PRE.md) - Gives general information on the Polkadot Runtime Environment. +- [Randomness](./randomness.md) - What does Polkadot use for randomness and how? +- [Security](./security.md) - How does the Polkadot network remain secure? +- [SPREE](./spree.md) - Shared Protected Runtime Execution Environments, +- [Staking](./staking.md) - How does staking work in Polkadot? +- [WebAssembly](./wasm.md) - What is WebAssembly and how is it used in Polkadot? + +## Resources + +- [Glossary](../../glossary.md) - Definitions of domain specific terms used in Polkadot documentation. +- [Implementations](./implementations.md) - List of implementations of the Polkadot protocol (who is building them and links to the source code). +- [Links](./relevant-links.md) - Comprehensive list of external links. +- [Roadmap](./roadmap.md) - The implementation roadmap of Polkadot. diff --git a/docs/polkadot/learn/introduction_KR.md b/docs/polkadot/learn/introduction_KR.md new file mode 100644 index 00000000..4d427848 --- /dev/null +++ b/docs/polkadot/learn/introduction_KR.md @@ -0,0 +1,35 @@ +# Polkadot + +Polkadot is a heterogeneous multi-chain technology. It consists of the @(relay chain), @(parachain)s, and @(bridge)s to other networks. The relay chain is responsible for achieving consensus and transaction delivery among parachains. Parachains are independent blockchains with their own state transitions that gather and process transactions while plugging in to the security of the relay chain. Bridges allow the Polkadot network to make it interoperable with other blockchains not built to natively support it. + +Polkadot은 이기종 다중 체인 기술입니다. @ (릴레이 체인), @ (parachain) s 및 다른 네트워크에 대한 @ (브리지)로 구성됩니다. 중계 체인은 낙하산 간의 합의 및 거래 전달을 담당합니다. Parachains는 릴레이 체인의 보안에 연결하는 동안 트랜잭션을 수집하고 처리하는 고유 한 상태 전환이있는 독립 블록 체인입니다. 교량은 Polkadot 네트워크가 기본적으로 지원하지 않는 다른 블록 체인과 상호 운용되도록합니다. + +## 왜 폴카닷(Polkadot)인가요? + +Polkadot is built to connect private/consortium chains, public/permission-less networks, oracles and future +technological developments yet to be created in the Web3 ecosystem. It enables an internet where independent +blockchains can exchange information and trust-free transactions via the Polkadot relay chain, with the key +tenets of scalability, governance and interoperability. + +Polkadot은 개인 / 컨소시엄 체인, 공개 / 권한없는 네트워크, 신탁 및 향후 기술 개발을 Web3 생태계에서 아직 만들지 않기 위해 만들어졌습니다. 독립적 인 블록 체인이 확장 성, 거버넌스 및 상호 운영 성의 핵심 교리와 함께 Polkadot 릴레이 체인을 통해 정보 및 트러스트없는 트랜잭션을 교환 할 수있는 인터넷을 가능하게합니다. + +By connecting these dots, we allow for the development of a truly decentralized web, serving as a +foundational building block for the creation of an ecosystem of @(Dapps) and services that will distribute power +and equity for the common good. + +이러한 점들을 연결함으로써 우리는 진정으로 분산 된 웹의 개발을 허용하여 @ (Dapps)의 생태계 구축을위한 기본 구성 요소와 공익을위한 권력과 형평을 분배 할 서비스를 제공합니다. + +## 폴카닷(Polkadot)이 뭔가요? + +Polkadot is a protocol that allows independent blockchains to exchange information. Polkadot is an inter-chain +blockchain protocol which unlike internet messaging protocols (e.g. TCP/IP) also enforces the order and the validity +of the messages between the chains. This interoperability also allows the additional benefit of scalability by creating +a general environment for multiple state machines. + +Polkadot는 독립적 인 블록 체인이 정보를 교환 할 수있게하는 프로토콜입니다. Polkadot은 인터넷 메시징 프로토콜 (예 : TCP / IP)과 달리 체인 간 메시지의 순서와 유효성을 강제하는 체인 간 블록 체인 프로토콜입니다. 또한이 상호 운용성을 통해 여러 상태 시스템에 대한 일반 환경을 생성하여 확장 성의 추가 이점을 얻을 수 있습니다. + +## 폴카닷의 아키텍쳐(Polkadot Architecture) + +For a video overview of the architecture of Polkadot watch the video below for the whiteboard interview with W3F researcher Alistair Stewart: + + diff --git a/docs/polkadot/learn/randomness_KR.md b/docs/polkadot/learn/randomness_KR.md new file mode 100644 index 00000000..a14fdb0d --- /dev/null +++ b/docs/polkadot/learn/randomness_KR.md @@ -0,0 +1,21 @@ +# 무작위성 (Randomness) + +## 입증가능한 무작위 함수 (Verified Random Functions,VRFs) + +BABE는 Polkadot의 무작위 사이클을 사용하여 지분(stake)에 따라 밸리데이터에 블록 생성 슬롯을 할당합니다. + +Polkadot에 사용 된 VRF는 Ouroboros Praos에서 사용 된 것과 거의 같습니다. Ouroboros의 무작위성은 블록 생성을 안전하게 만들고 BABE에서 잘 작동합니다. 그러나 Polkadot은 공격자가 무작위성과 밸리데이터 - 패러체인을 선택히는 것을 조작할 수 있기 때문에 강한 무작위 소스를 필요로합니다. + +더 강한 임의성을 위해 고려된 해결책이 있지만 각 각의 취약점이 있습니다 (전체 설명을 위해서 Research 위키에 있는 [링크](http://research.web3.foundation/en/latest/polkadot/BABE/3-VDF/#unbiased-randomness)를 참조하세요. ) 이러한 이유로 Polkadot은 VDF를 기반으로 임의성을 사용합니다. + +## 입증가능한 지연 함수 (Verified Delay Function, VDFs) + +[VDF(Verifiable Delay Functions)](https://vdfresearch.org/)는 병렬 컴퓨터일지라도 계산을 완료하기 위해 걸리는 시간을 규정한 함수입니다. 일반적인 세팅에서 독립적이고 효율적으로 확인할 수있는 고유한 출력값을 만듭니다. + +## 블록체인의 무작위성에 대한 다른 접근 방법들 (Other approaches to randomness on blockchains) + +- [RANDAO] (https://github.com/randao/randao) - RANDAO는 각 밸리데이터가 어떤 시드에서 몇몇 연속된 해시를 계산하여 준비하는 것과 관련이 있습니다. 그러면 밸리데이터는 라운드 동안 게임에 참여한 모든 참가자에게서 유도한 최종 해시를 보여줍니다. 비 경제적으로 공격 가능하나 정직한 밸리데이터가가 참여하는 한 임의성은 안전하다고 간주됩니다. 이 방법은 Polkadot에서 사용하는 VRF에 대한 임의성 방법으로 선택되지 않았습니다. 왜냐하면 각 슬롯의 모든 블록 생성자의 해시를 나타내려면 2차 지수 방정식 만큼의 대역폭 또는 적어도 2차 지수 방정식의 계산이 필요하기 때문입니다. + +## 자료들 (Resources) + +- [Polkadot에서 사용하는 무작위성에 대한 토론](https://github.com/paritytech/ink/issues/57) - Polkadot의 무작위성이 어떤 가정들에서 언제 사용가능한지에 대한 W3F 리서처 들의 토론. diff --git a/docs/polkadot/learn/spree_KR.md b/docs/polkadot/learn/spree_KR.md new file mode 100644 index 00000000..45ed9a24 --- /dev/null +++ b/docs/polkadot/learn/spree_KR.md @@ -0,0 +1,23 @@ +# SPREE + +
+ + Gavin presents SPREE at Tokyo DOT Day + + Tokyo DOT Day에 SPREE에 대해서 발표하는 Gavin. +
+ +SPREE(Shared Protected Runtime Execution Enclaves)는 "트러스트 웜홀 (Trust wormholes)"로 알려져 있고 패러체인들이 어떻게 업그레이드 하거나 발전하던지 상관 없이 다른 패러체인들을 믿도록 만듭니다. + +## 어떻게 작동하나요? + +- 패러체인들은 스마트 컨트랙트처럼 스페셜 런타임 로직 조각들을 옵트 인 (opt-in)할 수 있습니다. +- Own storage, own ICMP endpoint +- 스토리지를 가지고 ICMP 엔드포인트를 가집니다. +- 패러체인간 모든 인스턴스들은 같은 로직을 가집니다. +- 패러체인과 함께 실행됩니다. +- 보안 : 패러체인들이 메시지를 속일 수 없기 때문에 스토리지는 패러체인의 로직으로 변경할 수 없습니다. + +## 참고자료들 (Resources) + +- [Smart protocols](https://www.reddit.com/r/dot/comments/b6kljn/smartprotocols_idea/) - SPREE에게 영향을 준 u/tawaran의 "smart protocol" Reddit 포스팅. \ No newline at end of file diff --git a/docs/polkadot/learn/wasm_KR.md b/docs/polkadot/learn/wasm_KR.md new file mode 100644 index 00000000..2549ed23 --- /dev/null +++ b/docs/polkadot/learn/wasm_KR.md @@ -0,0 +1,14 @@ +# 웹 어셈블리 (WebAssembly,Wasm) + +Polkadot 과 Susbstrate 에서는 런타임 컴파일 타겟으로 WebAssembly가 사용됩니다. + +## WebAssembly는 무엇인가요? + +> WebAssembly(줄여서 Wasm)dms 스택 기반 가상머신 바이너리 명령어 포맷(binary instruction format for a stack-based virtual machine)입니다. Wasm은 C/C ++/ Rust와 같은 고급 언어를 경량 컴파일 타겟으로 설계되어 웹 상의 클라이언트나 서버 어플리케이션에 배포 할 수 있습니다. + +## 자료들 (Resources) + +- [WebAssembly.org](https://webassembly.org/) -스펙 링크가 포함된 WebAssembly 홈페이지 입니다. +- [Wasmi](https://github.com/paritytech/Wasmi) - Rust로 구현된 WebAssembly . +- [Parity Wasm](https://github.com/paritytech/parity-Wasm) - Rust로 구현된 WebAssembly serialization/deserialization . +- [Wasm utils](https://github.com/paritytech/Wasm-utils) - Parity와 Wasm 컨트랙트 개발에 사용되는 Wasm 유틸리티 모음입니다. diff --git a/docs/research_KR.md b/docs/research_KR.md new file mode 100644 index 00000000..8affc288 --- /dev/null +++ b/docs/research_KR.md @@ -0,0 +1,3 @@ +# 폴카닷 연구 관련 링크 (Polkadot Research) + +[https://research.polkadot.network](https://research.polkadot.network) \ No newline at end of file diff --git a/mkdocs_KR.yml b/mkdocs_KR.yml new file mode 100644 index 00000000..7c91f5bf --- /dev/null +++ b/mkdocs_KR.yml @@ -0,0 +1,112 @@ +site_name: Polkadot Wiki in Korean +site_description: Information on Polkadot +site_author: 'Web3 Foundation' +site_url: https://wiki.polkadot.network + +nav: + - Home: index_KR.md + - Build: + - Home: polkadot/build/index_KR.md + - Building on Polkadot: polkadot/build/build-with-polkadot_KR.md + - Cumulus: polkadot/build/cumulus_KR.md + - Deploy Parachains: polkadot/build/deploy-parachains_KR.md + - Examples: polkadot/build/examples/index_KR.md + - Extrinsic Format: polkadot/build/extrinsic-format_KR.md + - Hackathons: polkadot/build/hackathon_KR.md + - Networks: polkadot/build/networks_KR.md + - Parachain Development Kits: polkadot/build/pdk_KR.md + - Rust Style Guide: polkadot/build/rust-style-guide_KR.md + - Smart Contracts: polkadot/build/smart-contracts_KR.md + - Tools: polkadot/build/tools/index_KR.md + - Learn: + - Home: polkadot/learn/index_KR.md + - Bridges: polkadot/learn/bridges/ + - Comparisons: + - Cosmos: polkadot/learn/comparisons/cosmos_KR.md + - Ethereum: polkadot/learn/comparisons_KR.md + - Tezos: polkadot/learn/comparisons_KR.md + - Consensus: polkadot/learn/consensus_KR.md + - Cryptography: polkadot/learn/cryptography_KR.md + - DOT: polkadot/learn/DOT_KR.md + - FAQ: polkadot/learn/faq_KR.md + - Governance: polkadot/learn/governance_KR.md + - Glossary: glossary_KR.md + - GRANDPA: polkadot/learn/consensus_KR.md + - ICMP: polkadot/learn/interchain_KR.md + - Implementations: polkadot/learn/implementations_KR.md + - Keys: polkadot/learn/keys_KR.md + - Phragmen: polkadot/learn/phragmen_KR.md + - Roadmap: polkadot/learn/roadmap_KR.md + - Security: polkadot/learn/security_KR.md + - SPREE: polkadot/learn/spree_KR.md + - Staking: polkadot/learn/staking_KR.md + - Randomness: polkadot/learn/randomness_KR.md + - Relevant Links: polkadot/learn/relevant-links_KR.md + - Parachains: polkadot/learn/parachains_KR.md + - Parachain Slots: polkadot/learn/auction_KR.md + - Polkadot Runtime Environment: polkadot/learn/PRE_KR.md + - Polkadot UI: polkadot/learn/UI_KR.md + - Run the Network: + - Home: polkadot/node/index_KR.md + - Collator: polkadot/node/collator_KR.md + - Nominator: polkadot/node/nominator_KR.md + - Validator: polkadot/node/node-operator_KR.md + - Guides: + - How to nominate: polkadot/node/guides/how-to-nominate_KR.md + - How to validate: polkadot/node/guides/how-to-validate_KR.md + - How to systemd: polkadot/node/guides/how-to-systemd_KR.md + - Governance: polkadot/node/governance/index_KR.md + - Other Languages: + - Chinese: lang/chinese/index.md + - Japanese: lang/japanese.md + - Korean : lang/Korean.md + - News: news_KR.md + +# Configuration for the Material theme +theme: + name: null + custom_dir: 'mkdocs-material/material' + language: 'en' + palette: + primary: 'grey' + accent: 'pink' + font: + text: 'PT Sans' + code: 'Ubuntu Mono' + favicon: 'img/favicon.ico' + logo: 'img/logo.svg' + feature: + tabs: false + +# Extra css for further customization +extra_css: + - 'stylesheets/extra.css' + +extra_javascript: + - https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML + - https://research.web3.foundation/en/latest/mathjax-config.js + +# Repository that houses the source code for this site. This +# is needed to render the nice GH link on the top right. +repo_name: 'w3f/polkadot-wiki' +repo_url: 'https://github.com/w3f/polkadot-wiki' + +# Social links +extra: + social: + - type: 'github' + link: 'https://github.com/paritytech/polkadot' + - type: 'twitter' + link: 'https://twitter.com/polkadotnetwork' + - type: 'medium' + link: 'https://medium.com/@polkadotnetwork' + +markdown_extensions: + - admonition + - codehilite: + guess_lang: false + - toc: + permalink: true + - mdtooltips + + \ No newline at end of file From f9f5ad2d71935fe32399f6963f67e2d6641ede4d Mon Sep 17 00:00:00 2001 From: cmcm2222 Date: Tue, 18 Jun 2019 23:37:46 +0900 Subject: [PATCH 2/9] [WIP] on translation. --- docs/community_KR.md | 22 ++++----- docs/polkadot/build/cumulus_KR.md | 26 +++++----- docs/polkadot/build/deploy-parachains_KR.md | 53 +++++++++++---------- docs/polkadot/build/dev-roadmap_KR.md | 53 ++++++++++----------- docs/polkadot/build/examples/index_KR.md | 6 +-- docs/polkadot/build/extrinsic-format_KR.md | 29 ++++++----- docs/polkadot/build/hackathon_KR.md | 36 +++++++------- docs/polkadot/build/index_KR.md | 41 +++++++--------- docs/polkadot/build/networks_KR.md | 4 +- docs/polkadot/build/tools/subkey_KR.md | 16 +++---- 10 files changed, 141 insertions(+), 145 deletions(-) diff --git a/docs/community_KR.md b/docs/community_KR.md index 282769a6..bed207ae 100644 --- a/docs/community_KR.md +++ b/docs/community_KR.md @@ -4,24 +4,24 @@ The Polkadot 커뮤니티는 매일 확장되고 있습니다. 아래는 가장 ## General -- [Join the Polkadot PoC-4 Testnet ("Alexander")](https://polkadot.js.org/apps/#/explorer) - Access the UI dashboard for interacting with the latest Polkadot testnet. -- [Polkadot GitHub](https://github.com/paritytech/polkadot/) - Parity maintained repository that houses the Rust implementation of the Polkadot runtime environment. -- [Polkadot meetups](https://github.com/w3f/Web3-collaboration/blob/master/meetups.md) - Information on hosting meetup이나 모금, and materials for running it. +- [Polkadot PoC-4 Testnet ("Alexander")에 참여하세요](https://polkadot.js.org/apps/#/explorer) - 최신 Polkadot testnet을 사용해 볼 수 있는 UI 대시보드. +- [Polkadot 깃헙](https://github.com/paritytech/polkadot/) - Parity가 유지 및 관리하는 Polkadot 실행환경 Rust 구현체 저장소 +- [Polkadot 밋업](https://github.com/w3f/Web3-collaboration/blob/master/meetups.md) - 밋업을 개최하거나 모금활동, 그리고 관련된 운영자료들. ## Riot -- [Polkadot Beginners Lounge](https://riot.im/app/#/room/#polkadotnoobs:matrix.org) - Polkadot을 처음 시작하는 사람들을 위한 곳입니다. **질문하기 좋은 장소예요!** +- [Polkadot 비기너 라운지](https://riot.im/app/#/room/#polkadotnoobs:matrix.org) - Polkadot을 처음 시작하는 사람들을 위한 곳입니다. **질문하기 좋은 장소예요!** - [Polkadot Watercooler Chat](https://riot.im/app/#/room/#polkadot-watercooler:matrix.org) - Polkadot에 대해서 수다떠는 방. -- [Substrate Technical](https://riot.im/app/#/room/#substrate-technical:matrix.org) - 서브스트레이트(Substrate)를 빌드하고 구동하는데 관련된 기술적인 질문을 하는 곳. +- [섭스트레이트 테크니컬 관련](https://riot.im/app/#/room/#substrate-technical:matrix.org) - 섭스트레이트(Substrate)를 빌드하고 구동하는데 관련된 기술적인 질문을 하는 곳. ## Socials -- [Subscribe to the Polkadot newsletter](https://polkadot.network/#roadmap) - Email sign up form is available at the bottom of the page. -- [Polkadot Telegram](https://t.me/polkadotofficial) - Official Telegram room for discussion of Polkadot (please read the rules before chatting). -- [Polkadot Twitter](https://twitter.com/polkadotnetwork) - Official Twitter account of Polkadot. -- [Polkadot Reddit](https://www.reddit.com/r/dot/) - Official Polkadot Reddit. -- [Polkadot Youtube Channel](https://www.youtube.com/channel/UCB7PbjuZLEba_znc7mEGNgw) - Video content from founders and build of Polkadot describing the network and the vision. +- [Polkadot newsletter 구독하기](https://polkadot.network/#roadmap) - 웹 페이지 밑에서 Email 가입 신청서를 이용할 수 있습니다. +- [Polkadot 텔레그램 커뮤티니](https://t.me/polkadotofficial) - Polkadot에 대해서 토론할 수 있는 공식 텔레그램 채팅방 (채팅전에 채팅 규칙에 대해서 읽어주세요). +- [Polkadot 트위터](https://twitter.com/polkadotnetwork) -공식 Polkadot 트위터 계정. +- [Polkadot 레딧](https://www.reddit.com/r/dot/) - 공식 Polkadot 레딧. +- [Polkadot 유튜브 채널](https://www.youtube.com/channel/UCB7PbjuZLEba_znc7mEGNgw) - Polkadot 창업자가 만든 비디오 자료와 Polkadot이 만드는 네트워크와 비전에 대한 비디오 ## Ecosystem -- [Teams Building on Polkadot](https://forum.web3.foundation/t/teams-building-on-polkadot/67) - Maintained list of teams building on Polkadot and/or Substrate. \ No newline at end of file +- [Polkadot을 기반으로 하는 팀 리스트](https://forum.web3.foundation/t/teams-building-on-polkadot/67) - Polkadot이나 Substrate을 기반으로 해서 재정적 지원을 받는 팀 리스트. diff --git a/docs/polkadot/build/cumulus_KR.md b/docs/polkadot/build/cumulus_KR.md index a181b25f..fbbb3c73 100644 --- a/docs/polkadot/build/cumulus_KR.md +++ b/docs/polkadot/build/cumulus_KR.md @@ -1,29 +1,29 @@ -# Cumulus +# 뭉게구름 (Cumulus) -> Cumulus clouds are shaped sort of like dots and are up in the air, like this project (as it is an initial prototype -- expect a rename when it gets cooler.) +> 뭉게구름(Cumulus clouds)은 점(dots)처럼 생겼고 이 프로젝트처럼 아직 정해진 것이 없습니다. (현재 초기 프로토타입이므로 모양이 정해지면 (구름은 아직 형태가 정해지지 않았으므로 gets cooler 라고 원문에 표시되어 있음 - 역자 주 )이름을 변경해야합니다. -[Cumulus](https://github.com/paritytech/cumulus) is an extension to Substrate that makes it easy to make any Substrate built runtime into a Polkadot compatible parachain. +[Cumulus](https://github.com/paritytech/cumulus)는 섭스트레이트의 확장 기능으로 어떤 섭스트레이트 빌트 런타임이라도 Polkadot 호환 패러체인으로 쉽게 만들 수 있게 합니다. -## Components +## 컴포넌트(Components) -### Cumulus Consensus +### 뭉게구름 컨센서스 (Cumulus Consensus) -*cumulus-consensus* is a consensus engine for Substrate which follows a Polkadot relay chain. This will run a Polkadot node internally, and dictate to the client and synchronization algorithms which chain to follow, finalize, and treat as best. +Polkadot 릴레이 체인을 따르는 Substrate의 컨센서스 엔진입니다. 이것은 Polkadot 노드를 내부적으로 실행하고 어떤 체인을 따를 것이며, 어떤 체인을 최종적으로 승인할 것인지(Finalize), 어떤 체인을 제일 먼저 다룰 것인지에 대해서 클라이언트와 동기화 알고리즘에 영향을 줍니다. -### Cumulus Runtime +### 뭉게구름 런타임 (Cumulus Runtime) -A wrapper around Substrate runtimes to allow them to be validated by Polkadot validators and provide witness generating routines. It adds a `validate_block` API to the Substrate external interface which will be called by validators. +Polkadot 밸리데이터가 유효성을 검사하고 증인 생성 루틴(Witness generating routine)을 제공할 수 있게 하는 Substrate 런타임의 Wrapper입니다. 밸리데이터가 호출 할 Substrate 외부 인터페이스에 `validate_block` API를 추가합니다. -Integrating it into your substrate runtime will be as easy as importing the crate and adding this one line macro to your code. +섭스트레이트 런타임에 통합하는 것은 Crate를 가져와서 한 행의 매크로를 코드에 추가하는것 만큼 쉽습니다. ``` rust runtime::register_validate_block!(Block, BlockExecutor); ``` -### Cumulus Collator +### 뭉게구름 검사기 (Cumulus Collator) -A planned Polkadot collator for a parachain. +패러체인을 위한 Polkadot collator가 준비중입니다. -## Resources +## Resources -- [Rob's talk from EthCC introducing Cumulus](https://www.youtube.com/watch?v=thgtXq5YMOo) +- [EthCC에서 Cumulus를 소개하는 Rob의 발표](https://www.youtube.com/watch?v=thgtXq5YMOo) diff --git a/docs/polkadot/build/deploy-parachains_KR.md b/docs/polkadot/build/deploy-parachains_KR.md index 33c37d76..33e58637 100644 --- a/docs/polkadot/build/deploy-parachains_KR.md +++ b/docs/polkadot/build/deploy-parachains_KR.md @@ -1,28 +1,28 @@ -# How to view and deploy parachains +# 패러체인을 보고 배포하는 방법 (How to view and deploy parachains) The guide has been updated to work with the Alexander testnet. -## How to view parachains +## 패러체인을 보는 방법(How to view parachains) On the [Polkadot UI](https://polkadot.js.org/apps/#/explorer) navigate to the `Chain State` tab. Select the `parachains` module and the `parachains()` then hit the `+` button. It will return an array of the currently active parachains. -## How to deploy the Adder parachain +## 패러체인에 애더(Adder)를 배포하는 방법 (How to deploy the Adder parachain) -**You will need to have the minimum deposit needed to create a referendum. Currently this minimum is 5 DOTs.** +**투표를 만들기 위해 필요한 최소한의 보증금이 필요합니다. 현재는 최소 5 Dot이 필요합니다.** -The `adder` parachain is a simple parachain which will keep a value in storage and add to this value as messages are sent to it. It can be found in the Polkadot repository under the `test-parachains` folder. +`Adder`패러체인은 스토리지에 값을 유지하고 메시지가 전송 될 때 이 값에 더하는 단순한 패러체인 입니다. Polkadot 레포지토리의 `test-parachains` 폴더에 있습니다. > A slightly out-of-date video version of this guide presented by Adrian Brink is available [here](https://www.youtube.com/watch?v=pDqkzvA4C0E). When the two guides diverge, please refer to this written text as definitive and updated. -### Building the code +### 코드 짜기 (Building the code) -The first step is to download locally the Polkadot code. +첫번째로 Polkadot 코드를 다운로드 받습니다. ```bash git clone https://github.com/paritytech/polkadot.git ``` -Now make sure you have Rust installed. +Rust가 설치되어 있는지 확인하세요. ```bash curl https://sh.rustup.rs -sSf | sh @@ -30,18 +30,18 @@ sudo apt install make clang pkg-config libssl-dev rustup update ``` -Now navigate to the `test-parachains` folder in the Polkadot code repository and run the build script. +다음 Polkadot 디렉토리에 있는 `test-parachains`디렉토리를 찾아서 실행시키고 스크립트를 실행시키고 빌드합니다. ```bash cd polkadot/test-parachains ./build.sh ``` -This will create the Wasm executable of the simple `adder` parachain contained in this folder. This parachain will simply add messages that are sent to it. The Wasm executable will output into the `parachains/test/res/adder.wasm` path so make sure you are able to find it there. +이 폴더에 들어있는 간단한 `Adder` 패러체인의 Wasm 실행 파일이 생성됩니다. 이 패러체인은 단순히 전송 된 메시지를 추가합니다. Wasm 실행 파일은 `parachains / test / res / adder.wasm` 경로에 값을 출력합니다. 결과값들은 거기서 찾을 수 있습니다. -You will need to build and run the collator node in order to get the genesis state of this parachain. +이 패러체인의 제네시스 스테이트를 얻기 위해서 검사기 (Collator)노드를 빌드하고 실행시켜야 합니다. -Navigate to the `test-parachains/adder/collator` directory and run the `build` and `run` commands. +`test-parachains/adder/collator`디렉토리로 가서 `build`와 `run` 커맨드를 실행하세요. ```bash cargo build @@ -49,7 +49,7 @@ cargo run [ctrl-c] ``` -Feel free to stop the collator node right away. You will get some output that looks like this: +Collator 노드를 즉시 중단하면 다음과 같은 출력이 표시됩니다 ``` Starting adder collator with genesis: @@ -58,30 +58,31 @@ Dec: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, Hex: 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000011b4d03dd8c01f1049143cf9c4c817e4b167f1d1b83e5c6f0f10d89ba1e7bce ``` -The important information is the hex string. This is your genesis state and you will need to save it for the next steps. +여기서 16진수(hex) 스트링이 중요한 정보입니다. +이 정보는 제네시스 스테이트 (Genesis state)이고 다음 단계를 위해서 저장해놓아야 합니다. -### Deploying the parachain +### 패러체인 배포하기 (Deploying the parachain) -Go to [Polkadot UI](https://polkadot.js.org/apps/#/extrinsics) on the `Extrinsics` tab. Select the account you wish to deploy the parachain from. You will need to create a referendum to deploy the parachain. +`Extrinsics` 탭에 있는 [Polkadot UI](https://polkadot.js.org/apps/#/extrinsics)로 가세요. +패러체인을 배포하고 싶은 계정을 선택하세요 패러체인을 배포하기 위해서 투표를 생성해야 합니다. -Click on `democracy` -> `propose(proposal,value)` -> `parachains` -> `registerParachain(id,code,initial_head_data)`. +`democracy` -> `propose(proposal,value)` -> `parachains` -> `registerParachain(id,code,initial_head_data)` 순서대로 클릭하세요. -In the `id` input enter in the id of the parachain. In the case of the simple adder it will be `100`. In the `code` field click on the page button and then upload the `adder.wasm` binary that was compiled from before. In the `initial_head_data` we will copy and paste the hex data that we got from running the collator node. In the `value` field you will need to input the minimum required value for creating a referendum. At the time of writing this is _5 DOTs_ on the Alexander testnet. +`id` 입력에서 패러체인의 id를 입력하세요. 단순한 애더(Adder)의 경우 `100`이 됩니다. `code` 필드에서 페이지 버튼을 클릭하고 그다음 이전에 컴파일 된`adder.wasm` 바이너리를 업로드 하세요. `initial_head_data`에서 collator(검사기) 노드를 실행하여 얻은 16진수(hex) 데이터를 복사하여 붙여 넣습니다. `value` 필드에서 투표를 만들 때 필요한 최소값을 입력해야합니다. 이 글을 쓰는 시점에서 Alexander testnet에서 _5 DOTs_ 입니다. -![registering a parachain](../../img/parachain/register.png) +![패러체인 등록하기](../../img/parachain/register.png) -If you navigate to the `Democracy` tab you will be able to see your proposal in the proposals section. +`Democracy` 탭으로 이동하면 프로포절 섹션에서 프로포절을 볼 수 있습니다. -Once you wait for the proposal to become a referendum you will be able to vote `Nay` or `Aye` on it. Assumably, you will vote Aye as this will be a vote for the deployment of your parachain. +일단 프로포절이 투표가 될 때까지 기다리면 `Nay`나 `Aye`에 투표 할 수 있습니다. 아마도 당신은 당신의 패러체인을 배포하기위한 표가 될 것이기 때문에 당신은 Aye에게 투표 할 것입니다. -![parachain referendum](../../img/parachain/referendum.png) +![패러체인 투표](../../img/parachain/referendum.png) -After the voting period of your referendum goes through you will be able to query the state of your parachain. - -You can go to the `Chain State` tab and by querying the `parachains` state you should be able to see some information on your parachain. +투표 기간이 끝나면 패러체인의 스테이트를 쿼리 할 수 있습니다. +`Chain State` 탭으로 가서 `parachains` 스테이트를 쿼리함으로써 패러체인에 대한 정보를 볼 수 있습니다. ![parachain info](../../img/parachain/info.png) -### Interacting with the parachain +### 패러체인과 인터렉션 하기 (Interacting with the parachain) _Coming soon_ diff --git a/docs/polkadot/build/dev-roadmap_KR.md b/docs/polkadot/build/dev-roadmap_KR.md index 139bfe21..8a173e26 100644 --- a/docs/polkadot/build/dev-roadmap_KR.md +++ b/docs/polkadot/build/dev-roadmap_KR.md @@ -1,48 +1,47 @@ -# Roadmap For Developers +# 개발자를 위한 로드맵 (Roadmap For Developers) -Developers need some guide posts for when they can expect certain milestones -to be reached by the upstream teams. We will try to keep the sections below -up to date with the what we know and add definite dates if possible. +개발자들에게는 언제 업스트림 팀이 특정 마일스톤에 도달 할지 예상할 수 있는 몇 가지 가이드 포스트가 필요합니다. +우리가 알고있는 정보로 아래 섹션을 최신 상태로 유지하고 가능한 경우 명확한 날짜를 추가하려고 노력할 것입니다. -## Substrate +## 섭스트레이트 (Substrate) ### 1.0 -41% Complete +41% 완료 -[Milestone tracker](https://github.com/paritytech/substrate/milestone/9) +[마일스톤 트래커](https://github.com/paritytech/substrate/milestone/9) -Expected Features: +예상되는 기능들: - - Final API and stable interfaces - - Ristretto Crypto - - Solid networking - - Outstanding bugs fixed - - Decoupled balances - - Integration tests - - Enhanced control over Wasm/native execution heuristics - - Panics/overflows sweeps in runtime + - 확정된 API와 안정된 인터페이스 + - [리스트레토 크립토 (Ristretto Crypto)](https://ristretto.group/ristretto.html) + - 튼튼한 네트워크 + - 해결되지 않은 버그 제거 + - 분리된 잔고 (Decoupled balances) + - 인테그레이션 테스트 (Integration tests) + - Wasm/native 실행 휴리스틱스를 통한 향상된 컨트롤 (Enhanced control over Wasm/native execution heuristics) + - 런타임에서의 Panics/overflows 스윕 (Panics/overflows sweeps in runtime) ### 1.1 -[Milestone tracker](https://github.com/paritytech/substrate/milestone/4) +[마일스톤 트래커](https://github.com/paritytech/substrate/milestone/4) -Expected Features: +예상되는 기능: - - Economic safety + - 경제학적 안정 (Economic safety) -## Polkadot +## Polkadot -Current release: **PoC-4** +현재 릴리즈: **PoC-4** ### PoC 5,6,7 -7% Progress on issue tracker +이슈 트래커에서 7% 진척도가 있음. -[Milestone tracker](https://github.com/paritytech/polkadot/milestone/2) +[마일스톤 트래커](https://github.com/paritytech/polkadot/milestone/2) -Expected Features: +예상되는 기능들: - - BLS signature aggregation for parachain candidate attestations - - [Integrate Parachain tokens into governance](https://github.com/paritytech/polkadot/issues/124) - - Improvements to parachain validation \ No newline at end of file + - 패러체인 후보들의 증명을 위한 BLS 시그니처 에그리게이션 + - [패러체인 토큰들을 거버넌스에 통합(Integrate Parachain tokens into governance)](https://github.com/paritytech/polkadot/issues/124) + - 패러체인 확인(validation)의 개선 diff --git a/docs/polkadot/build/examples/index_KR.md b/docs/polkadot/build/examples/index_KR.md index 30cf81de..4dec7cdc 100644 --- a/docs/polkadot/build/examples/index_KR.md +++ b/docs/polkadot/build/examples/index_KR.md @@ -7,7 +7,7 @@ ### Parity -- [Shasper](https://github.com/paritytech/shasper)- 서브스트레이트 런타임 으로 구현된 이더리움 2.0. +- [Shasper](https://github.com/paritytech/shasper)- 섭스트레이트 런타임 으로 구현된 이더리움 2.0. - [Substrate TCR](https://github.com/parity-samples/substrate-tcr)- 런타임 모듈로 구현된 토큰 큐레이트 레지스트리(Token curated registry). - [Substrate ERC20](https://github.com/parity-samples/substrate-erc20) - 서브스트레이트에 구현된 ERC20 토큰 표준 (Token standard) . @@ -15,13 +15,13 @@ - AdEx 페이먼트 채널은 섭스트레이트를 사용합니다.[Video](https://www.youtube.com/watch?v=1CeI6Oa1BnU). [Repo](https://github.com/AdExNetwork/adex-protocol-substrate). - ROS 와 통합된 로보노믹스 모듈(Robonomics modules for integrating with ROS). [Repo](https://github.com/airalab/substrate-node-robonomics) -- Staked Technologies의 서브스트레이트(Substrate) 위에서 플라즈마(Plasma)구현. [Repo](https://github.com/stakedtechnologies/Plasm) +- Staked Technologies의 섭스트레이트(Substrate) 위에서 플라즈마(Plasma)구현. [Repo](https://github.com/stakedtechnologies/Plasm) - 엣지웨어(Edgeware). [Repo](https://github.com/hicommonwealth/edgeware-node) - 프라이버시에 중점을 둔 런타임 모듈인 제로체인 (Zerochain privacy-focused runtime module). - [Zero-chain Repo](https://github.com/LayerXcom/zero-chain) - [Bellman-substrate (섭스트레이트 위애서 zksnark 구현) Repo](https://github.com/LayerXcom/bellman-substrate) - 섭스트레이트 위에서 IPFS 메타데이터를 구현한 Starlog. [Repo](https://github.com/PACTCare/Starlog) -- 섭스트레이트를 사용해서 사과를 파는 "애플 스토어" 구현 예제 (An example "Apple Store" to sell apples using Substrate). [Repo](https://github.com/osuketh/apple-store-substrate) +- 섭스트레이트를 사용해서 사과를 파는 "애플 스토어" 구현 예제 (섭스트레이트를 사용해서 사과를 파는 "애플 스토어" 예시 ). [Repo](https://github.com/osuketh/apple-store-substrate) - 랜드체인(Landchain), 크로스체인 게이밍 플랫폼(cross-chain gaming platform). [Repo](https://github.com/evolutionlandorg/land-chain) - 조이스트림(Joystream), 유저 중심의 비디로 플랫폼 (user governed video platform). [Repo](https://github.com/Joystream/substrate-node-joystream) - IPFS 브라우저(IPFS browser). [Repo](https://github.com/Polygos/substrate-node-ipfsbrowser) diff --git a/docs/polkadot/build/extrinsic-format_KR.md b/docs/polkadot/build/extrinsic-format_KR.md index 28f63a82..d2cbdea9 100644 --- a/docs/polkadot/build/extrinsic-format_KR.md +++ b/docs/polkadot/build/extrinsic-format_KR.md @@ -1,40 +1,39 @@ -# Polkadot Extrinsic Format aka Transaction Format +# Polkadot 트랜잭션 포맷 (Polkadot Extrinsic Format aka Transaction Format) -## Old Format +## 이전 포맷 -For reference the **old** extrinsic format was: +참고로 **예전** 트랜잭션 포맷은 아래와 같습니다.: ``` -[ account-id (32-bytes), index (4-bytes), call (dynamic-length), signature on first three fields (64 bytes) ] +[ account-id (32-bytes), index (4-bytes), call (dynamic-length), 첫 세가지 필드에 서명 (account-id, index, call에 서명함 - 역자 주) (64 bytes) ] ``` -## Current Format +## 현재 포맷 -The Polkadot extrinsic format is: +Polkadot 트랜잭션 포맷은 아래와 같습니다.: ``` -[ address (1/3/5/9/33-bytes, dependent on first byte), index (4-bytes), call (dynamic-length), signature on *original* fields (64 bytes) ] +[ address (1/3/5/9/33-bytes, 첫번째 바이트에 따라 다름), index (4-bytes), call (dynamic-length), *오리지널* 필드에 서명함 (64 bytes) ] ``` -The *original* fields refer to the following from the old extrinsic format: - +*오리지널* 필드들은 예전 트랜잭션 포맷에서 다음과 같은 요소들을 참조합니다. ``` [ account-id (32-bytes), index (4-bytes), call (dynamic-length) ] ``` -The specific format for the new address type is one of 5 sub-formats, switched on the first byte: +새 주소 타입을 위한 특정 형식은 아래 5개의 하위 형식 중 하나이며 첫 번째 바이트로 전환됩니다. - `0xff, 32-byte account id` - `0xfe, 8-byte account index` - `0xfd, 4-byte account index` - `0xfc, 2-byte account index` -- `[0xf0...0xfb] (invalid, reserved for future use)` -- `[0x00...0xef] 1-byte account index (less than 0xf0)` +- `[0xf0...0xfb] (유효하지 않음, 나중에 사용하기 위해 남겨놓음)` +- `[0x00...0xef] 1-byte account index (0xf0보다 작음)` -The account index variants are significantly smaller but require a lookup in the state. To avoid a transaction replay attack when an index changes its account, the signature is signed not with the first field as the index, but rather as the account id, thereby invalidating all previous signatures once the index is used to lookup a different id. +계정 인덱스 변형들은 상당히 작지만 스테이트에서 조회가 필요합니다. 인덱스가 계정을 변경할 때 트랜잭션 리플레이 어택을 피하기 위해 서명은 첫 번째 필드인 인덱스가 아닌 계정 ID로 서명되므로 이것때문에 인덱스가 다른 ID를 조회하는 데 사용되면 이전의 모든 서명이 무효화됩니다. -In addition to the sender field, any parameters to Call/Propose (PrivCall) fields that were AccountId (32-bytes) in the old format are now Address (1/3/5/9/33-bytes). +발신자 필드 뿐만 아니라 이전 형식의 AccountId(32-bytes)였던 Call/Propose(PrivCall) 필드에 대한 파라매터는 이제 Address(1/3/5/9/33-bytes)입니다. -## Source +## 출처 [Substrate #195](https://github.com/paritytech/substrate/pull/195) diff --git a/docs/polkadot/build/hackathon_KR.md b/docs/polkadot/build/hackathon_KR.md index da74ce82..38535f6c 100644 --- a/docs/polkadot/build/hackathon_KR.md +++ b/docs/polkadot/build/hackathon_KR.md @@ -1,8 +1,8 @@ -# Hackathon +# 해커톤 (Hackathon) -As one of our objectives in the Web3 Foundation is pushing the [Web3 technology stack](http://wiki.web3.foundation/en/latest/tech_stack/tech_stack_overview/), we would like to support any individual or team who wants to organize a hackathon that gets more developers to understand Polkadot/Substrate in your city. +Web3 Foundation의 목표 중 하나인 [Web3 기술 스택](http://wiki.web3.foundation/en/latest/tech_stack/tech_stack_overview/)을 추진함에 따라 우리는 당신의 도시에있는 Polkadot/Substrate를 더 많은 개발자들이 이해할 수 있도록 해커톤을 진행 할 개인이나 팀을 지원하고자합니다. -We are not only providing technical resources for you, but we can have someone from our team give a hands-on workshop/presentation about the technology to help participants get started hacking on it more quickly. +우리는 기술 리소스를 제공하는 것뿐만 아니라 우리 팀 중 누군가가 기술에 대한 핸즈 온(hands-on)워크숍 /프레젠테이션을 진행해서 이를 통해 참가자가 해커톤을 더 빨리 시작할 수 있도록 할 수 있습니다. ## Ideas @@ -13,9 +13,9 @@ We are not only providing technical resources for you, but we can have someone f - IPFS integration - Decentralized identity solutions - Oracle module -- Implement Generalized State Channel/Plasma Chain -- Decentralized Exchange -- Tools for monitoring validator performance +- 제네럴 스테이트 체널/플라즈마 체인의 구현 (Implement Generalized State Channel/Plasma Chain) +- DeX (Decentralized Exchange) +- 밸리데이터 퍼포먼스 모니터링 툴 (Tools for monitoring validator performance) - dApps across different parachains ## Why you should host a hackathon? @@ -25,32 +25,34 @@ We are not only providing technical resources for you, but we can have someone f - Believe the Web3 technology stack is suitable for developers to build their applications - Like to make connections -## How do hackathons differ from workshops? +## 워크샵과 해커톤은 어떻게 다른가요? + Hackathon is aimed at participants who want to deliver their prototype and demonstrate their ideas to reality in a short period (few hours - one day). Workshops are more for getting developers familiar with the tooling and understanding more about what are the resources currently available and how they can make use of it. -## How can you run a hackathon in your city? -1. Submit your application (Coming soon.) -2. Review -3. Decision -4. Follow up +## 어떻게 당신의 도시에서 해커톤을 열 수 있나요? + +1. 해커톤 지원서를 제출합니다 (Coming soon.) +2. 리뷰하고 +3. 결정한 뒤 +4. 진행합니다. -## How we can help you +## 어떻게 당신을 도와드릴 수 있을까요? - Provide technical resources/materials. - Find a venue. - Ensure the hackathon run smoothly. -## Upcoming hackathon events +## 앞으로 다가올 해커톤 이벤트 Coming soon. -## Template / Starter packs +## 템플릿 / 스티터 팩 Coming soon. -## Resources +## 참고 자료들 -- [Substrate Developer Hub](https://docs.substrate.dev) +- [섭스트레이트 개발자 허브](https://docs.substrate.dev) ## Support / Contact diff --git a/docs/polkadot/build/index_KR.md b/docs/polkadot/build/index_KR.md index 18775ca4..9d18c9c1 100644 --- a/docs/polkadot/build/index_KR.md +++ b/docs/polkadot/build/index_KR.md @@ -1,41 +1,36 @@ # Builders Portal !!! info - _🏗️ Polkadot is under construction, these documents will likely change._ + _🏗️ Polkadot은 현제 구현되고 있습니다. 이 문서들은 자주 바뀐다는 것을 알려드립니다._ -Welcome to the builders section of the Polkadot wiki. +Polkadot 위키의 개발자 섹션에 오신것을 환영합니다. -Here you will be able to find the most up-to-date information on the status of the development tools in the @(Polkadot) ecosystem. -We are always adding new tools and frameworks as we learn about them so if you are working on something that should be included please reach out to us on [Riot](https://riot.im/app/#/room/#polkadot-watercooler:matrix.org). +여기에서 @(Polkadot)생태계의 개발 도구에 대한 최신 정보를 찾을 수 있습니다. +우리는 Polkadot에 대해서 알아갈 때마다 항상 새로운 도구와 프레임워크를 추가하고 있습니다. 그래서 만약 여기에 포함되어야 할 것에 대해서 작업 하고 있다면 [Riot](https://riot.im/app/#/room/#polkadot-watercooler:matrix.org)을 통해 연락해주세요 . -This section of the wiki is divided into three parts: the first -part takes the shape of a technical guide that will get you quickly -up to speed with developing for Polkadot. The second part is an -up-to-date catalogue of developer tooling. The third part is a -resource which will contain some deeper technical information -that is not available to be found elsewhere. +위키의 이 섹션은 세 부분으로 나누어져 있습니다: 첫번째, Polkadot을 개발할 때 신속하게 작업 을 할 수있게 만드는 테크니컬 가이드입니다. 두 번째 부분은 개발자 도구에 대한 최신 카탈로그 입니다. 세 번째 부분은 다른 곳에서 찾을 수 없는 좀 더 깊은 기술 정보를 담고있는 자료들이 있습니다. -## Development Guide +## 개발 가이드 Guide -- [Starter's Guide](./build-with-polkadot.md) - High level overview on choosing a parachain or smart contract, and what resources are available today to get started. -- [Development Roadmap](./dev-roadmap.md) -- [Parachain Development Kits](./pdk.md) - Learn about parachain development kits and create your own parachain. -- [Smart Contracts](./smart-contracts.md) - Learn all about smart contracts on Polkadot and Substrate and how to get started today. +- [Starter's Guide](./build-with-polkadot.md) - 패러체인이나 스마트 컨트랙을 선택하기 위한 고수준의 개괄, 그리고 시작하기 위해서 어떤 리소스를 쓸 수 있는지 알아봅니다. +- [개발 로드맵](./dev-roadmap_KR.md) +- [패러체인 개발 키트(PDK)](./pdk.md) - PDK(parachain development kits)에 대해서 배우고 자신만의 패러체인을 만들어 봅니다. +- [스마트 컨트랙트](./smart-contracts.md) - Polkadot과 Substrate의 스마트 컨트랙에 대해서 배워보고 오늘 당장 어떻게 시작할 수 있는지 알아봅시다. ## Tools -- [Tools](./tools/index.md) - Maintained list of tools. -- [Subkey](./tools/subkey.md) - Commandline utility for generating Polkadot/Substrate keys. +- [Tools](./tools/index.md) - 지원을 받는 개발 도구들. +- [서브키 (Subkey)](./tools/subkey.md) - Polkadot/Substrate keys를 생성하는 커맨드 라인 유틸리티. -## Resources +## 참고자료들 -- [Extrinsics Format](./extrinsic-format.md) -- [Networks](./networks.md) -- [Examples](./examples/index.md) -- [Rust Style Guide](./rust-style-guide.md) +- [트랜잭션 포맷 (Extrinsics Format)](./extrinsic-format.md) +- [네트워크](./networks.md) +- [예제들](./examples/index.md) +- [Rust 스타일 가이드](./rust-style-guide.md) ## Hackathon -- [Resources For Running a Hackathon](./hackathon.md) +- [해커톤을 열기 위한 자료들](./hackathon.md) _More coming soon._ diff --git a/docs/polkadot/build/networks_KR.md b/docs/polkadot/build/networks_KR.md index 66b1c0f4..4b8dcf3e 100644 --- a/docs/polkadot/build/networks_KR.md +++ b/docs/polkadot/build/networks_KR.md @@ -1,7 +1,7 @@ -# Networks +# 네트워크 The following commands can be used to connect to the different networks. - +다음 커맨드들은 다른 네트워크에 연 ## Development Install Polkadot and have a `polkadot` binary install to your `PATH` with: diff --git a/docs/polkadot/build/tools/subkey_KR.md b/docs/polkadot/build/tools/subkey_KR.md index 80a3f38f..2f4717f1 100644 --- a/docs/polkadot/build/tools/subkey_KR.md +++ b/docs/polkadot/build/tools/subkey_KR.md @@ -1,8 +1,8 @@ # 서브키(Subkey) + +서브키(subkey, 이하 subkey로 통일 - 역자 주)는 서브스트레이트(Substrate)가 생성한 키(key)나 복원된 서브스트레이트 키(Key)가 포함 되어 있는 커맨드리인 유틸리티입니다. -Subkey is a commandline utility included with Substrate that generates or restores Substrate keys. - -`subkey` will use the [sr25519](http://wiki.polkadot.network/en/latest/polkadot/learn/cryptography/#keypairs-and-signing) cryptography by default. If you need to use the older ed25519 cryptography to generate or restore your key pass the `--ed25519` flag to any of the commands. +`subkey` 는 [sr25519](http://wiki.polkadot.network/en/latest/polkadot/learn/cryptography/#keypairs-and-signing) 암호를 기본적으로 사용 할 것입니다.이전 ed25519 암호화를 사용하여 키를 생성하거나 복원해야 할 경우`--ed25519` 플래그를 커맨드에 입력하세요. ## 사용방법 (Usage) @@ -12,11 +12,11 @@ Subkey is a commandline utility included with Substrate that generates or restor subkey generate ``` -Will output a mnemonic phrase and give you the seed, public key, and address of a new account. DO NOT SHARE your mnemonic or seed with ANYONE it will give them access to your funds. If someone is making a transfer to you they will only need your **Address**. +새 계정의 니모닉(mnemonic phrase)과 시드, 공개 키 및 주소를 제공합니다. 어떤 누구에게도 당신의 니모닉이나 시드를 공유하지 마세요. (그렇지 않다면) 당신의 자금에 접속 할 수 있습니다 . 누군가 당신에게 이체를 하고 있다면 **Adress** 만 필요합니다. ### Key 검사하기(Inspecting a key) -You can inspect a given URI (mnemonic, seed, public key, or address) and recover the public key and the address. +주어진 URI (니모닉, 시드, 공개키 또는 address)를 검사할 수 있고 공개키와 address를 복원할 수 있습니다. ```bash subkey inspect @@ -28,7 +28,7 @@ OUTPUT: ### 서명하기 (Signing) -`subkey` expects a message to come in on STDIN, one way to sign a message would look like this: +`subkey`는 STDIN에서 오는 메시지를 기다립니다. 메시지에 서명하는 한 가지 방법은 다음과 같습니다. ```bash echo | subkey sign @@ -46,9 +46,9 @@ OUTPUT: Signature verifies correctly. ``` -### Using the vanity generator +### vanity generator 사용하기 -You can use the included vanity generator to find a seed that provides an address which includes the desired pattern. Be warned, depending on your hardware this may take a while. +Vanity generator를 사용하여 사용자가 원하는 패턴을 가진 address를 주는 시드를 찾을 수 있습니다. 그러나 하드웨어에 따라 다소 시간이 걸릴 수 있습니다. ```bash subkey vanity 1337 From c5040ef3ef708fe459ca89b46a4834f802ad0050 Mon Sep 17 00:00:00 2001 From: cmcm2222 Date: Thu, 20 Jun 2019 12:38:56 +0900 Subject: [PATCH 3/9] build with polkadot translation finished --- docs/polkadot/build/build-with-polkadot_KR.md | 176 ++++++++++++++++++ docs/polkadot/build/hackathon_KR.md | 22 ++- docs/polkadot/build/pdk_KR.md | 39 ++++ docs/polkadot/build/smart-contracts.md | 20 +- ...10\354\247\270\353\241\234 phragmen_KR.md" | 12 ++ mkdocs_KR.yml | 112 ----------- 6 files changed, 258 insertions(+), 123 deletions(-) create mode 100644 docs/polkadot/build/build-with-polkadot_KR.md create mode 100644 docs/polkadot/build/pdk_KR.md delete mode 100644 mkdocs_KR.yml diff --git a/docs/polkadot/build/build-with-polkadot_KR.md b/docs/polkadot/build/build-with-polkadot_KR.md new file mode 100644 index 00000000..cbcaec1d --- /dev/null +++ b/docs/polkadot/build/build-with-polkadot_KR.md @@ -0,0 +1,176 @@ +# Polkadot 빌더들의 시작 가이드 (Polkadot Builders Starter's Guide) + +!!! 알림 + 이 문서는 다음 블로그 포스트의 최신 버전 입니다.: [Polkadot에 대해서 준비할때 당신이 알아야 할 모든것](https://medium.com/polkadot-network/everything-you-need-to-know-to-prepare-for-polkadot-32d08b929735). + +@(Polkadot)은 연결된 모든 패러체인들에 **공유된 보안(Shared security)**을 제공하고 연결된 모든 체인이 [ICMP](../learn/interchain.md)를 통해 **상호 운용(interoperate)** 할 수 있도록 하자 라는 두 가지 목표를 가진 블록체인 프로토콜입니다. Parity Substrate 및 Cumulus와 같은 [PDKs](./ pdk.md)가 등장해서 새로운 체인을 개발하고 런칭하는 데 걸리는 시간이 크게 줄어 들었습니다. 예전엔 새로운 체인을 출시하는 데 몇 년이 걸렸지만 이제 겨우 몇 주 나 몇일밖에 걸리지 않습니다. + +이 가이드는 오늘 Polkadot으로 당신의 비전을 오늘 당장 시작해 볼 수 있도록 안내합니다. 그리고 @(parachain)과 스마트 컨트랙트의 차이점을 설명할 것입니다.(그리고 둘 중 다른 하나가 왜 당신의 어플리케이션에 더 적합한 지 알 수 있습니다.) 현재 사용할 수있는 리소스와 곧 제공 될 리소스를 배치할 것이므로 올해 후반에 런칭 될 Polkadot 메인넷에 당신의 애플리케이션을 만들 수 있습니다. + +## 우리는 지금 어디쯤 있을까요? + +- 메인넷: **End of 2019** +- 현재 PoC 릴리스: **PoC-4** +- 현재 testnet: **Alexander** +- Substrate: **1.0.0-rc** +- Cumulus: **미완성** +- ink!: **프리 알파(Pre-Alpha)** + +**알아야 할 것들**: Polkadot은 현재 Alexander testnet의 PoC-4 릴리스를 했습니다. Alexander testnet은 전체 PoC-3 릴리스 사이클을 ​​통해 3 개월 이상 운영했습니다. Polkadot은 Rust에서 JavaScript까지 [다양한 프로그래밍 언어로 구현됩니다]((../learn/implementations.md)). 현재 최신 구현체가 Rust로 구현되어 있고 Substrate 프레임워크를 사용하여 블록 체인을 개발합니다. Substrate는 개발자가 네트워킹 프로토콜, 컨센서스 및 Wasm 인터프리터를 포함하여 기본 레이어을 기반으로 전체 블록 체인을 보다 쉽게 ​​개발할 수있게 해주는 라이브러리입니다. 개발 중인 Substrate의 확장 기능인 Cumulus를 사용하면 모든 Substrate 로 구축된 체인이 Polkadot에 연결되어 패러체인이 될 수 있습니다. Substrate 공개 1.0.0 릴리스에 가까워지고 있고 API를 결정 할 예정입니다. + +Substrate 체인은 SRML의 컨트랙트 런타임 모듈을 포함하여 스마트 컨트랙트를 만들 수 있습니다. 컨트랙트 모듈을 사용하면 Wasm으로 컴파일 된 스마트 컨트랙트를 체인에 배포 할 수 있습니다. 컨트랙트의 배포를 쉽게 하기 위해 Parity는 ink!라는 DSL(Domain Specific Language)를 개발했습니다. + +Polkadot는 2019년 말에 mainnet을 런칭 할 예정입니다. 이제 개발 도구들이 생기고 안정화되기 시작했기 때문에 메인넷을 시작하는데 더 나은 때가 없었습니다 . 하지만 기다려주세요! 먼저 코드를 들여다보기 전에, Polkadot를 빌드하려는 개발자가 사용할 수있는 다양한 패러다임이 있다는 것을 이해하고 만들고 싶은 분산형 애플리케이션의 종류에 대해 생각해야 합니다. + +##패러체인을 만드는 것과 스마트 컨트랙트를 만드는 것의 차이점은 뭔가요? + +Polkadot은 두 가지 방법으로 어플리케이션을 배포 할 수 있습니다. 기존의 패러체인에 스마트 컨트랙트를 개발하던지 아니면 당신만의 패러체인을 만드는 것입니다. 이 중 한 방법으로 작업 할 때 트레이드 오프가 있으며 이 섹션을 읽으면 트레이드 오프에 대해서 이해하는 데 도움이 됩니다. + +Parachain는 Polkadot 릴레이 체인에서 제공하는 shared security 와 인터체인 메시징의 이점을 누리는 자체 런타임 로직를 포함하는 개별 체인입니다. 패리체인은 높은 수준의 유연성과 커스텀을 허용하지만 패러체인을 만들 떄 더 많은 노력이 필요합니다. + +Polkadot mainnet에는 스마트 컨트랙트 플랫폼 역할을 하는 하나 이상의 패러체인이 있습니다. 스마트 컨트랙트는 단일 체인에만 존재하며 복잡성이 제한된 실행 프로그램입니다. 스마트 컨트랙트는 단일 체인에 존재하기 때문에 다른 스마트 컨트랙트와 원활한 상호 운용성을 가집니다. 그러나 호스트 체인의 내재된 특성에 의해 항상 제한적입니다. + +어플리케이션의 디자인과 기능에 대해서 많은 부분을 제어해야 할 필요가 있는 경우 패러체인을 선택하는 것이 더 낫습니다. 스마트 컨트랙트는 나중에 제대로 된 패러체인으로 바뀌기 전에 테스트 용도로 사용할 수 있는것에 대해서 염두에 두세요. 스마트 컨트랙트 플랫폼에는 일반적으로 이터레이션(iteration)을 수월하게 만드는 IDE와 같은 편리한 도구가 포함될 것입니다. 패러체인을 만들기 위한 모든 작업을 시작하기 전에 유저의 관심을 측정하기 위해 스마트 계약 MVP를 만들 수 있습니다. + +패러체인은 처음부터 체인의 통화 시스템을 구축 할 수있는 공간을 제작자에게 줍니다. 복잡한 논리를 스마트 컨트랙트 플랫폼 보다 좀 더 간결하고 효율적으로 실행할 수 있게 합니다. 또한 패러체인은 거버넌스의 형태로 더 많은 것들을 제공하며 지금같은 하드포크 프로세스보다 덜 논쟁적인 방식으로 완전한 업그레이드를 할 수 있습니다. + +패러체인에서 할 수 있는 기능들의 몇가지 예시를 말하자면, + +- 수수료 구조 커스텀 (예를 들어 트랜잭션에 대해 고정 수수료를 내거나 바이트 별로 수수료를 낼 수 있게 하는것) +- 자체 토큰을 위한 커스텀 인플레이션 정책 (Custom inflation policy for the native token) +- 스테이트 함수의 변화를 통해 자금을 모금하는 것 (Treasury to be funded through transitions in your state function) +- 온체인 자금을 분배하는 역할을 가진 DAO를 관리할 수 있는 거버넌스 매커니즘 + +![build 1](../../../img/build-1.png) + +패러체인은 스마트 컨트랙트로 실행하기에는 너무 비싸서 하지 못하는 복잡한 런타임을 구성 할 수있는 가능성을 열었습니다. 비교하자면 패러체인은 Gas 계량 시스템을 완전히 갖추고 있지 않으며 스마트 컨트랙트에선 하지 못하는 무한 루프때문에 생기는 버그에 잠재적으로 취약 할 수 있습니다. + +또한 패러체인과 스마트 컨트랙트를 결합하여 사용할 수도 있습니다. 루프가 필요한 특정 로직이 있고 제거 할 수 없다면 내장된 parachain 런타임을 사용하여 모든 복잡한 로직을 처리하고 스마트 컨트랙트는 이터레이션을 호출하는 방법을 쓰면 됩니다. + +대부분의 경우 어플리케이션이 패러체인을 사용하는 방법이나 다른 방법이 (또는 둘의 하이브리드)에 더 잘 어울리는 것을 이미 알았을 것입니다. 그러나 정보를 요약하기 위해 간단한 요약본이 필요할 경우 다음 비교차트를 치트시트로 사용할 수 있습니다. : + +![build 2](../../../img/build-2.png) + +이 가이드는 이제 애플리케이션을 만들기 위해 스마트 컨트랙트를 사용하기로 결정했는지 또는 parachain을 사용할건지에 따라 두 섹션으로 나뉩니다. 두 섹션을 모두 읽으셔도 되고 아니면 해당되는 섹션만 읽어도 됩니다. + +- [I want to build a parachain](#so-you-want-to-build-a-parachain) +- [I want to build a smart contract](#so-you-want-to-build-a-smart-contract) + +## parachain을 만들길 원한다면 + +이제 parachain을 구축하는 것이 새 프로젝트에 적합한 방법이라는 결론을 얻었으므로 다음 단계는 사용할 프레임 워크를 결정하는 것입니다. 현재로는 Substrate가 패러체인 개발을 위한 유일한 프레임워크 입니다. + +앞으로 C++, Rust, Go 및 JS를 통해 다양한 언어로 많은 Polkadot 런타임 [구현체](../learn/implementations.md)가 생길 겁니다. + +### Substrate로 시작하기 + +위에서 언급했듯이 Substrate는 Polkadot 자체가 만들어지는 기본 프레임워크 입니다. 블록체인을 도입하려는 사람들을 위한 툴셋이며 체인 구성에 필요한 빌딩 블록을 제공합니다. Substrate에는 더 복잡한 체인 논리를 작성할 수있는 모듈식 플러그 인 라이브러리(library of modular plug-in)가 포함되어 있습니다. + +Parity Technologies가 만들고 유지 관리하는 온라인 리소스 인 Substrate 개발 Hub에 가서 살펴보는 것이 Substrate를 시작하는 가장 좋은 방법입니다. + +> Substrate 개발자 허브-> [**여길 클릭해보세요.**](https://docs.substrate.dev) + +일반적인 패턴에 익숙해지기 위해 개발자 허브를 뒤져보는 것이 좋습니다. 확실히 이해를 한 후에는 Substratekitties 워크샵을 통해서 스스로에게 도전해보고 TCR Dappchain 튜토리얼로 넘어가서 진행하면 됩니다. + +###parachain을 만드는 방법 + +Substrate로 체인 로직을 만든 후에는 @(Wasm)실행 파일로 컴파일 할 수 있습니다. 이 Wasm 코드 Blob은 만들어진 parachain의 전체 스테이트 전이 함수를 포함합니다. + +Polkadot 릴레이 체인의 밸리데이터는 이 Wasm BLOB를 사용하여 만들어진 parachain의 모든 스테이트 전이를 확인합니다. + +Polkadot 밸리데이터 가 parachain의 최근 스테이트 전이를 최신상태로 유지하기 위해서 필요한 인프라가 있습니다. 위에서 설명한 작업은 parachain의 검사기(collator) 노드에 의해 수행됩니다. + +Substrate에는 자체 네트워킹 레이어가 내장되어 있지만 Polkadot-호환 검사기(collator) 노드는 네트워킹 레이어가 지금 당장은 없습니다. + +이를 위해 Parity Technologies는 Substrate에 대한 확장기능인 Cumulus를 개발하여 Substrate로 만들어진 체인을 Polkadot에 연결할 준비가 된 parachain으로 쉽게 전환 할 수있게합니다. + +#### 뭉게구름 (Cumulus) + +[Cumulus](./cumulus.md)는 Substrate의 확장기능이며 Polkadot와 호환되는 Substrate 런타임을 만드는 것이 목표입니다. + +Polkadot에 연결하기 위해 모든 parachain이 구현해야하는 아래항목들이 포함된 네트워크 호환 오버헤드(network compatibility overhead)를 다룹니다. + +- 인터체인 메시지 전달 (Interchain message passing) +- 특별 검사기 노드 셋업 (Out-of-the-box Collator node setup) +- 릴레이 체인의 내장 라이트 클라이언트 (An embedded light client of the relay chain) +- Polkdat 블록 출처 호환 (Polkadot block authorship compatibility) +- Cumulus를 Substrate 체인에 통합하면 최소한의 수정으로 Polkadot에서 작업 할 수있는 parachain으로 이식 할 수 있습니다. crate를 불러와서 한 줄을 추가하는 것과 같은 작은 작업으로도 가능합니다. + +Polkadot의 공동 창업자인 Rob Habermeier가 최근 EthCC에서 Cumulus의 최근 개발상황에 대해서 말했습니다. 아래에서 비디오를 보실 수 있습니다. + +[![img](http://img.youtube.com/vi/thgtXq5YMOo/0.jpg)](https://www.youtube.com/watch?v=thgtXq5YMOo) + +### Polkadot에 parachain을 포함시키는 방법 + +Parachain을 Polkadot 네트워크에 포함 시키려면 Parachain 슬롯을 확보해야합니다. + +Parachain 슬롯은 공개 입찰로 판매되며, 그 메커니즘은 위키의 [parachain auction](../learn/auction.md) 페이지에서 확인할 수 있습니다. + +## 스마트 컨트랙트를 만들기를 원할 경우 + +The Polkadot relay chain itself will not support smart contracts but +since Polkadot is a network of many heterogeneous blockchains, there +will be parachains that do. + +Polkadot 릴레이 체인 자체는 스마트 컨트랙트를 지원하지 않을 것입니다. +그러나 Polkadot는 여러 다른 종류의 블록체인의 네트워크이므로 parachain이 스마트 컨트랙트를 지원 할 것입니다. + +이미 Parity Technologies는 스마트 컨트랙트 기능을 포함하길 원하는 parachain을 위해 즉시 사용 가능한 솔루션의 기초 작업을 해놓았습니다. +코어 SRML의 Substrate [contract](https://github.com/paritytech/substrate/tree/master/srml/contract) 모듈은 Wasm으로 컴파일 된 스마트 컨트랙트을 지원합니다. + +Wasm으로 컴파일되는 스마트 컨트랙트를 개발하기 위해서는 적절한 언어가 필요합니다. 이를 위해 Parity는 [잉크](#ink)라는 DSL(Domain Specific Language)을 개발하고 있습니다. + +[Edgeware](#edgeware)는 스마트 컨트랙트를 지원하는 Polkadot parachain이 될 의사가 있다고 발표한 프로젝트 입니다. +생태계가 성숙함에 따라 더 많은 블록체인들이 스마트 컨트랙트가 가능한 Parachain으로 될 확률이 높습니다. + +Polkadot은 또한 브릿지를 통해 Ethereum 및 Tezos와 같은 기존 스마트 계약 플랫폼과 호환 될 것입니다. +즉, 오늘 이런 플랫폼에서 개발 된 작업조차도 향후 Polkadot에서 실행할 수 있습니다. + +### Edgeware + +Edgeware는 Polkadot을 위해 계획된 parachain이고 스마트 컨트랙트 기능도 작동 할 것입니다. 거버넌스 및 토큰 배포와 관련된 다른 흥미로운 혁신과 함께 스마트 컨트랙트 기능이 활성화 된 Polkadot 메인넷에 연결되는 최초의 parachain이 될 것입니다. [웹 사이트](https://edgewa.re)에서 프로젝트의 최신 정보를 얻을 수 있습니다. + +### Ink + +[잉크] (https://github.com/paritytech/ink)는 Rust로 만들어졌으며 스마트 컨트랙트 개발을 위한 새로운 DSL(Domain specific language)이고 Wasm 코드로 컴파일 됩니다. README에 쓰여진 것 처럼, 아직 실험 단계에 있으며 계획된 많은 기능이 빠져 있지만 지금 스마트 컨트랙트를 작정 할 수 있습니다. + +관심있는 개발자의 경우 이미 만들어진 [예제]((https://github.com/paritytech/ink/tree/master/examples)를 공부해보고 Ink를 사용하여 스마트 컨트랙트 개발을 시작할 수 있습니다. 이 예제들은 스마트 컨트랙트 parachain에 배포 할 수 있는 더 복잡한 로직을 작성하는것을 도와주는 가이드로 사용할 수 있습니다. + +WasmVM 기반이며 Substrate체인과 호환되는 잉크!는 새로운 스마트 컨트랙트 스택을 위한 많은 기초작업을 진행했습니다. + +Substrate에는 스마트 컨트랙트 체인에 필요한 핵심 로직을 포함하는 컨트랙트 모듈이 포함됩니다. 이 라인을 따라, 잉크!는 Rust로 작성된 스마트 컨트랙트 언어가 될 것입니다. 기존의 Rust 툴링 과 지원을 받을 수 있다는 이점이 있고 Wasm로 컴파일 할 것입니다. + +## 스마트 컨트랙트 배포하기 + +스마트 컨트랙트는 단순하게 말하자면 체인의 주소에 있는 코드이고 외부 액터가 호출 할 수 있습니다. 핵심 부분은 누군가가 실행을 시작하기 전에 실제로 코드를 체인에 두어야한다는 것입니다! + +사용할 어떤 특정 parachain인지에 따라서 체인에 스마트 컨트랙트를 배포하는 것은 약간 다를 수 있지만 대개 장부에 스마트 컨트랙트를 작성하는 특별 트랜잭션이 전송됩니다. 스마트 컨트랙트가 소비하는 초기화 로직 및 스토리지에 대한 관련 요금을 지불해야 할 것입니다. + +## 스마트 컨트랙에 수수료 지불하기 + +각 플랫폼마다 스마트 컨트랙트 스테이트를 유지하는 다른 지불 방법이 있습니다. + +스마트 컨트랙트에 대해 지불하는 다양한 방식은 다음과 같습니다. + +- 각 트랜잭션 배포와 관련된 트랜잭션 수수료. +- 플랫폼의 사용을 위해 체인 엔티티를 정기적으로 지불하는 구독 모델. +- 플랫폼을 사용하기 위해 자체 토큰의 일정량을 보유해야하는 액세스 토큰 모델 (EOS도 비슷한 모델이 있습니다). +보관료. +- 무료 평가판 또는 개발자 프로모션. +- 대부분의 스마트 컨트랙트 플랫폼은 사용자가 수행 할 수있는 작업의 수를 제한하기 위해 가스 형태를 사용합니다. 사용자는 가스 요금을 먼저 지불해야하며 사용하지 않은 것에 대해서는 환불됩니다. + +가스 사용량이 합리적인 범위 내에서 유지되도록 스마트 컨트랙트의 저장장치와 복잡성을 고려해야합니다. 저장소는 사용하는 스마트 컨트랙트 플랫폼에 따라 비용이 많이 들 수 있으므로 가능한 한 많은 데이터를 체인에서 분리해야합니다. IPFS 또는 Storj를 사용하여 데이터를 보관하고 체인에있는 컨텐츠 주소만 체인에 저장하는 것을 고려할 수 있습니다. + +### 여전히 초기단계예요. + +Polkadot의 스마트 컨트랙트의 경우 아직 매우 이른 때이고 개발은 이제서야 안정화되고 있습니다. 우리는 최신 정보와 함께 위키를 유지하고 개발자들이 프로젝트에 대해 빨리 파악 할 수 있도록 컨텐츠를 적극적으로 제작하고 있습니다. 또한 다음 링크를 통해 최신 정보를 알아야 합니다. + +- [Edgeware](https://edgewa.re). +- [ink!](https://github.com/paritytech/ink). (Wiki 탭에서 내용을 확인하세요.) +- [Substrate contracts module](https://github.com/paritytech/substrate). + +## 결론 (Conclusion) + +이 가이드는 멘탈 모델을 제시하고 지금 프로젝트를 parachain로 할 것인지 스마트 컨트랙트로 할 것인지 결정하고 시작하는 데 도움이 되는 필수 리소스를 보여줍니다. 툴링이 여전히 발전하는 중이라도 빨리 시작하는 것의 장점은 프로젝트에 익숙해진다는 것과 앞서서 출발 하는 것이기 때문에 정말 새로운 것을 만들 수 있고 혁신 할 수 있습니다. + +If you have interesting ideas for parachains or smart contracts on Polkadot feel free to drop in to the [Polkadot Watercooler](https://riot.im/app/#/room/#polkadot-watercooler:matrix.org) to talk about them. Developers may be interested in joining the [Polkadot Beginners Lounge](https://riot.im/app/#/room/#polkadotnoobs:matrix.org) or [Substrate Technical](https://riot.im/app/#/room/#substrate-technical:matrix.org) to ask their questions. As always, keep up to date with Polkadot by following the [social channels](https://wiki.polkadot.network/en/latest/community/). Good luck! diff --git a/docs/polkadot/build/hackathon_KR.md b/docs/polkadot/build/hackathon_KR.md index 38535f6c..58a0d147 100644 --- a/docs/polkadot/build/hackathon_KR.md +++ b/docs/polkadot/build/hackathon_KR.md @@ -11,23 +11,25 @@ Web3 Foundation의 목표 중 하나인 [Web3 기술 스택](http://wiki.web3.fo - New governance modules with different styles of voting & democracy - Upgrade the TCR module - IPFS integration -- Decentralized identity solutions -- Oracle module +- 분산화된 신원 인증 솔루션 (Decentralized identity solutions) +- 오라클 모듈 (Oracle module) - 제네럴 스테이트 체널/플라즈마 체인의 구현 (Implement Generalized State Channel/Plasma Chain) - DeX (Decentralized Exchange) - 밸리데이터 퍼포먼스 모니터링 툴 (Tools for monitoring validator performance) - dApps across different parachains -## Why you should host a hackathon? +## 왜 해커톤을 해야만 할까요? - Love to deliver the vision of Web3 - Learn the bleeding-edge technology -- Believe the Web3 technology stack is suitable for developers to build their applications -- Like to make connections +- 최신 기술을 배우기 위해서 +- 개발자들이 어플리케이션을 만들기 위해 Web3 기술 스택이 알맞다는 것을 믿으니까 +- 사람들과 만나는 것을 좋아하니까 ## 워크샵과 해커톤은 어떻게 다른가요? -Hackathon is aimed at participants who want to deliver their prototype and demonstrate their ideas to reality in a short period (few hours - one day). Workshops are more for getting developers familiar with the tooling and understanding more about what are the resources currently available and how they can make use of it. + +해커톤은 짧은 시간 (몇 시간 ~ 하루) 동안 프로토타입을 보여주고 아이디어를 현실로 구현하기를 원하는 참가자를 대상으로 합니다. 워크샵은 개발자가 현재 사용할 수있는 리소스가 무엇인지, 리소스를 사용하는 방법에 대해 툴링(tooling)하고 이해하는 것에 익숙해 지도록 합니다. ## 어떻게 당신의 도시에서 해커톤을 열 수 있나요? @@ -38,9 +40,9 @@ Hackathon is aimed at participants who want to deliver their prototype and demon ## 어떻게 당신을 도와드릴 수 있을까요? -- Provide technical resources/materials. -- Find a venue. -- Ensure the hackathon run smoothly. +- 기술적인 리소스나 자료들을 제공하고. +- 장소를 찾아보고. +- 원활한 해커톤 진행을 할 수 있도록 합니다. ## 앞으로 다가올 해커톤 이벤트 @@ -56,4 +58,4 @@ Coming soon. ## Support / Contact -If you have any questions regarding organizing a hackathon, please free feel to contact us by [email](mailto:events@web3.foundation) or ask us via [Riot](https://riot.im/app/#/room/#polkadot-watercooler:matrix.org) chat. +해커톤을 여는데 질문이 있으시다면 [이메일]((mailto:events@web3.foundation))이나 [Riot](https://riot.im/app/#/room/#polkadot-watercooler:matrix.org)으로 연락해 주세요. diff --git a/docs/polkadot/build/pdk_KR.md b/docs/polkadot/build/pdk_KR.md new file mode 100644 index 00000000..8cb4336d --- /dev/null +++ b/docs/polkadot/build/pdk_KR.md @@ -0,0 +1,39 @@ +# Parachain Development Kits (PDKs) + +Parachain development kits (PDKs) are a set of tools that make it easy for developers to create Polkadot compatible [parachains](../learn/parachains.md). + +## Why create a parachain? + +Before diving into what a PDK is and how it would be used, let's revisit _why_ a developer would want to create a parachain and connect it to Polkadot. + +A parachain has two major value adds that make it a desirable choice for a developer over creating a standalone chain: + +- _Shared security_ - removes the necessity of bootstrapping a chain's own validator set. +- _Interchain communication_ - allows parachains to interoperate with each other through the ICMP protocol. + +Parachains can [lease the security](../learn/security.md) of the Polkadot network by bonding [DOTs](../learn/DOT.md) for a parachain slot. This means that the social costs of building a community around your project and convincing validators to participate in your network security are reduced. It is anticipated that Polkadot will have strong security, and decentralized application projects wishing to benefit from this security would want to become a parachain. For more information on the mechanic of leasing a parachain slot through a candle auction see [here](../learn/auction.md). + +Any decentralized application or chain that wants to enable trustless messaging to other parachains already connected to Polkadot would want to become a parachain. Interoperability between sovereign chains involves certain constraints and complex protocols to enable across a wide breadth of chains. With Polkadot, you will get this feature out of the box if your build your application as a parachain. The [ICMP protocol](../learn/interchain.md) will allow any parachains to interoperate by passing messages between them. Furthermore, as bridges to other chains are launched (such as those to Bitcoin or Ethereum) the parachains will be able to operate with these as well. + +## What is a PDK? + +As mentioned, a PDK is a set of tools that allows developers to easily create a parachain. In practice this means that the PDK will consist of a couple key components: + +- _State transition function_ - a way for your application to move from one state to another state. +- _Collator node_ - a type of peer-to-peer node in the Polkadot network with certain responsibilities in regard to parachains. + +The state transition function (STF) can be any abstract way for an application to go from one state to another state. The only constraint that Polkadot places on this STF is that it must be easily verifiable -- usually though what we call a _witness_ or _proof_. It must be so because the relay chain validators will need to check that each state it receives from the collator node is correct without actually running through the entire computation. Some examples of these proofs include the Proof-of-Validity blocks or zk-SNARKs which require less computational resources to verify than they do to generate. The verification asymmetry in proof generation of the STF is one of the integral insights that allows Polkadot to scale while keeping high security guarantees. + +A collator node is one of the types of network maintainers in the Polkadot protocol. They are responsible for **keeping availability** of the state of the parachain and the new states returned from iteration of the state transition function. They must remain online in order to keep track of the state and also of the ICMP messages that it will route between itself and other parachains. Collator nodes are responsible for passing the succinct proofs to the relay chain validators, and tracking the latest blocks from the relay chain. In essence, a collator node also acts as a light client for the Polkadot relay chain. For more on collator nodes see [here](../node/collator.md). + +## What kind of PDKs exist? + +Currently the only PDK is Parity [Substrate](https://github.com/paritytech/substrate) and [Cumulus](https://github.com/paritytech/cumulus). Substrate is a blockchain framework that provides the basic building blocks of a blockchain (things like the networking layer, consensus, a Wasm interpreter) and provides an intuitive way to construct your runtime. Substrate is made to ease the process of creating a new chain, but it does not provide support for Polkadot compatibility directly. For this reason, Cumulus, an added library will contain all of the Polkadot compatibility glue code. Cumulus is still in development, but the idea is that it should be simple to take a Substrate chain and add the parachain code by importing the crates and adding a single line of code. + +Substrate and Cumulus provide a PDK from the abstraction of the blockchain format, but it is not necessary that a parachain even needs to be a blockchain. For example, a parachain just needs to satisfy the two constraints listed above: _state transition function_ and _collator node_. Everything else is up to the implementer of the PDK. + +One interesting idea for a PDK that would be nice to see is to have a [roll_up](https://ethresear.ch/t/roll-up-roll-back-snark-side-chain-17000-tps/3675) kit that allowed developers to create snark-based parachains. If we review the roll_up write-up we see that the system uses two roles: users that update **state** and an operator that **aggregates the state updates** into a single on-chain update. It should be straight forward to see how we can translate this to the parachain terms. The state transition function for a roll_up-like parachain would be updating the state (in practice, most likely a merkle tree which would be easily verifiable) from the user inputs. The operator would act as the collator node which would aggregate the state and create the zk-SNARK proof which it would hand to the relay chain validators for verification. + +## Build a PDK + +If you or your team are interested in developing a PDK feel free to open an issue on the W3F collaboration repository for comment. There may be grants available for this type of work. diff --git a/docs/polkadot/build/smart-contracts.md b/docs/polkadot/build/smart-contracts.md index 5a3372e7..7d8161fa 100644 --- a/docs/polkadot/build/smart-contracts.md +++ b/docs/polkadot/build/smart-contracts.md @@ -2,10 +2,14 @@ The Polkadot relay chain will not support smart contracts natively. However, parachains on Polkadot will support smart contracts. There are already announced projects such as [Edgeware](https://edgewa.re), and thanks to the Substrate built-in [contract module](https://crates.parity.io/srml_contract/index.html), it is likely that more parachains will support this feature. +Polkadot 릴레이 체인은 스마트 계약을 기본적으로 지원하지 않습니다. 그러나 Polkadot의 낙하산은 현명한 계약을 지원합니다. 이미 [Edgeware]와 같은 기탁 된 프로젝트와 기판 내장 [계약 모듈] 덕분에 더 많은 낙하산이이 기능을 지원할 가능성이 있습니다. + ## Resources Here are the list of current resources available to developer who want to get started writing smart contracts to deploy on parachains based on Substrate. +Substrate 기반의 낙하산에 전개 할 스마트 계약서 작성을 시작하려는 개발자가 현재 사용할 수있는 자원 목록입니다. + - [ink!](https://github.com/paritytech/ink) - Parity's ink to write smart contracts. - [Deploying your first contract](https://github.com/paritytech/ink/wiki/Deploying-Your-First-Contract) - Guide to deploy the provided `flipper` contract. - [Writing your first contract](https://github.com/paritytech/ink/wiki/Writing-Your-First-Contract) - Guide to how one would write the `flipper` contract. @@ -15,6 +19,8 @@ Here are the list of current resources available to developer who want to get st Collected below are some community examples of smart contracts in `ink!`. Are you working on a smart contract example? Ask us to add it to this page! +아래에 수집 된 것은 스마트 계약의 커뮤니티 예제입니다. 똑똑한 계약의 예를 다루고 있습니까? 이 페이지에 추가하도록 요청하십시오! + - [Ownable](https://github.com/JesseAbram/foRust/) - Port of the OpenZeppelin `Ownable` contract. ## What is the difference between developing a smart contract versus a parachain? @@ -23,17 +29,29 @@ Collected below are some community examples of smart contracts in `ink!`. Are yo When you write a smart contract you are creating the instructions which will be deployed and associated to a specific chain address. +현명한 계약서를 작성할 때 특정 체인 주소에 배포되고 연관 될 지침을 작성합니다. + + In comparison, a runtime module is the entire logic of a chain's state transitions (what's called a state transition function). +비교해 보면, 런타임 모듈은 체인의 상태 전이 논리 (상태 전이 함수라고하는)의 전체 논리입니다. + Smart contracts must consciously implement upgradeability while parachains will have the ability to swap out their code entirely through a root command or via the governance module. +현명한 계약은 업그레이드 가능성을 의식적으로 구현해야하며 parachains는 루트 명령이나 관리 모듈을 통해 코드를 완전히 교체 할 수 있어야합니다 + When you build a smart contract, it will be eventually be deployed to a target chain with its own environment. Parachains allow the developer to declare the environment of their own chain, even allowing others to write smart contracts for it. +현명한 계약을 맺으면 결국 자체 환경이있는 대상 체인에 배포됩니다. Parachains를 사용하면 개발자가 자신의 체인 환경을 선언 할 수 있으며 다른 사람들이 스마트 계약을 작성할 수 있습니다. + ### Gas Fees -Smart contracts must find a way to limit their own execution, or else full nodes are vulnerable to DOS attacks. An infinite loop in a smart contract, for example, could consume the computational resources of an entire chain, preventing others from using it. The [halting problem](https://en.wikipedia.org/wiki/Halting_problem) shows that with a powerful enough language, it is impossible to know ahead of time whether or not a program will ever cease execution. Some platforms, such as Bitcoin, get around this constraint by providing a very restricted scripting language. Others, such as Ethereum, "charge" the smart contract "gas" for the rights to execute their code. If a smart contract does get into a state where execution will never halt, it eventually runs out of gas, ceases execution, and any state transition that would have been made by the smart contract is rolled back. +Smart contracts must find a way to limit their own execution, or else full nodes are vulnerable to DOS attacks. An infinite loop in a smart contract, for example, could consume the computational resources of an entire chain, preventing others from using it. The [halting problem](https://en.wikipedia.org/wiki/Halting_problem) shows that with a powerful enough language, it is impossible to know ahead of time whether or not a program will ever cease execution. Some platforms, such as Bitcoin, get around this constraint by providing a very restricted scripting language. Others, such as Ethereum, "charge" the smart contract "gas" for the rights to execute their code. If a smart contract does get into a state where execution will never halt, it eventually runs out of gas, ceases execution, and any state transition that would have been made by the smart contract is rolled back. + +스마트 계약은 자체 실행을 제한하는 방법을 찾아야합니다. 그렇지 않으면 전체 노드가 DOS 공격에 취약합니다. 예를 들어 똑똑한 계약의 무한 루프는 체인 전체의 계산 자원을 소비하여 다른 사람이 사용하지 못하도록 할 수 있습니다. [중단 문제]는 강력한 강력한 언어를 사용하면 프로그램 실행을 중단할지 여부를 미리 알 수 없습니다. Bitcoin과 같은 일부 플랫폼은 매우 제한된 스크립팅 언어를 제공함으로써 이러한 제약을 극복합니다. 에테 리엄 (Ethereum)과 같은 다른 사람들은 자신의 코드를 실행할 수있는 권리를 "똑똑히"청구한다. 똑똑한 계약이 실행이 중단되지 않는 상태가되면 결국에는 가스가 없어져 실행이 중단되고 스마트 계약에 의한 상태 전환이 롤백됩니다. Parachains can implement arbitrarily powerful programming languages and also contain no notion of gas for their own native logic. This means that some functionality is easier to implement for the developer, but it also means there are some constructs, such as a loop without a terminating condition, which should _never_ be implemented. Leaving certain logic, such as complex loops which could possibly run indefinitely, to a non-smart contract layer, or even trying to eliminate it entirely, will often be a wiser choice. +Parachains는 임의로 강력한 프로그래밍 언어를 구현할 수 있으며 자체 고유 논리에 대한 가스 개념을 포함하지 않습니다. 이것은 일부 기능을 개발자가 쉽게 구현할 수 있음을 의미하지만, 구현하지 않아야하는 종료 조건이없는 루프와 같은 일부 구성이 있음을 의미합니다. 무한히 실행될 수있는 복잡한 루프와 같은 특정 논리를 비 스마트 계약 계층에 남겨 두거나 심지어 완전히 제거하려는 경우 현명한 선택이 될 수 있습니다. ## Resources diff --git "a/docs/polkadot/learn/9\353\262\210\354\247\270\353\241\234 phragmen_KR.md" "b/docs/polkadot/learn/9\353\262\210\354\247\270\353\241\234 phragmen_KR.md" index d435c1b4..6fdaa29b 100644 --- "a/docs/polkadot/learn/9\353\262\210\354\247\270\353\241\234 phragmen_KR.md" +++ "b/docs/polkadot/learn/9\353\262\210\354\247\270\353\241\234 phragmen_KR.md" @@ -4,10 +4,16 @@ The sequential Phragmen method is a multi-winner election method introduce by Edvard Phragmen in the 1890s. +순차적인(Sequential) Phragmen 메소드는 1890 년대 Edvard Phragmen이 소개 한 다중 수상자 선거 방식입니다. + > The problem that Phragm ́en’s methods try to solve is that of electing a set of a given numbers of persons from a larger set of candidates. Phragm ́en discussed this in the context of a parliamentary election in a multi-member constituency; the same problem can, of course, also occur in local elections, but also in many other situations such as electing a board or a committee in an organization. +Phragm en의 방법이 해결하려고하는 문제는 더 많은 후보자 중에서 주어진 수의 사람을 선출하는 것입니다. Phragm은 다원 선거구에서 의회 선거의 맥락에서이를 논의했다. 물론 같은 문제는 지방 선거에서도 발생할 수 있지만 조직의 이사회 나위원회 선출과 같은 다른 많은 상황에서도 발생할 수 있습니다. + Phragmen's sequential method is used in the NPoS algorithm of Polkadot to elect validators based on the weight (amount staked to them by nominators). It also handles equalization of weights among validators after each round. Equalization happens in order to spread nominated DOTs among the wider set of validators and enforce stronger decentralization properties to the network. +Phragmen의 순차적 방법은 Polkadot의 NPoS 알고리즘에서 가중치 (추천자가 보유한 금액)를 기준으로 유효성 검사기를 선택하는 데 사용됩니다. 또한 각 라운드 후에 유효성 검사기 간의 가중치 균등화를 처리합니다. 균등화는 지명 된 DOT를 광범위한 유효성 검사기 집합으로 전파하고 네트워크에 더 강력한 분산 특성을 적용하기 위해 발생합니다 + ## What does it mean for node operators? _Updated as of Alexander v0.4.3_ @@ -16,14 +22,20 @@ _Updated as of Alexander v0.4.3_ Currently the `equalise` flag is set to false so equalization will not take place. As a nominator your nomination will stay with the validator that you nominate to. +현재 'equalise` 플래그는 false로 설정되어 등화가 발생하지 않습니다. 추천인으로서 귀하의 지명은 귀하가 지명 한 유효성 확인 기와 함께있을 것입니다. + ### For validators Currently the `equalise` flag is set to false so equalization will not take place. As a validator the nominations you have received will stay with you. +현재 'equalise` 플래그는 false로 설정되어 등화가 발생하지 않습니다. 유효성 검사기로서 귀하가받은 후보자는 귀하와 함께있을 것입니다. + ## Details The implementation of the Phragmen method can be found in the Substrate `srml-staking` crate. It is used in the selection of validators from the available set based on their role preferences (validator or nominator). The election will run for a number of rounds which is equal to that amount of current validators. +Phragmen 방법의 구현은 Substrate`srml-staking` crate에서 찾을 수 있습니다. 역할 기본 설정 (유효성 검사 자나 추천자)을 기반으로 사용 가능한 세트에서 유효성 검사기를 선택하는 데 사용됩니다. 선거는 현재 유효성 검사기와 동등한 수의 라운드 동안 진행됩니다. + ## External Resources - [W3F Research Page on Sequential Phragmen Method](https://research.web3.foundation/en/latest/polkadot/NPoS/4.%20Sequential%20Phragm%C3%A9n%E2%80%99s%20method./) - The formal adaptation of the Phragmen method as applied to Polkadot validators. diff --git a/mkdocs_KR.yml b/mkdocs_KR.yml deleted file mode 100644 index 7c91f5bf..00000000 --- a/mkdocs_KR.yml +++ /dev/null @@ -1,112 +0,0 @@ -site_name: Polkadot Wiki in Korean -site_description: Information on Polkadot -site_author: 'Web3 Foundation' -site_url: https://wiki.polkadot.network - -nav: - - Home: index_KR.md - - Build: - - Home: polkadot/build/index_KR.md - - Building on Polkadot: polkadot/build/build-with-polkadot_KR.md - - Cumulus: polkadot/build/cumulus_KR.md - - Deploy Parachains: polkadot/build/deploy-parachains_KR.md - - Examples: polkadot/build/examples/index_KR.md - - Extrinsic Format: polkadot/build/extrinsic-format_KR.md - - Hackathons: polkadot/build/hackathon_KR.md - - Networks: polkadot/build/networks_KR.md - - Parachain Development Kits: polkadot/build/pdk_KR.md - - Rust Style Guide: polkadot/build/rust-style-guide_KR.md - - Smart Contracts: polkadot/build/smart-contracts_KR.md - - Tools: polkadot/build/tools/index_KR.md - - Learn: - - Home: polkadot/learn/index_KR.md - - Bridges: polkadot/learn/bridges/ - - Comparisons: - - Cosmos: polkadot/learn/comparisons/cosmos_KR.md - - Ethereum: polkadot/learn/comparisons_KR.md - - Tezos: polkadot/learn/comparisons_KR.md - - Consensus: polkadot/learn/consensus_KR.md - - Cryptography: polkadot/learn/cryptography_KR.md - - DOT: polkadot/learn/DOT_KR.md - - FAQ: polkadot/learn/faq_KR.md - - Governance: polkadot/learn/governance_KR.md - - Glossary: glossary_KR.md - - GRANDPA: polkadot/learn/consensus_KR.md - - ICMP: polkadot/learn/interchain_KR.md - - Implementations: polkadot/learn/implementations_KR.md - - Keys: polkadot/learn/keys_KR.md - - Phragmen: polkadot/learn/phragmen_KR.md - - Roadmap: polkadot/learn/roadmap_KR.md - - Security: polkadot/learn/security_KR.md - - SPREE: polkadot/learn/spree_KR.md - - Staking: polkadot/learn/staking_KR.md - - Randomness: polkadot/learn/randomness_KR.md - - Relevant Links: polkadot/learn/relevant-links_KR.md - - Parachains: polkadot/learn/parachains_KR.md - - Parachain Slots: polkadot/learn/auction_KR.md - - Polkadot Runtime Environment: polkadot/learn/PRE_KR.md - - Polkadot UI: polkadot/learn/UI_KR.md - - Run the Network: - - Home: polkadot/node/index_KR.md - - Collator: polkadot/node/collator_KR.md - - Nominator: polkadot/node/nominator_KR.md - - Validator: polkadot/node/node-operator_KR.md - - Guides: - - How to nominate: polkadot/node/guides/how-to-nominate_KR.md - - How to validate: polkadot/node/guides/how-to-validate_KR.md - - How to systemd: polkadot/node/guides/how-to-systemd_KR.md - - Governance: polkadot/node/governance/index_KR.md - - Other Languages: - - Chinese: lang/chinese/index.md - - Japanese: lang/japanese.md - - Korean : lang/Korean.md - - News: news_KR.md - -# Configuration for the Material theme -theme: - name: null - custom_dir: 'mkdocs-material/material' - language: 'en' - palette: - primary: 'grey' - accent: 'pink' - font: - text: 'PT Sans' - code: 'Ubuntu Mono' - favicon: 'img/favicon.ico' - logo: 'img/logo.svg' - feature: - tabs: false - -# Extra css for further customization -extra_css: - - 'stylesheets/extra.css' - -extra_javascript: - - https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML - - https://research.web3.foundation/en/latest/mathjax-config.js - -# Repository that houses the source code for this site. This -# is needed to render the nice GH link on the top right. -repo_name: 'w3f/polkadot-wiki' -repo_url: 'https://github.com/w3f/polkadot-wiki' - -# Social links -extra: - social: - - type: 'github' - link: 'https://github.com/paritytech/polkadot' - - type: 'twitter' - link: 'https://twitter.com/polkadotnetwork' - - type: 'medium' - link: 'https://medium.com/@polkadotnetwork' - -markdown_extensions: - - admonition - - codehilite: - guess_lang: false - - toc: - permalink: true - - mdtooltips - - \ No newline at end of file From 6e76ad36ba16edc1e49e3d33b6d48d12ea2e6fdc Mon Sep 17 00:00:00 2001 From: cmcm2222 Date: Wed, 10 Jul 2019 17:45:30 +0900 Subject: [PATCH 4/9] build dir Korean translation finished. --- docs/polkadot/build/build-with-polkadot_KR.md | 110 +++++++++--------- docs/polkadot/build/cumulus_KR.md | 6 +- docs/polkadot/build/deploy-parachains_KR.md | 30 ++--- docs/polkadot/build/dev-roadmap_KR.md | 8 +- docs/polkadot/build/examples/index_KR.md | 18 +-- docs/polkadot/build/extrinsic-format_KR.md | 4 +- docs/polkadot/build/hackathon_KR.md | 4 +- docs/polkadot/build/index_KR.md | 12 +- docs/polkadot/build/networks_KR.md | 38 +++--- docs/polkadot/build/pdk_KR.md | 47 ++++---- docs/polkadot/build/rust-style-guide_KR.md | 8 +- docs/polkadot/build/smart-contracts.md | 58 ++++----- docs/polkadot/build/tools/index_KR.md | 12 +- docs/polkadot/build/tools/subkey_KR.md | 2 +- docs/polkadot/learn/bridges_KR.md | 2 +- docs/polkadot/learn/consensus_KR.md | 2 +- 16 files changed, 171 insertions(+), 190 deletions(-) diff --git a/docs/polkadot/build/build-with-polkadot_KR.md b/docs/polkadot/build/build-with-polkadot_KR.md index cbcaec1d..835cf6d4 100644 --- a/docs/polkadot/build/build-with-polkadot_KR.md +++ b/docs/polkadot/build/build-with-polkadot_KR.md @@ -3,9 +3,9 @@ !!! 알림 이 문서는 다음 블로그 포스트의 최신 버전 입니다.: [Polkadot에 대해서 준비할때 당신이 알아야 할 모든것](https://medium.com/polkadot-network/everything-you-need-to-know-to-prepare-for-polkadot-32d08b929735). -@(Polkadot)은 연결된 모든 패러체인들에 **공유된 보안(Shared security)**을 제공하고 연결된 모든 체인이 [ICMP](../learn/interchain.md)를 통해 **상호 운용(interoperate)** 할 수 있도록 하자 라는 두 가지 목표를 가진 블록체인 프로토콜입니다. Parity Substrate 및 Cumulus와 같은 [PDKs](./ pdk.md)가 등장해서 새로운 체인을 개발하고 런칭하는 데 걸리는 시간이 크게 줄어 들었습니다. 예전엔 새로운 체인을 출시하는 데 몇 년이 걸렸지만 이제 겨우 몇 주 나 몇일밖에 걸리지 않습니다. +@(Polkadot)은 연결된 모든 패러체인들에 **공유된 보안(Shared security)**을 제공하고 연결된 모든 체인이 [ICMP](../learn/interchain.md)를 통해 **상호 운용(interoperate)** 할 수 있도록 하자 라는 두 가지 목표를 가진 블록체인 프로토콜입니다. Parity Substrate 및 Cumulus와 같은 [PDKs](./pdk.md)가 등장해서 새로운 체인을 개발하고 런칭하는 데 걸리는 시간이 크게 줄어 들었습니다. 예전엔 새로운 체인을 출시하는 데 몇 년이 걸렸지만 이제 겨우 몇 주나 몇 일밖에 걸리지 않습니다. -이 가이드는 오늘 Polkadot으로 당신의 비전을 오늘 당장 시작해 볼 수 있도록 안내합니다. 그리고 @(parachain)과 스마트 컨트랙트의 차이점을 설명할 것입니다.(그리고 둘 중 다른 하나가 왜 당신의 어플리케이션에 더 적합한 지 알 수 있습니다.) 현재 사용할 수있는 리소스와 곧 제공 될 리소스를 배치할 것이므로 올해 후반에 런칭 될 Polkadot 메인넷에 당신의 애플리케이션을 만들 수 있습니다. +이 가이드는 오늘 Polkadot으로 당신의 비전을 오늘 당장 시작해 볼 수 있도록 안내합니다. 그리고 @(parachain)과 스마트 컨트랙트의 차이점을 설명할 것입니다.(그리고 둘 중 다른 하나가 왜 당신의 어플리케이션에 더 적합한 지 알 수 있습니다.) 현재 사용할 수있는 리소스와 곧 제공될 리소스를 배치할 것이므로 올해 후반에 런칭 될 폴카닷(Polkadot) 메인넷에 당신의 애플리케이션을 만들 수 있습니다. ## 우리는 지금 어디쯤 있을까요? @@ -16,25 +16,25 @@ - Cumulus: **미완성** - ink!: **프리 알파(Pre-Alpha)** -**알아야 할 것들**: Polkadot은 현재 Alexander testnet의 PoC-4 릴리스를 했습니다. Alexander testnet은 전체 PoC-3 릴리스 사이클을 ​​통해 3 개월 이상 운영했습니다. Polkadot은 Rust에서 JavaScript까지 [다양한 프로그래밍 언어로 구현됩니다]((../learn/implementations.md)). 현재 최신 구현체가 Rust로 구현되어 있고 Substrate 프레임워크를 사용하여 블록 체인을 개발합니다. Substrate는 개발자가 네트워킹 프로토콜, 컨센서스 및 Wasm 인터프리터를 포함하여 기본 레이어을 기반으로 전체 블록 체인을 보다 쉽게 ​​개발할 수있게 해주는 라이브러리입니다. 개발 중인 Substrate의 확장 기능인 Cumulus를 사용하면 모든 Substrate 로 구축된 체인이 Polkadot에 연결되어 패러체인이 될 수 있습니다. Substrate 공개 1.0.0 릴리스에 가까워지고 있고 API를 결정 할 예정입니다. +**알아야 할 것들**: 폴카닷(Polkadot)은 현재 Alexander testnet의 PoC-4 릴리스를 진행했습니다. Alexander testnet은 전체 PoC-3 릴리스 사이클을 ​​통해 3개월 이상 운영 되었습니다. 폴카닷(Polkadot)은 Rust에서 JavaScript까지 [다양한 프로그래밍 언어로 구현됩니다]((../learn/implementations.md)). 현재 최신 구현체가 Rust로 구현되어 있고 서브스트레이트(Substrate) 프레임워크를 사용하여 블록 체인을 개발합니다. 서브스트레이트(Substrate)는 개발자가 네트워킹 프로토콜, 컨센서스 및 Wasm 인터프리터를 포함하여 기본 레이어을 기반으로 전체 블록 체인을 보다 쉽게 ​​개발할 수있게 해주는 라이브러리입니다. 개발 중인 서브스트레이트(Substrate)의 확장 기능인 Cumulus를 사용하면 모든 서브스트레이트(Substrate)로 구축된 체인이 Polkadot에 연결되어 패러체인이 될 수 있습니다. Substrate는 1.0.0릴리스에 가까워지고 있고 API를 결정 할 예정입니다. -Substrate 체인은 SRML의 컨트랙트 런타임 모듈을 포함하여 스마트 컨트랙트를 만들 수 있습니다. 컨트랙트 모듈을 사용하면 Wasm으로 컴파일 된 스마트 컨트랙트를 체인에 배포 할 수 있습니다. 컨트랙트의 배포를 쉽게 하기 위해 Parity는 ink!라는 DSL(Domain Specific Language)를 개발했습니다. +서브스트레이트(Substrate)체인은 SRML의 컨트랙트 런타임 모듈을 포함하여 스마트 컨트랙트를 만들 수 있습니다. 컨트랙트 모듈을 사용하면 Wasm으로 컴파일 된 스마트 컨트랙트를 체인에 배포 할 수 있습니다. 컨트랙트의 배포를 쉽게 하기 위해 Parity는 ink!라는 DSL(Domain Specific Language)를 개발했습니다. -Polkadot는 2019년 말에 mainnet을 런칭 할 예정입니다. 이제 개발 도구들이 생기고 안정화되기 시작했기 때문에 메인넷을 시작하는데 더 나은 때가 없었습니다 . 하지만 기다려주세요! 먼저 코드를 들여다보기 전에, Polkadot를 빌드하려는 개발자가 사용할 수있는 다양한 패러다임이 있다는 것을 이해하고 만들고 싶은 분산형 애플리케이션의 종류에 대해 생각해야 합니다. +폴카닷(Polkadot)은 2019년 말에 mainnet을 런칭 할 예정입니다. 이제 개발 도구들이 생기고 안정화되기 시작했기 때문에 메인넷을 시작하는데 더 좋습니다. 하지만 기다려주세요! 먼저 코드를 들여다보기 전에, Polkadot를 빌드하려는 개발자가 사용할 수있는 다양한 패러다임이 있다는 것을 이해하고 만들고 싶은 분산형 애플리케이션의 종류에 대해 생각해야 합니다. ##패러체인을 만드는 것과 스마트 컨트랙트를 만드는 것의 차이점은 뭔가요? -Polkadot은 두 가지 방법으로 어플리케이션을 배포 할 수 있습니다. 기존의 패러체인에 스마트 컨트랙트를 개발하던지 아니면 당신만의 패러체인을 만드는 것입니다. 이 중 한 방법으로 작업 할 때 트레이드 오프가 있으며 이 섹션을 읽으면 트레이드 오프에 대해서 이해하는 데 도움이 됩니다. +폴카닷(Polkadot)은 두 가지 방법으로 어플리케이션을 배포 할 수 있습니다. 기존의 패러체인에 스마트 컨트랙트를 개발하던지 아니면 당신만의 패러체인을 만드는 것입니다. 이 중 한 방법으로 작업 할 때 트레이드 오프가 있으며 이 섹션을 읽으면 트레이드 오프에 대해서 이해하는 데 도움이 됩니다. -Parachain는 Polkadot 릴레이 체인에서 제공하는 shared security 와 인터체인 메시징의 이점을 누리는 자체 런타임 로직를 포함하는 개별 체인입니다. 패리체인은 높은 수준의 유연성과 커스텀을 허용하지만 패러체인을 만들 떄 더 많은 노력이 필요합니다. +패러체인(Parachain)는 폴카닷(Polkadot) 릴레이 체인에서 제공하는 shared security 와 인터체인 메시징의 이점을 누리는 자체 런타임 로직를 포함하는 개별 체인입니다. 패리체인(parachain)은 높은 수준의 유연성과 커스텀을 허용하지만 패러체인을 만들 떄 더 많은 노력이 필요합니다. -Polkadot mainnet에는 스마트 컨트랙트 플랫폼 역할을 하는 하나 이상의 패러체인이 있습니다. 스마트 컨트랙트는 단일 체인에만 존재하며 복잡성이 제한된 실행 프로그램입니다. 스마트 컨트랙트는 단일 체인에 존재하기 때문에 다른 스마트 컨트랙트와 원활한 상호 운용성을 가집니다. 그러나 호스트 체인의 내재된 특성에 의해 항상 제한적입니다. +폴카닷(Polkadot) mainnet에는 스마트 컨트랙트 플랫폼 역할을 하는 하나 이상의 패러체인(parachain)이 있습니다. 스마트 컨트랙트는 단일 체인에만 존재하며 복잡성이 제한된 실행 프로그램입니다. 스마트 컨트랙트는 단일 체인에 존재하기 때문에 다른 스마트 컨트랙트와 원활한 상호 운용성을 가집니다. 그러나 호스트 체인의 내재된 특성에 의해 항상 제한적입니다. -어플리케이션의 디자인과 기능에 대해서 많은 부분을 제어해야 할 필요가 있는 경우 패러체인을 선택하는 것이 더 낫습니다. 스마트 컨트랙트는 나중에 제대로 된 패러체인으로 바뀌기 전에 테스트 용도로 사용할 수 있는것에 대해서 염두에 두세요. 스마트 컨트랙트 플랫폼에는 일반적으로 이터레이션(iteration)을 수월하게 만드는 IDE와 같은 편리한 도구가 포함될 것입니다. 패러체인을 만들기 위한 모든 작업을 시작하기 전에 유저의 관심을 측정하기 위해 스마트 계약 MVP를 만들 수 있습니다. +어플리케이션의 디자인과 기능에 대해서 많은 부분을 제어해야 할 필요가 있는 경우 패러체인(parachain)을 선택하는 것이 더 낫습니다. 스마트 컨트랙트는 나중에 제대로 된 패러체인(parachain)으로 바뀌기 전에 테스트 용도로 사용할 수 있는것에 대해서 염두에 두세요. 스마트 컨트랙트 플랫폼에는 일반적으로 이터레이션(iteration)을 수월하게 만드는 IDE와 같은 편리한 도구가 포함될 것입니다. 패러체인(parachain)을 만들기 위한 모든 작업을 시작하기 전에 유저의 관심도을 측정하기 위해 스마트 계약 MVP를 만들 수 있습니다. -패러체인은 처음부터 체인의 통화 시스템을 구축 할 수있는 공간을 제작자에게 줍니다. 복잡한 논리를 스마트 컨트랙트 플랫폼 보다 좀 더 간결하고 효율적으로 실행할 수 있게 합니다. 또한 패러체인은 거버넌스의 형태로 더 많은 것들을 제공하며 지금같은 하드포크 프로세스보다 덜 논쟁적인 방식으로 완전한 업그레이드를 할 수 있습니다. +패러체인(parachain)은 처음부터 체인의 통화 시스템을 구축 할 수있는 공간을 제작자에게 줍니다. 복잡한 논리를 스마트 컨트랙트 플랫폼 보다 좀 더 간결하고 효율적으로 실행할 수 있게 합니다. 또한 패러체인(parachain)은 거버넌스의 형태로 더 많은 것들을 제공하며 지금같은 하드포크 프로세스보다 덜 논쟁적인 방식으로 완전한 업그레이드를 할 수 있습니다. -패러체인에서 할 수 있는 기능들의 몇가지 예시를 말하자면, +패러체인(parachain)에서 할 수 있는 기능들의 몇가지 예시를 말하자면, - 수수료 구조 커스텀 (예를 들어 트랜잭션에 대해 고정 수수료를 내거나 바이트 별로 수수료를 낼 수 있게 하는것) - 자체 토큰을 위한 커스텀 인플레이션 정책 (Custom inflation policy for the native token) @@ -43,108 +43,104 @@ Polkadot mainnet에는 스마트 컨트랙트 플랫폼 역할을 하는 하나 ![build 1](../../../img/build-1.png) -패러체인은 스마트 컨트랙트로 실행하기에는 너무 비싸서 하지 못하는 복잡한 런타임을 구성 할 수있는 가능성을 열었습니다. 비교하자면 패러체인은 Gas 계량 시스템을 완전히 갖추고 있지 않으며 스마트 컨트랙트에선 하지 못하는 무한 루프때문에 생기는 버그에 잠재적으로 취약 할 수 있습니다. +패러체인(parachain)은 스마트 컨트랙트로 실행하기에는 너무 비싸서 하지 못하는 복잡한 런타임을 구성 할 수있는 가능성을 열었습니다. 비교하자면 패러체인(parachain)은 Gas 계량 시스템을 완전히 갖추고 있지 않으며 스마트 컨트랙트에선 하지 못하는 무한 루프때문에 생기는 버그에 잠재적으로 취약 할 수 있습니다. -또한 패러체인과 스마트 컨트랙트를 결합하여 사용할 수도 있습니다. 루프가 필요한 특정 로직이 있고 제거 할 수 없다면 내장된 parachain 런타임을 사용하여 모든 복잡한 로직을 처리하고 스마트 컨트랙트는 이터레이션을 호출하는 방법을 쓰면 됩니다. +또한 패러체인(parachain)과 스마트 컨트랙트를 결합하여 사용할 수도 있습니다. 루프가 필요한 특정 로직이 있고 제거 할 수 없다면 내장된 패러체인(parachain) 런타임을 사용하여 모든 복잡한 로직을 처리하고 스마트 컨트랙트는 이터레이션을 호출하는 방법을 쓰면 됩니다. -대부분의 경우 어플리케이션이 패러체인을 사용하는 방법이나 다른 방법이 (또는 둘의 하이브리드)에 더 잘 어울리는 것을 이미 알았을 것입니다. 그러나 정보를 요약하기 위해 간단한 요약본이 필요할 경우 다음 비교차트를 치트시트로 사용할 수 있습니다. : +대부분의 경우 어플리케이션이 패러체인(parachain)을 사용하는 방법이나 다른 방법이 (또는 둘의 하이브리드)에 더 잘 어울리는 것을 이미 알았을 것입니다. 그러나 정보를 요약하기 위해 간단한 요약본이 필요할 경우 다음 비교차트를 치트시트로 사용할 수 있습니다. : ![build 2](../../../img/build-2.png) -이 가이드는 이제 애플리케이션을 만들기 위해 스마트 컨트랙트를 사용하기로 결정했는지 또는 parachain을 사용할건지에 따라 두 섹션으로 나뉩니다. 두 섹션을 모두 읽으셔도 되고 아니면 해당되는 섹션만 읽어도 됩니다. +이 가이드는 이제 애플리케이션을 만들기 위해 스마트 컨트랙트를 사용하기로 결정했는지 또는 패러체인(parachain)을 사용할 건지에 따라 두 섹션으로 나뉩니다. 두 섹션을 모두 읽으셔도 되고 아니면 해당되는 섹션만 읽어도 됩니다. -- [I want to build a parachain](#so-you-want-to-build-a-parachain) -- [I want to build a smart contract](#so-you-want-to-build-a-smart-contract) +- [패러체인(parachain)으로 만들고 싶어요!](#so-you-want-to-build-a-parachain) +- [스마트 컨트랙트로 만들고 싶어요!](#so-you-want-to-build-a-smart-contract) -## parachain을 만들길 원한다면 +## 패러체인(parachain)을 만들길 원한다면 -이제 parachain을 구축하는 것이 새 프로젝트에 적합한 방법이라는 결론을 얻었으므로 다음 단계는 사용할 프레임 워크를 결정하는 것입니다. 현재로는 Substrate가 패러체인 개발을 위한 유일한 프레임워크 입니다. +이제 패러체인(parachain)을 구축하는 것이 새 프로젝트에 적합한 방법이라는 결론을 얻었으므로 다음 단계는 사용할 프레임 워크를 결정하는 것입니다. 현재로는 서브스트레이트(Substrate)가 패러체인 개발을 위한 유일한 프레임워크 입니다. -앞으로 C++, Rust, Go 및 JS를 통해 다양한 언어로 많은 Polkadot 런타임 [구현체](../learn/implementations.md)가 생길 겁니다. +앞으로 C++, Rust, Go 및 JS를 통해 다양한 언어로 많은 [폴카닷(Polkadot) 런타임 구현체](../learn/implementations.md)가 생길 겁니다. -### Substrate로 시작하기 +### 서브스트레이트(Substrate)로 시작하기 -위에서 언급했듯이 Substrate는 Polkadot 자체가 만들어지는 기본 프레임워크 입니다. 블록체인을 도입하려는 사람들을 위한 툴셋이며 체인 구성에 필요한 빌딩 블록을 제공합니다. Substrate에는 더 복잡한 체인 논리를 작성할 수있는 모듈식 플러그 인 라이브러리(library of modular plug-in)가 포함되어 있습니다. +위에서 언급했듯이 서브스트레이트(Substrate)는 폴카닷(Polkado)t 자체가 만들어지는 기본 프레임워크 입니다. 블록체인을 도입하려는 사람들을 위한 툴셋이며 체인 구성에 필요한 빌딩 블록을 제공합니다. 서브스트레이트(Substrate)에는 더 복잡한 체인 논리를 작성할 수있는 모듈식 플러그 인 라이브러리(library of modular plug-in)가 포함되어 있습니다. -Parity Technologies가 만들고 유지 관리하는 온라인 리소스 인 Substrate 개발 Hub에 가서 살펴보는 것이 Substrate를 시작하는 가장 좋은 방법입니다. +Parity Technologies가 만들고 유지 관리하는 온라인 리소스 인 서브스트레이트(Substrate) 개발 Hub에 가서 살펴보는 것이 서브스트레이트(Substrate)를 시작하는 가장 좋은 방법입니다. > Substrate 개발자 허브-> [**여길 클릭해보세요.**](https://docs.substrate.dev) 일반적인 패턴에 익숙해지기 위해 개발자 허브를 뒤져보는 것이 좋습니다. 확실히 이해를 한 후에는 Substratekitties 워크샵을 통해서 스스로에게 도전해보고 TCR Dappchain 튜토리얼로 넘어가서 진행하면 됩니다. -###parachain을 만드는 방법 +###패러체인(parachain)을 만드는 방법 -Substrate로 체인 로직을 만든 후에는 @(Wasm)실행 파일로 컴파일 할 수 있습니다. 이 Wasm 코드 Blob은 만들어진 parachain의 전체 스테이트 전이 함수를 포함합니다. +서브스트레이트(Substrate)로 체인 로직을 만든 후에는 @(Wasm)실행 파일로 컴파일 할 수 있습니다. 이 Wasm 코드 Blob은 만들어진 패러체인(parachain)의 전체 스테이트 전이 함수를 포함합니다. -Polkadot 릴레이 체인의 밸리데이터는 이 Wasm BLOB를 사용하여 만들어진 parachain의 모든 스테이트 전이를 확인합니다. +폴카닷(Polkadot) 릴레이 체인의 밸리데이터는 이 Wasm BLOB를 사용하여 만들어진 패러체인(parachain)의 모든 스테이트 전이를 확인합니다. -Polkadot 밸리데이터 가 parachain의 최근 스테이트 전이를 최신상태로 유지하기 위해서 필요한 인프라가 있습니다. 위에서 설명한 작업은 parachain의 검사기(collator) 노드에 의해 수행됩니다. +폴카닷(Polkadot) 밸리데이터 가 패러체인(parachain)의 최근 스테이트 전이를 최신상태로 유지하기 위해서 필요한 인프라가 있습니다. 위에서 설명한 작업은 패러체인(parachain)의 검사기(collator) 노드에 의해 수행됩니다. -Substrate에는 자체 네트워킹 레이어가 내장되어 있지만 Polkadot-호환 검사기(collator) 노드는 네트워킹 레이어가 지금 당장은 없습니다. +서브스트레이트(Substrate)에는 자체 네트워킹 레이어가 내장되어 있지만 폴카닷(Polkadot)-호환 검사기(collator) 노드는 네트워킹 레이어가 지금 당장은 없습니다. -이를 위해 Parity Technologies는 Substrate에 대한 확장기능인 Cumulus를 개발하여 Substrate로 만들어진 체인을 Polkadot에 연결할 준비가 된 parachain으로 쉽게 전환 할 수있게합니다. +이를 위해 Parity Technologies는 서브스트레이트(Substrate)에 대한 확장기능인 Cumulus를 개발하여 서브스트레이트(Substrate)로 만들어진 체인을 폴카닷(Polkadot)에 연결할 준비가 된 패러체인(parachain)으로 쉽게 전환 할 수있게합니다. -#### 뭉게구름 (Cumulus) +#### 뭉게구름(Cumulus) -[Cumulus](./cumulus.md)는 Substrate의 확장기능이며 Polkadot와 호환되는 Substrate 런타임을 만드는 것이 목표입니다. +[Cumulus](./cumulus.md)는 서브스트레이트(Substrate)의 확장기능이며 폴카닷(Polkadot)과 호환되는 서브스트레이트(Substrate) 런타임을 만드는 것이 목표입니다. -Polkadot에 연결하기 위해 모든 parachain이 구현해야하는 아래항목들이 포함된 네트워크 호환 오버헤드(network compatibility overhead)를 다룹니다. +폴카닷(Polkadot)에 연결하기 위해 모든 패러체인(parachain)이 구현해야하는 아래항목들이 포함된 네트워크 호환 오버헤드(network compatibility overhead)를 다룹니다. - 인터체인 메시지 전달 (Interchain message passing) - 특별 검사기 노드 셋업 (Out-of-the-box Collator node setup) - 릴레이 체인의 내장 라이트 클라이언트 (An embedded light client of the relay chain) -- Polkdat 블록 출처 호환 (Polkadot block authorship compatibility) -- Cumulus를 Substrate 체인에 통합하면 최소한의 수정으로 Polkadot에서 작업 할 수있는 parachain으로 이식 할 수 있습니다. crate를 불러와서 한 줄을 추가하는 것과 같은 작은 작업으로도 가능합니다. +- 폴카닷(Polkadot) 블록 출처 호환 (Polkadot block authorship compatibility) +- Cumulus를 서브스트레이트(Substrate) 체인에 통합하면 최소한의 수정으로 폴카닷(Polkadot)에서 작업 할 수있는 패러체인(parachain)으로 이식 할 수 있습니다. crate를 불러와서 한 줄을 추가하는 것과 같은 작은 작업으로도 가능합니다. -Polkadot의 공동 창업자인 Rob Habermeier가 최근 EthCC에서 Cumulus의 최근 개발상황에 대해서 말했습니다. 아래에서 비디오를 보실 수 있습니다. +폴카닷(Polkadot)의 공동 창업자인 Rob Habermeier가 최근 EthCC에서 Cumulus의 최근 개발상황에 대해서 말했습니다. 아래에서 비디오를 보실 수 있습니다. [![img](http://img.youtube.com/vi/thgtXq5YMOo/0.jpg)](https://www.youtube.com/watch?v=thgtXq5YMOo) -### Polkadot에 parachain을 포함시키는 방법 +### 폴카닷(Polkadot)에 패러체인(parachain)을 포함시키는 방법 -Parachain을 Polkadot 네트워크에 포함 시키려면 Parachain 슬롯을 확보해야합니다. +패러체인(parachain)을 Polkadot 네트워크에 포함 시키려면 패러체인(parachain)슬롯을 확보해야합니다. -Parachain 슬롯은 공개 입찰로 판매되며, 그 메커니즘은 위키의 [parachain auction](../learn/auction.md) 페이지에서 확인할 수 있습니다. +패러체인(parachain)슬롯은 공개 입찰로 판매되며, 그 메커니즘은 위키의 [parachain auction](../learn/auction.md) 페이지에서 확인할 수 있습니다. ## 스마트 컨트랙트를 만들기를 원할 경우 -The Polkadot relay chain itself will not support smart contracts but -since Polkadot is a network of many heterogeneous blockchains, there -will be parachains that do. +폴카닷(Polkadot) 릴레이 체인 자체는 스마트 컨트랙트를 지원하지 않을 것입니다. +그러나 폴카닷(Polkadot)는 여러 다른 종류의 블록체인의 네트워크이므로 패러체인(parachain)이 스마트 컨트랙트를 지원 할 것입니다. -Polkadot 릴레이 체인 자체는 스마트 컨트랙트를 지원하지 않을 것입니다. -그러나 Polkadot는 여러 다른 종류의 블록체인의 네트워크이므로 parachain이 스마트 컨트랙트를 지원 할 것입니다. - -이미 Parity Technologies는 스마트 컨트랙트 기능을 포함하길 원하는 parachain을 위해 즉시 사용 가능한 솔루션의 기초 작업을 해놓았습니다. -코어 SRML의 Substrate [contract](https://github.com/paritytech/substrate/tree/master/srml/contract) 모듈은 Wasm으로 컴파일 된 스마트 컨트랙트을 지원합니다. +이미 Parity Technologies는 스마트 컨트랙트 기능을 포함하길 원하는 패러체인(parachain)을 위해 즉시 사용 가능한 솔루션의 기초 작업을 해놓았습니다. +코어 SRML의 서브스트레이트(Substrate) [contract](https://github.com/paritytech/substrate/tree/master/srml/contract) 모듈은 Wasm으로 컴파일 된 스마트 컨트랙트을 지원합니다. Wasm으로 컴파일되는 스마트 컨트랙트를 개발하기 위해서는 적절한 언어가 필요합니다. 이를 위해 Parity는 [잉크](#ink)라는 DSL(Domain Specific Language)을 개발하고 있습니다. -[Edgeware](#edgeware)는 스마트 컨트랙트를 지원하는 Polkadot parachain이 될 의사가 있다고 발표한 프로젝트 입니다. -생태계가 성숙함에 따라 더 많은 블록체인들이 스마트 컨트랙트가 가능한 Parachain으로 될 확률이 높습니다. +[Edgeware](#edgeware)는 스마트 컨트랙트를 지원하는 폴카닷 패러체인(Polkadot parachain)이 될 의사가 있다고 발표한 프로젝트 입니다. +생태계가 성숙함에 따라 더 많은 블록체인들이 스마트 컨트랙트가 가능한 패러체인(parachain)으로 될 확률이 높습니다. -Polkadot은 또한 브릿지를 통해 Ethereum 및 Tezos와 같은 기존 스마트 계약 플랫폼과 호환 될 것입니다. -즉, 오늘 이런 플랫폼에서 개발 된 작업조차도 향후 Polkadot에서 실행할 수 있습니다. +폴카닷(Polkadot)은 또한 브릿지를 통해 Ethereum 및 Tezos와 같은 기존 스마트 계약 플랫폼과 호환 될 것입니다. +즉, 오늘 이런 플랫폼에서 개발 된 작업조차도 향후 폴카닷(Polkadot)에서 실행할 수 있습니다. ### Edgeware -Edgeware는 Polkadot을 위해 계획된 parachain이고 스마트 컨트랙트 기능도 작동 할 것입니다. 거버넌스 및 토큰 배포와 관련된 다른 흥미로운 혁신과 함께 스마트 컨트랙트 기능이 활성화 된 Polkadot 메인넷에 연결되는 최초의 parachain이 될 것입니다. [웹 사이트](https://edgewa.re)에서 프로젝트의 최신 정보를 얻을 수 있습니다. +Edgeware는 폴카닷(Polkadot)을 위해 계획된 패러체인(parachain)이고 스마트 컨트랙트 기능도 작동 할 것입니다. 거버넌스 및 토큰 배포와 관련된 다른 흥미로운 혁신과 함께 스마트 컨트랙트 기능이 활성화 된 폴카닷(Polkadot) 메인넷에 연결되는 최초의 패러체인(parachain)이 될 것입니다. [웹 사이트](https://edgewa.re)에서 프로젝트의 최신 정보를 얻을 수 있습니다. ### Ink [잉크] (https://github.com/paritytech/ink)는 Rust로 만들어졌으며 스마트 컨트랙트 개발을 위한 새로운 DSL(Domain specific language)이고 Wasm 코드로 컴파일 됩니다. README에 쓰여진 것 처럼, 아직 실험 단계에 있으며 계획된 많은 기능이 빠져 있지만 지금 스마트 컨트랙트를 작정 할 수 있습니다. -관심있는 개발자의 경우 이미 만들어진 [예제]((https://github.com/paritytech/ink/tree/master/examples)를 공부해보고 Ink를 사용하여 스마트 컨트랙트 개발을 시작할 수 있습니다. 이 예제들은 스마트 컨트랙트 parachain에 배포 할 수 있는 더 복잡한 로직을 작성하는것을 도와주는 가이드로 사용할 수 있습니다. +관심있는 개발자의 경우 이미 만들어진 [예제]((https://github.com/paritytech/ink/tree/master/examples)를 공부해보고 Ink를 사용하여 스마트 컨트랙트 개발을 시작할 수 있습니다. 이 예제들은 스마트 컨트랙트 패러체인(parachain)에 배포 할 수 있는 더 복잡한 로직을 작성하는것을 도와주는 가이드로 사용할 수 있습니다. -WasmVM 기반이며 Substrate체인과 호환되는 잉크!는 새로운 스마트 컨트랙트 스택을 위한 많은 기초작업을 진행했습니다. +WasmVM 기반이며 서브스트레이트(Substrate)체인과 호환되는 잉크!는 새로운 스마트 컨트랙트 스택을 위한 많은 기초작업을 진행했습니다. -Substrate에는 스마트 컨트랙트 체인에 필요한 핵심 로직을 포함하는 컨트랙트 모듈이 포함됩니다. 이 라인을 따라, 잉크!는 Rust로 작성된 스마트 컨트랙트 언어가 될 것입니다. 기존의 Rust 툴링 과 지원을 받을 수 있다는 이점이 있고 Wasm로 컴파일 할 것입니다. +서브스트레이트(Substrate)에는 스마트 컨트랙트 체인에 필요한 핵심 로직을 포함하는 컨트랙트 모듈이 포함됩니다. 이 라인을 따라, 잉크!는 Rust로 작성된 스마트 컨트랙트 언어가 될 것입니다. 기존의 Rust 툴링 과 지원을 받을 수 있다는 이점이 있고 Wasm로 컴파일 할 것입니다. ## 스마트 컨트랙트 배포하기 스마트 컨트랙트는 단순하게 말하자면 체인의 주소에 있는 코드이고 외부 액터가 호출 할 수 있습니다. 핵심 부분은 누군가가 실행을 시작하기 전에 실제로 코드를 체인에 두어야한다는 것입니다! -사용할 어떤 특정 parachain인지에 따라서 체인에 스마트 컨트랙트를 배포하는 것은 약간 다를 수 있지만 대개 장부에 스마트 컨트랙트를 작성하는 특별 트랜잭션이 전송됩니다. 스마트 컨트랙트가 소비하는 초기화 로직 및 스토리지에 대한 관련 요금을 지불해야 할 것입니다. +사용할 어떤 특정 패러체인(parachain)인지에 따라서 체인에 스마트 컨트랙트를 배포하는 것은 약간 다를 수 있지만 대개 장부에 스마트 컨트랙트를 작성하는 특별 트랜잭션이 전송됩니다. 스마트 컨트랙트가 소비하는 초기화 로직 및 스토리지에 대한 관련 요금을 지불해야 할 것입니다. ## 스마트 컨트랙에 수수료 지불하기 @@ -163,7 +159,7 @@ Substrate에는 스마트 컨트랙트 체인에 필요한 핵심 로직을 포 ### 여전히 초기단계예요. -Polkadot의 스마트 컨트랙트의 경우 아직 매우 이른 때이고 개발은 이제서야 안정화되고 있습니다. 우리는 최신 정보와 함께 위키를 유지하고 개발자들이 프로젝트에 대해 빨리 파악 할 수 있도록 컨텐츠를 적극적으로 제작하고 있습니다. 또한 다음 링크를 통해 최신 정보를 알아야 합니다. +폴카닷(Polkadot)의 스마트 컨트랙트의 경우 아직 매우 이른 때이고 개발은 이제서야 안정화되고 있습니다. 우리는 최신 정보와 함께 위키를 유지하고 개발자들이 프로젝트에 대해 빨리 파악 할 수 있도록 컨텐츠를 적극적으로 제작하고 있습니다. 또한 다음 링크를 통해 최신 정보를 알아야 합니다. - [Edgeware](https://edgewa.re). - [ink!](https://github.com/paritytech/ink). (Wiki 탭에서 내용을 확인하세요.) @@ -171,6 +167,6 @@ Polkadot의 스마트 컨트랙트의 경우 아직 매우 이른 때이고 개 ## 결론 (Conclusion) -이 가이드는 멘탈 모델을 제시하고 지금 프로젝트를 parachain로 할 것인지 스마트 컨트랙트로 할 것인지 결정하고 시작하는 데 도움이 되는 필수 리소스를 보여줍니다. 툴링이 여전히 발전하는 중이라도 빨리 시작하는 것의 장점은 프로젝트에 익숙해진다는 것과 앞서서 출발 하는 것이기 때문에 정말 새로운 것을 만들 수 있고 혁신 할 수 있습니다. +이 가이드는 멘탈 모델을 제시하고 지금 프로젝트를 패러체인(parachain)로 할 것인지 스마트 컨트랙트로 할 것인지 결정하고 시작하는 데 도움이 되는 필수 리소스를 보여줍니다. 툴링이 여전히 발전하는 중이라도 빨리 시작하는 것의 장점은 프로젝트에 익숙해진다는 것과 앞서서 출발 하는 것이기 때문에 정말 새로운 것을 만들 수 있고 혁신 할 수 있습니다. If you have interesting ideas for parachains or smart contracts on Polkadot feel free to drop in to the [Polkadot Watercooler](https://riot.im/app/#/room/#polkadot-watercooler:matrix.org) to talk about them. Developers may be interested in joining the [Polkadot Beginners Lounge](https://riot.im/app/#/room/#polkadotnoobs:matrix.org) or [Substrate Technical](https://riot.im/app/#/room/#substrate-technical:matrix.org) to ask their questions. As always, keep up to date with Polkadot by following the [social channels](https://wiki.polkadot.network/en/latest/community/). Good luck! diff --git a/docs/polkadot/build/cumulus_KR.md b/docs/polkadot/build/cumulus_KR.md index fbbb3c73..3e89edcc 100644 --- a/docs/polkadot/build/cumulus_KR.md +++ b/docs/polkadot/build/cumulus_KR.md @@ -8,11 +8,11 @@ ### 뭉게구름 컨센서스 (Cumulus Consensus) -Polkadot 릴레이 체인을 따르는 Substrate의 컨센서스 엔진입니다. 이것은 Polkadot 노드를 내부적으로 실행하고 어떤 체인을 따를 것이며, 어떤 체인을 최종적으로 승인할 것인지(Finalize), 어떤 체인을 제일 먼저 다룰 것인지에 대해서 클라이언트와 동기화 알고리즘에 영향을 줍니다. +폴카닷(Polkadot) 릴레이 체인을 따르는 Substrate의 컨센서스 엔진입니다. 이것은 폴카닷(Polkadot) 노드를 내부적으로 실행하고 어떤 체인을 따를 것이며, 어떤 체인을 최종적으로 승인할 것인지(Finalize), 어떤 체인을 제일 먼저 다룰 것인지에 대해서 클라이언트와 동기화 알고리즘에 영향을 줍니다. ### 뭉게구름 런타임 (Cumulus Runtime) -Polkadot 밸리데이터가 유효성을 검사하고 증인 생성 루틴(Witness generating routine)을 제공할 수 있게 하는 Substrate 런타임의 Wrapper입니다. 밸리데이터가 호출 할 Substrate 외부 인터페이스에 `validate_block` API를 추가합니다. +폴카닷(Polkadot) 밸리데이터가 유효성을 검사하고 증인 생성 루틴(Witness generating routine)을 제공할 수 있게 하는 서브스트레이트(Substrate) 런타임의 Wrapper입니다. 밸리데이터가 호출 할 서브스트레이트(Substrate) 외부 인터페이스에 `validate_block` API를 추가합니다. 섭스트레이트 런타임에 통합하는 것은 Crate를 가져와서 한 행의 매크로를 코드에 추가하는것 만큼 쉽습니다. @@ -22,7 +22,7 @@ runtime::register_validate_block!(Block, BlockExecutor); ### 뭉게구름 검사기 (Cumulus Collator) -패러체인을 위한 Polkadot collator가 준비중입니다. +패러체인을 위한 폴카닷(Polkadot) 검사기(collator)가 준비중입니다. ## Resources diff --git a/docs/polkadot/build/deploy-parachains_KR.md b/docs/polkadot/build/deploy-parachains_KR.md index 33e58637..6b343a5b 100644 --- a/docs/polkadot/build/deploy-parachains_KR.md +++ b/docs/polkadot/build/deploy-parachains_KR.md @@ -1,22 +1,22 @@ # 패러체인을 보고 배포하는 방법 (How to view and deploy parachains) -The guide has been updated to work with the Alexander testnet. +이 가이드는 Alexander testnet과 함께 동작하도록 업데이트 되었습니다. ## 패러체인을 보는 방법(How to view parachains) -On the [Polkadot UI](https://polkadot.js.org/apps/#/explorer) navigate to the `Chain State` tab. Select the `parachains` module and the `parachains()` then hit the `+` button. It will return an array of the currently active parachains. +[Polkadot UI](https://polkadot.js.org/apps/#/explorer)에서 `Chain State` 탭을 찾으새요. `parachains` 모듈을 선택하고 탭에서 `parachains()`을 선택한 뒤 `+` 을 누르세요. 그렇다면 현재 작동중인 패러체인(parachain)의 array를 리턴합니다. ## 패러체인에 애더(Adder)를 배포하는 방법 (How to deploy the Adder parachain) **투표를 만들기 위해 필요한 최소한의 보증금이 필요합니다. 현재는 최소 5 Dot이 필요합니다.** -`Adder`패러체인은 스토리지에 값을 유지하고 메시지가 전송 될 때 이 값에 더하는 단순한 패러체인 입니다. Polkadot 레포지토리의 `test-parachains` 폴더에 있습니다. +`Adder`패러체인(parachain)은 스토리지에 값을 유지하고 메시지가 전송 될 때 이 값에 더하는 단순한 패러체인(parachain) 입니다. 폴카닷(Polkadot) 레포지토리의 `test-parachains` 폴더에 있습니다. -> A slightly out-of-date video version of this guide presented by Adrian Brink is available [here](https://www.youtube.com/watch?v=pDqkzvA4C0E). When the two guides diverge, please refer to this written text as definitive and updated. +> 조금 시간이 지난 Adrian Brink가 발표한 [이 가이드의 비디오는 여기서 보실 수 있습니다]((https://www.youtube.com/watch?v=pDqkzvA4C0E)). 가이드가 두개로 나뉘면 이 텍스트를 최종본으로 업데이트 하세요. ### 코드 짜기 (Building the code) -첫번째로 Polkadot 코드를 다운로드 받습니다. +첫번째로 폴카닷(Polkadot) 코드를 다운로드 받습니다. ```bash git clone https://github.com/paritytech/polkadot.git @@ -30,16 +30,16 @@ sudo apt install make clang pkg-config libssl-dev rustup update ``` -다음 Polkadot 디렉토리에 있는 `test-parachains`디렉토리를 찾아서 실행시키고 스크립트를 실행시키고 빌드합니다. +다음 폴카닷(Polkadot) 디렉토리에 있는 `test-parachains`디렉토리를 찾아서 실행시키고 스크립트를 실행시키고 빌드합니다. ```bash cd polkadot/test-parachains ./build.sh ``` -이 폴더에 들어있는 간단한 `Adder` 패러체인의 Wasm 실행 파일이 생성됩니다. 이 패러체인은 단순히 전송 된 메시지를 추가합니다. Wasm 실행 파일은 `parachains / test / res / adder.wasm` 경로에 값을 출력합니다. 결과값들은 거기서 찾을 수 있습니다. +이 폴더에 들어있는 간단한 `Adder` 패러체인(parachain)의 Wasm 실행 파일이 생성됩니다. 이 패러체인(parachain)은 단순히 전송 된 메시지를 추가합니다. Wasm 실행 파일은 `parachains / test / res / adder.wasm` 경로에 값을 출력합니다. 결과값들은 거기서 찾을 수 있습니다. -이 패러체인의 제네시스 스테이트를 얻기 위해서 검사기 (Collator)노드를 빌드하고 실행시켜야 합니다. +이 패러체인(parachain)의 제네시스 스테이트를 얻기 위해서 검사기 (Collator)노드를 빌드하고 실행시켜야 합니다. `test-parachains/adder/collator`디렉토리로 가서 `build`와 `run` 커맨드를 실행하세요. @@ -49,7 +49,7 @@ cargo run [ctrl-c] ``` -Collator 노드를 즉시 중단하면 다음과 같은 출력이 표시됩니다 +검사기(Collator)노드를 즉시 중단하면 다음과 같은 출력이 표시됩니다 ``` Starting adder collator with genesis: @@ -59,27 +59,27 @@ Hex: 0x0000000000000000000000000000000000000000000000000000000000000000000000000 ``` 여기서 16진수(hex) 스트링이 중요한 정보입니다. -이 정보는 제네시스 스테이트 (Genesis state)이고 다음 단계를 위해서 저장해놓아야 합니다. +이 정보는 제네시스 스테이트(Genesis state)이고 다음 단계를 위해서 저장해놓아야 합니다. ### 패러체인 배포하기 (Deploying the parachain) `Extrinsics` 탭에 있는 [Polkadot UI](https://polkadot.js.org/apps/#/extrinsics)로 가세요. -패러체인을 배포하고 싶은 계정을 선택하세요 패러체인을 배포하기 위해서 투표를 생성해야 합니다. +패러체인(parachain)을 배포하고 싶은 계정을 선택하세요 패러체인(parachain)을 배포하기 위해서 투표를 생성해야 합니다. `democracy` -> `propose(proposal,value)` -> `parachains` -> `registerParachain(id,code,initial_head_data)` 순서대로 클릭하세요. -`id` 입력에서 패러체인의 id를 입력하세요. 단순한 애더(Adder)의 경우 `100`이 됩니다. `code` 필드에서 페이지 버튼을 클릭하고 그다음 이전에 컴파일 된`adder.wasm` 바이너리를 업로드 하세요. `initial_head_data`에서 collator(검사기) 노드를 실행하여 얻은 16진수(hex) 데이터를 복사하여 붙여 넣습니다. `value` 필드에서 투표를 만들 때 필요한 최소값을 입력해야합니다. 이 글을 쓰는 시점에서 Alexander testnet에서 _5 DOTs_ 입니다. +`id` 입력에서 패러체인(parachain)의 id를 입력하세요. 단순한 애더(Adder)의 경우 `100`이 됩니다. `code` 필드에서 페이지 버튼을 클릭하고 그다음 이전에 컴파일 된`adder.wasm` 바이너리를 업로드 하세요. `initial_head_data`에서 검사기(collator) 노드를 실행하여 얻은 16진수(hex) 데이터를 복사하여 붙여 넣습니다. `value` 필드에서 투표를 만들 때 필요한 최소값을 입력해야합니다. 이 글을 쓰는 시점에서 Alexander testnet에서 _5 DOTs_가 필요합니다. ![패러체인 등록하기](../../img/parachain/register.png) `Democracy` 탭으로 이동하면 프로포절 섹션에서 프로포절을 볼 수 있습니다. -일단 프로포절이 투표가 될 때까지 기다리면 `Nay`나 `Aye`에 투표 할 수 있습니다. 아마도 당신은 당신의 패러체인을 배포하기위한 표가 될 것이기 때문에 당신은 Aye에게 투표 할 것입니다. +일단 프로포절이 투표가 될 때까지 기다리면 `Nay`나 `Aye`에 투표 할 수 있습니다. 아마도 당신은 당신의 패러체인(parachain)을 배포하기위한 표가 될 것이기 때문에 당신은 Aye에게 투표 할 것입니다. ![패러체인 투표](../../img/parachain/referendum.png) -투표 기간이 끝나면 패러체인의 스테이트를 쿼리 할 수 있습니다. -`Chain State` 탭으로 가서 `parachains` 스테이트를 쿼리함으로써 패러체인에 대한 정보를 볼 수 있습니다. +투표 기간이 끝나면 패러체인(parachain)의 스테이트를 쿼리 할 수 있습니다. +`Chain State` 탭으로 가서 `parachains` 스테이트를 쿼리함으로써 패러체인(parachain)에 대한 정보를 볼 수 있습니다. ![parachain info](../../img/parachain/info.png) diff --git a/docs/polkadot/build/dev-roadmap_KR.md b/docs/polkadot/build/dev-roadmap_KR.md index 8a173e26..ff2300c5 100644 --- a/docs/polkadot/build/dev-roadmap_KR.md +++ b/docs/polkadot/build/dev-roadmap_KR.md @@ -3,7 +3,7 @@ 개발자들에게는 언제 업스트림 팀이 특정 마일스톤에 도달 할지 예상할 수 있는 몇 가지 가이드 포스트가 필요합니다. 우리가 알고있는 정보로 아래 섹션을 최신 상태로 유지하고 가능한 경우 명확한 날짜를 추가하려고 노력할 것입니다. -## 섭스트레이트 (Substrate) +## 서브스트레이트(Substrate) ### 1.0 @@ -42,6 +42,6 @@ 예상되는 기능들: - - 패러체인 후보들의 증명을 위한 BLS 시그니처 에그리게이션 - - [패러체인 토큰들을 거버넌스에 통합(Integrate Parachain tokens into governance)](https://github.com/paritytech/polkadot/issues/124) - - 패러체인 확인(validation)의 개선 + - 패러체인(parachain) 후보들의 증명을 위한 BLS 시그니처 에그리게이션 + - [패러체인(parachain) 토큰들을 거버넌스에 통합(Integrate Parachain tokens into governance)](https://github.com/paritytech/polkadot/issues/124) + - 패러체인(parachain) 확인(validation)의 개선 diff --git a/docs/polkadot/build/examples/index_KR.md b/docs/polkadot/build/examples/index_KR.md index 4dec7cdc..f6281976 100644 --- a/docs/polkadot/build/examples/index_KR.md +++ b/docs/polkadot/build/examples/index_KR.md @@ -7,27 +7,27 @@ ### Parity -- [Shasper](https://github.com/paritytech/shasper)- 섭스트레이트 런타임 으로 구현된 이더리움 2.0. +- [Shasper](https://github.com/paritytech/shasper)- 서브스트레이트(Substrate) 런타임 으로 구현된 이더리움 2.0. - [Substrate TCR](https://github.com/parity-samples/substrate-tcr)- 런타임 모듈로 구현된 토큰 큐레이트 레지스트리(Token curated registry). -- [Substrate ERC20](https://github.com/parity-samples/substrate-erc20) - 서브스트레이트에 구현된 ERC20 토큰 표준 (Token standard) . +- [Substrate ERC20](https://github.com/parity-samples/substrate-erc20) - 서브스트레이트(Substrate)에 구현된 ERC20 토큰 표준 (Token standard) . ### 커뮤니티 -- AdEx 페이먼트 채널은 섭스트레이트를 사용합니다.[Video](https://www.youtube.com/watch?v=1CeI6Oa1BnU). [Repo](https://github.com/AdExNetwork/adex-protocol-substrate). +- AdEx 페이먼트 채널은 서브스트레이트(Substrate)를 사용합니다.[Video](https://www.youtube.com/watch?v=1CeI6Oa1BnU). [Repo](https://github.com/AdExNetwork/adex-protocol-substrate). - ROS 와 통합된 로보노믹스 모듈(Robonomics modules for integrating with ROS). [Repo](https://github.com/airalab/substrate-node-robonomics) -- Staked Technologies의 섭스트레이트(Substrate) 위에서 플라즈마(Plasma)구현. [Repo](https://github.com/stakedtechnologies/Plasm) +- Staked Technologies의 서브스트레이트(Substrate) 위에서 플라즈마(Plasma)구현. [Repo](https://github.com/stakedtechnologies/Plasm) - 엣지웨어(Edgeware). [Repo](https://github.com/hicommonwealth/edgeware-node) - 프라이버시에 중점을 둔 런타임 모듈인 제로체인 (Zerochain privacy-focused runtime module). - [Zero-chain Repo](https://github.com/LayerXcom/zero-chain) - [Bellman-substrate (섭스트레이트 위애서 zksnark 구현) Repo](https://github.com/LayerXcom/bellman-substrate) -- 섭스트레이트 위에서 IPFS 메타데이터를 구현한 Starlog. [Repo](https://github.com/PACTCare/Starlog) -- 섭스트레이트를 사용해서 사과를 파는 "애플 스토어" 구현 예제 (섭스트레이트를 사용해서 사과를 파는 "애플 스토어" 예시 ). [Repo](https://github.com/osuketh/apple-store-substrate) +- 서브스트레이트(Substrate) 위에서 IPFS 메타데이터를 구현한 Starlog. [Repo](https://github.com/PACTCare/Starlog) +- 서브스트레이트(Substrate)를 사용해서 사과를 파는 "애플 스토어" 구현 예제 (섭스트레이트를 사용해서 사과를 파는 "애플 스토어" 예시 ). [Repo](https://github.com/osuketh/apple-store-substrate) - 랜드체인(Landchain), 크로스체인 게이밍 플랫폼(cross-chain gaming platform). [Repo](https://github.com/evolutionlandorg/land-chain) - 조이스트림(Joystream), 유저 중심의 비디로 플랫폼 (user governed video platform). [Repo](https://github.com/Joystream/substrate-node-joystream) - IPFS 브라우저(IPFS browser). [Repo](https://github.com/Polygos/substrate-node-ipfsbrowser) -- 섭스트레이트 멀티시그(Substrate multisig). [Repo](https://github.com/mixbytes/substrate-module-multisig) +- 서브스트레이트 멀티시그(Substrate multisig). [Repo](https://github.com/mixbytes/substrate-module-multisig) - 머클트리 모듈(Merkle tree module). [Repo](https://github.com/filiplazovic/substrate-merkle-tree) -- 섭스트레트를 사용한 주차 공간 등록기(Parking spaces registry using Substrate). [Repo](https://github.com/yjkimjunior/ParkingSpaceSubstrate) -- 섭스트레이트 고유 데이터 샘플들(Substrate inherents sample). [Repo](https://github.com/gautamdhameja/substrate-inherents-sample) +- 서브스트레이트를 사용한 주차 공간 등록기(Parking spaces registry using Substrate). [Repo](https://github.com/yjkimjunior/ParkingSpaceSubstrate) +- 서브스트레이트 고유 데이터 샘플들(Substrate inherents sample). [Repo](https://github.com/gautamdhameja/substrate-inherents-sample) - 현금성 자산을 위한 대체 불가능 자산으로 담보 만들기 (Collateralize non-fungible assets for cash). [Repo](https://github.com/nczhu/collateral) - Cid 체인(CidChain). [Repo](https://github.com/Polygos/substrate-node-cidchain) diff --git a/docs/polkadot/build/extrinsic-format_KR.md b/docs/polkadot/build/extrinsic-format_KR.md index d2cbdea9..2bed680a 100644 --- a/docs/polkadot/build/extrinsic-format_KR.md +++ b/docs/polkadot/build/extrinsic-format_KR.md @@ -1,4 +1,4 @@ -# Polkadot 트랜잭션 포맷 (Polkadot Extrinsic Format aka Transaction Format) +# 폴카닷 트랜잭션 포맷 (Polkadot Extrinsic Format aka Transaction Format) ## 이전 포맷 @@ -10,7 +10,7 @@ ## 현재 포맷 -Polkadot 트랜잭션 포맷은 아래와 같습니다.: +폴카닷(Polkadot) 트랜잭션 포맷은 아래와 같습니다.: ``` [ address (1/3/5/9/33-bytes, 첫번째 바이트에 따라 다름), index (4-bytes), call (dynamic-length), *오리지널* 필드에 서명함 (64 bytes) ] diff --git a/docs/polkadot/build/hackathon_KR.md b/docs/polkadot/build/hackathon_KR.md index 58a0d147..e41f9206 100644 --- a/docs/polkadot/build/hackathon_KR.md +++ b/docs/polkadot/build/hackathon_KR.md @@ -20,15 +20,13 @@ Web3 Foundation의 목표 중 하나인 [Web3 기술 스택](http://wiki.web3.fo ## 왜 해커톤을 해야만 할까요? -- Love to deliver the vision of Web3 -- Learn the bleeding-edge technology +- Web3의 비전을 전달하는 것을 사랑하기 때문에 - 최신 기술을 배우기 위해서 - 개발자들이 어플리케이션을 만들기 위해 Web3 기술 스택이 알맞다는 것을 믿으니까 - 사람들과 만나는 것을 좋아하니까 ## 워크샵과 해커톤은 어떻게 다른가요? - 해커톤은 짧은 시간 (몇 시간 ~ 하루) 동안 프로토타입을 보여주고 아이디어를 현실로 구현하기를 원하는 참가자를 대상으로 합니다. 워크샵은 개발자가 현재 사용할 수있는 리소스가 무엇인지, 리소스를 사용하는 방법에 대해 툴링(tooling)하고 이해하는 것에 익숙해 지도록 합니다. ## 어떻게 당신의 도시에서 해커톤을 열 수 있나요? diff --git a/docs/polkadot/build/index_KR.md b/docs/polkadot/build/index_KR.md index 9d18c9c1..8d95c408 100644 --- a/docs/polkadot/build/index_KR.md +++ b/docs/polkadot/build/index_KR.md @@ -1,21 +1,21 @@ # Builders Portal !!! info - _🏗️ Polkadot은 현제 구현되고 있습니다. 이 문서들은 자주 바뀐다는 것을 알려드립니다._ + _🏗️ 폴카닷(Polkadot)은 현제 구현되고 있습니다. 이 문서들은 자주 바뀐다는 것을 알려드립니다._ -Polkadot 위키의 개발자 섹션에 오신것을 환영합니다. +폴카닷(Polkadot) 위키의 개발자 섹션에 오신것을 환영합니다. 여기에서 @(Polkadot)생태계의 개발 도구에 대한 최신 정보를 찾을 수 있습니다. -우리는 Polkadot에 대해서 알아갈 때마다 항상 새로운 도구와 프레임워크를 추가하고 있습니다. 그래서 만약 여기에 포함되어야 할 것에 대해서 작업 하고 있다면 [Riot](https://riot.im/app/#/room/#polkadot-watercooler:matrix.org)을 통해 연락해주세요 . +우리는 폴카닷(Polkadot)에 대해서 알아갈 때마다 항상 새로운 도구와 프레임워크를 추가하고 있습니다. 그래서 만약 여기에 포함되어야 할 것에 대해서 작업 하고 있다면 [Riot](https://riot.im/app/#/room/#polkadot-watercooler:matrix.org)을 통해 연락해주세요 . -위키의 이 섹션은 세 부분으로 나누어져 있습니다: 첫번째, Polkadot을 개발할 때 신속하게 작업 을 할 수있게 만드는 테크니컬 가이드입니다. 두 번째 부분은 개발자 도구에 대한 최신 카탈로그 입니다. 세 번째 부분은 다른 곳에서 찾을 수 없는 좀 더 깊은 기술 정보를 담고있는 자료들이 있습니다. +위키의 이 섹션은 세 부분으로 나누어져 있습니다: 첫번째, 폴카닷(Polkadot)을 개발할 때 신속하게 작업 을 할 수있게 만드는 테크니컬 가이드입니다. 두 번째 부분은 개발자 도구에 대한 최신 카탈로그 입니다. 세 번째 부분은 다른 곳에서 찾을 수 없는 좀 더 깊은 기술 정보를 담고있는 자료들이 있습니다. ## 개발 가이드 Guide -- [Starter's Guide](./build-with-polkadot.md) - 패러체인이나 스마트 컨트랙을 선택하기 위한 고수준의 개괄, 그리고 시작하기 위해서 어떤 리소스를 쓸 수 있는지 알아봅니다. +- [Starter's Guide](./build-with-polkadot.md) - 패러체인(parachain)이나 스마트 컨트랙을 선택하기 위한 고수준의 개괄, 그리고 시작하기 위해서 어떤 리소스를 쓸 수 있는지 알아봅니다. - [개발 로드맵](./dev-roadmap_KR.md) - [패러체인 개발 키트(PDK)](./pdk.md) - PDK(parachain development kits)에 대해서 배우고 자신만의 패러체인을 만들어 봅니다. -- [스마트 컨트랙트](./smart-contracts.md) - Polkadot과 Substrate의 스마트 컨트랙에 대해서 배워보고 오늘 당장 어떻게 시작할 수 있는지 알아봅시다. +- [스마트 컨트랙트](./smart-contracts.md) - 폴카닷(Polkadot)과 서브스트레이트(Substrate)의 스마트 컨트랙에 대해서 배워보고 오늘 당장 어떻게 시작할 수 있는지 알아봅시다. ## Tools diff --git a/docs/polkadot/build/networks_KR.md b/docs/polkadot/build/networks_KR.md index 4b8dcf3e..7bf7ced5 100644 --- a/docs/polkadot/build/networks_KR.md +++ b/docs/polkadot/build/networks_KR.md @@ -1,34 +1,34 @@ # 네트워크 -The following commands can be used to connect to the different networks. -다음 커맨드들은 다른 네트워크에 연 +다음 커맨드들은 다른 네트워크들 끼리 연결하는데 사용 할 수 있습니다. + ## Development -Install Polkadot and have a `polkadot` binary install to your `PATH` with: +다음 명령어로 폴카닷(polkadot)을 설치하고 `polkadot` 바이너리를 `PATH`에 등록하세요. ```bash cargo install --git https://github.com/paritytech/polkadot.git polkadot ``` -You can run a simple single-node development "network" on your machine by running in a terminal: +다음 명령어를 터미널에 입력해서 단순한 단일 노드 개발 "네트워크"를 작동 시킬 수 있습니다. ```bash polkadot --dev ``` -You can muck around by cloning and building the http://github.com/paritytech/polka-ui and http://github.com/paritytech/polkadot-ui or just heading to https://polkadot.js.org/apps. - -## Krumme Lanke +http://github.com/paritytech/polka-ui나 http://github.com/paritytech/polkadot-ui을 클로닝하거나 만들면서 노닥거릴수 있습니다. 아니면 https://polkadot.js.org/apps을 가리킬 수도 있습니다. -Krumme Lanke is a testnet network used during the development of PoC-2. +## Krumme Lanke (베를린 남서쪽에 있는 호수 이름 - 역자 주 ) -Install Polkadot PoC-2 and have a `polkadot` binary installed to your `PATH` with: +Krumme Lanke는 PoC-2의 개발단계에서 사용했던 테스트넷 네트워크 입니다. +다음 명령어로 Polkadot PoC-2를 설치하고 `polkadot` 바이너리를 `PATH`에 등록하세요. ```bash cargo install --git https://github.com/paritytech/substrate.git --branch v0.2 polkadot ``` -Connect to the global "Krumme Lanke" testnet by default by running: +글로벌 "Krumme Lanke" 테스트넷에 기본적으로 연결되어서 동작합니다. +명령어는 아래와 같습니다. ```bash polkadot @@ -36,34 +36,32 @@ polkadot ## Alexander (PoC-4) -Alexander is a testnet network used during the development of PoC-3 and PoC-4. - -Install Polkadot PoC-4 and have a `polkadot` binary installed to your `PATH` with: +Alexander 는 PoC-3와 PoC-4 개발단계에서 사용했던 테스트넷 네트워크 입니다. +다음 명령어로 Polkadot PoC-4를 설치하고 `polkadot` 바이너리를 `PATH`에 등록하세요. ```bash cargo install --git https://github.com/paritytech/polkadot.git --branch v0.4 polkadot ``` -Connect to the global "Alexander" testnet by default by running: +글로벌 "Alexander" 테스트넷에 기본적으로 연결되어서 동작합니다. +명령어는 아래와 같습니다. ```bash polkadot ``` -## Local Two-Node Testnet +## 2개의 노드로 테스트넷 작동시키기 -If you want to see the multi-node consensus algorithm in action locally, then -you can create a local testnet. You'll need two terminals open. In one, run: +다중 노드 합의 알고리즘 실행을 로컬에서 보고 싶다면 로컬 testnet을 생성 할 수 있습니다. 두 개의 터미널이 열려 있어야합니다. 하나는 다음을 실행하십시오. ```bash polkadot --chain=local --validator --key Alice -d /tmp/alice ``` -and in the other, run: +다른 터미널에서는 다음 명령어를 실행하세요. ```bash polkadot --chain=local --validator --key Bob -d /tmp/bob --port 30334 --bootnodes '/ip4/127.0.0.1/tcp/30333/p2p/ALICE_BOOTNODE_ID_HERE' ``` -Ensure you replace `ALICE_BOOTNODE_ID_HERE` with the node ID from the output of -the first terminal. +`ALICE_BOOTNODE_ID_HERE`를 첫 번째 터미널의 출력에서 노드 ID로 대체했는지 확인하십시오. diff --git a/docs/polkadot/build/pdk_KR.md b/docs/polkadot/build/pdk_KR.md index 8cb4336d..9ef842da 100644 --- a/docs/polkadot/build/pdk_KR.md +++ b/docs/polkadot/build/pdk_KR.md @@ -1,39 +1,44 @@ -# Parachain Development Kits (PDKs) +# 패러체인 개발 킷 (Parachain Development Kits, PDKs) -Parachain development kits (PDKs) are a set of tools that make it easy for developers to create Polkadot compatible [parachains](../learn/parachains.md). +PDK (Parachain Development Kit)는 개발자가 폴카닷(Polkadot)에 호환되는 [패러체인(parachains)](../learn/parachains.md)을 쉽게 만들 수 있도록 해주는 툴 셋입니다. -## Why create a parachain? +## 왜 parachain을 만드나요? -Before diving into what a PDK is and how it would be used, let's revisit _why_ a developer would want to create a parachain and connect it to Polkadot. +PDK가 무엇이고 어떻게 사용되는지 알아보기 전에 _왜_ 개발자가 패러체인(parachain)을 만들고 폴카닷(Polkadot)에 연결하길 원하는지 다시 논의해봅시다. -A parachain has two major value adds that make it a desirable choice for a developer over creating a standalone chain: +parachain은 개발자에게 독립된 체인을 만드는 것보다 바람직한 두 가지 주요 부가 기능을 제공합니다. -- _Shared security_ - removes the necessity of bootstrapping a chain's own validator set. -- _Interchain communication_ - allows parachains to interoperate with each other through the ICMP protocol. +- _Shared security_ - 체인 자체의 밸리데이터 셋을 부트스트래핑 할 필요성을 없앱니다. +- _인터체인 Interchain communication_ - ICMP 프로토콜을 통해서 parachain들 끼리 서로 상호운용(interoperate)하게 합니다. -Parachains can [lease the security](../learn/security.md) of the Polkadot network by bonding [DOTs](../learn/DOT.md) for a parachain slot. This means that the social costs of building a community around your project and convincing validators to participate in your network security are reduced. It is anticipated that Polkadot will have strong security, and decentralized application projects wishing to benefit from this security would want to become a parachain. For more information on the mechanic of leasing a parachain slot through a candle auction see [here](../learn/auction.md). +패러체인(Parachains)은 패러체인 슬롯에 [DOT](../learn/DOT.md)을 저당잡은 후 폴카닷(Polkadot) [네트워크의 보안을 빌려올 수 있습니다](../learn/security.md). 즉, 프로젝트를 둘러싼 커뮤니티를 구축하고 네트워크 보안에 참여할 수있는 밸리데이터를 설득하는 사회적 비용이 감소합니다. 폴카닷(Polkadot)은 강력한 보안성을 가질것이며 분산 어플리케이션 프로젝트는 패러체인(parachain)이 되어서 이런 보안기능을 통해 이득을 얻기를 원할것이라고 예상할 수 있습니다. candle 경매를 통해 패러체인(parachain)슬롯을 발리는 매커니즘에 대한 내용은 [여기](../learn/auction.md)를 참조하십시오. -Any decentralized application or chain that wants to enable trustless messaging to other parachains already connected to Polkadot would want to become a parachain. Interoperability between sovereign chains involves certain constraints and complex protocols to enable across a wide breadth of chains. With Polkadot, you will get this feature out of the box if your build your application as a parachain. The [ICMP protocol](../learn/interchain.md) will allow any parachains to interoperate by passing messages between them. Furthermore, as bridges to other chains are launched (such as those to Bitcoin or Ethereum) the parachains will be able to operate with these as well. +이미 폴카닷(Polkadot)에 연결된 다른 패러체인(parachains)에 신뢰가 필요없는(trustless) 메시징을 하려는 분산 어플리케이션이나 체인은 패러체인(parachain)이 되길 원합니다. 독립된 체인 간의 상호 운용성에는 광범위한 체인 간에 사용할 수 있도록 특정 제약조건과 복잡한 프로토콜을 포함합니다. 폴카닷(Polkadot)를 사용해서 어플리케이션을 패러체인(parachain)으로 빌드하면 이 기능을 사용할 수 있습니다. [ICMP 프로토콜](../learn/interchain.md)은 어떤 패러체인(parachains)이라도 서로 메시지를 전달해서 상호 운용(interoperate)할 수있게 합니다. 더해서,다른 체인에 대한 브릿지가 런칭된다면 (예를 들어 Bitcoin 또는 Ethereum) 패러체인(parachain)은 다른 체인과 함께 운영이 가능해집니다. -## What is a PDK? +## PDK가 뭔가요? -As mentioned, a PDK is a set of tools that allows developers to easily create a parachain. In practice this means that the PDK will consist of a couple key components: +얘기했다시피 PDK는 개발자가 패러체인(parachain)을 쉽게 만들 수 있게 하는 툴 세트입니다. 실제로 이것은 PDK가 두 가지 주요 구성 요소로 구성된다는 것을 의미합니다. -- _State transition function_ - a way for your application to move from one state to another state. -- _Collator node_ - a type of peer-to-peer node in the Polkadot network with certain responsibilities in regard to parachains. +- _상태 전이 함수 (State transition function)_ - 어플리케이션이 한 상태에서 다른 상태로 이동하는 방법. +- _검사기 노드 (Collator node)_ - 패러체인(parachain)에 대해서 특정 책임을 지는 폴카닷(Polkadot)네트워크 내의 P2P 노드 타입. -The state transition function (STF) can be any abstract way for an application to go from one state to another state. The only constraint that Polkadot places on this STF is that it must be easily verifiable -- usually though what we call a _witness_ or _proof_. It must be so because the relay chain validators will need to check that each state it receives from the collator node is correct without actually running through the entire computation. Some examples of these proofs include the Proof-of-Validity blocks or zk-SNARKs which require less computational resources to verify than they do to generate. The verification asymmetry in proof generation of the STF is one of the integral insights that allows Polkadot to scale while keeping high security guarantees. +상태 전이 함수(STF)는 응용 프로그램이 하나의 상태에서 다른 상태로 이동하는 모든 추상적인 방법 일 수 있습니다. 이 STF에 대해서 Polkadot이 두는 유일한 제약은 쉽게 증명할 수 있어야 한다 라는 것입니다. 일반적으로 우리는 _증인_ 이나 _증거_ 라고 부릅니다. 릴레이 체인 밸리데이터는 검사기(collator) 노드로부터 받은 각 상태가 실제로 전체 계산을 거치지 않고 올바른지 확인해야하기 때문에 그렇게 해야 합니다. -A collator node is one of the types of network maintainers in the Polkadot protocol. They are responsible for **keeping availability** of the state of the parachain and the new states returned from iteration of the state transition function. They must remain online in order to keep track of the state and also of the ICMP messages that it will route between itself and other parachains. Collator nodes are responsible for passing the succinct proofs to the relay chain validators, and tracking the latest blocks from the relay chain. In essence, a collator node also acts as a light client for the Polkadot relay chain. For more on collator nodes see [here](../node/collator.md). +이러한 증명의 일부 예로는 Proof-of-Validity 블록 또는 블록을 생성하는 데 필요한 것보다 계산 자원이 적게 필요한 zk-SNARK가 포함됩니다. STF의 증명 생성 내에서 검증 비대칭성(verficaition asymmetry)은 폴카닷(Polkadot)이 높은 보안 보증을 유지하면서 확장을 할 수 있게 하는 필수 불가결한 인사이트 중 하나입니다. -## What kind of PDKs exist? +검사기(Collator) 노드는 폴카닷(Polkadot) 프로토콜의 네트워크 메인테이너(maintainer) 유형 중 하나입니다. 그들은 패러체인(parachain)의 상태와 상태 전이 함수의 반복(iteration)에서 반환 된 새로운 상태의 **가용성을 유지하는 것에(keeping availability)** 대해서 책임이 있습니다. +검사기(collator)노드는 상태(state)를 기록하고 와 ICMP 메시지를 자신과 다른 패러체인간 라우팅 한 것을 기록하기 위해서 온라인 상태를 반드시 유지해야 합니다. 검사기(Collator) 노드는 간결한(succint) 증명을 릴레이 체인 밸리데이터로 전달하고 릴레이 체인에서 최신 블록을 추적해야 되는 역할을 맡고 있습니다. 본질적으로 검사기(collator) 노드는 폴카닷(Polkadot) 릴레이 체인의 라이트 클라이언트로도 작동합니다. 검사기(collator) 노드에 대한 자세한 내용은 [여기](../node/collator.md)를 참조하십시오. -Currently the only PDK is Parity [Substrate](https://github.com/paritytech/substrate) and [Cumulus](https://github.com/paritytech/cumulus). Substrate is a blockchain framework that provides the basic building blocks of a blockchain (things like the networking layer, consensus, a Wasm interpreter) and provides an intuitive way to construct your runtime. Substrate is made to ease the process of creating a new chain, but it does not provide support for Polkadot compatibility directly. For this reason, Cumulus, an added library will contain all of the Polkadot compatibility glue code. Cumulus is still in development, but the idea is that it should be simple to take a Substrate chain and add the parachain code by importing the crates and adding a single line of code. +## 어떤 종류의 PDK가 있나요? -Substrate and Cumulus provide a PDK from the abstraction of the blockchain format, but it is not necessary that a parachain even needs to be a blockchain. For example, a parachain just needs to satisfy the two constraints listed above: _state transition function_ and _collator node_. Everything else is up to the implementer of the PDK. +현재 유일한 PDK는 Parity의 [서브스트레이트(Substrate)](https://github.com/paritytech/substrate) 와 [Cumulus](https://github.com/paritytech/cumulus)입니다. 서브스트레이트(Substrate)는 블록체인에서 기본적으로 만들어지는 블록(네트워킹 레이어, 합의, Wasm 인터프리터 같은 것들)을 제공하고 런타임을 구성하는 직관적인 방법을 제공하는 블록체인 프레임워크입니다. 서브스트레이트(Substrate)는 새로운 체인을 만드는 과정을 쉽게 만들었지만 폴카닷(Polkadot) 호환성을 직접적으로 지원하지는 않습니다. 이런 이유로 Cumulus에 추가된 라이브러리에 Polkadot 호환성 글루(glue)코드가 모두 포함됩니다. Cumulus는 아직 개발 중이지만, crate를 임포트 하고 코드 한 줄을 추가해서 서브스트레이트(Substrate)체인을 가져와서 패러체인(parachain)코드를 추가하는 것이 간단해야 한다 라는 아이디어가 있습니다. -One interesting idea for a PDK that would be nice to see is to have a [roll_up](https://ethresear.ch/t/roll-up-roll-back-snark-side-chain-17000-tps/3675) kit that allowed developers to create snark-based parachains. If we review the roll_up write-up we see that the system uses two roles: users that update **state** and an operator that **aggregates the state updates** into a single on-chain update. It should be straight forward to see how we can translate this to the parachain terms. The state transition function for a roll_up-like parachain would be updating the state (in practice, most likely a merkle tree which would be easily verifiable) from the user inputs. The operator would act as the collator node which would aggregate the state and create the zk-SNARK proof which it would hand to the relay chain validators for verification. +서브스트레이트(Substrate)와 Cumulus는 블록체인 포맷을 추상화 한 PDK를 제공하지만 패러체인(parachain)이 블록체인이 될 필요는 없습니다. 예를 들어, 패러체인(parachain)은 위의 두 가지 제약 조건, 즉 _상태 전이 함수 (state transition function)_ 및 _검사기 노드(collator node)_ 를 가 있어야 합니다. 다른 모든 것은 PDK를 구현하는 사람에게 달려있습니다. -## Build a PDK +PDK에 대한 흥미로운 아이디어 중 하나는 개발자가 snark 기반 parachains를 만들 수있는 [roll_up](https://ethresear.ch/t/roll-up-roll-back-snark-side-chain-17000-tps/3675)키트에 대한 것입니다. -If you or your team are interested in developing a PDK feel free to open an issue on the W3F collaboration repository for comment. There may be grants available for this type of work. +roll_up 기록을 검토하면 시스템은 **상태(state)**를 업데이트하는 사용자와 **합쳐진 상태 업데이트(aggregates the state upate)** 를 단일 온-체인에 넣는 운영자, 이 두 가지 역할을 사용한다는 것을 알 수 있습니다.roll_up을 패러체인(parachain)용어로 바꾸는 방법은 쉬워야 합니다. roll_up-like 패러체인(parachain)에 대한 상태전이 함수는 상태 (실제로는 쉽게 증명할 수있는 머클트리 일 가능성이 높음)를 유저 입력(user inputs)에서 업데이트합니다. 오퍼레이터는 상태를 집계하고 검사(verification)을 위해 릴레이 체인 밸리데이터로 전달할 zk-SNARK 증명을 생성하는 검사기(collator) 노드로 작동합니다. + +## PDK 만들기 + +만약 당신이나 당신의 팀이 PDK 개발에 관심이 있다면 W3F 협업 리포지토리에서 이슈를 만들어서 자유롭게 의견을 말해주세요. 이런 일에 사용할 수있는 지원금이 있을 수 있습니다. diff --git a/docs/polkadot/build/rust-style-guide_KR.md b/docs/polkadot/build/rust-style-guide_KR.md index 3cd7ce90..2f10bd89 100644 --- a/docs/polkadot/build/rust-style-guide_KR.md +++ b/docs/polkadot/build/rust-style-guide_KR.md @@ -2,11 +2,10 @@ - 들여쓰기(Indent)는 탭(tab)을 사용합니다. - 코드 한 줄은 예외적인 경우에만 80 자 이상이어야 하며 120자를 넘지 않아야합니다. 이 목적으로 탭은 글자 4개의 너비 입니다. -- Indent levels should be greater than 5 only in exceptional circumstances and certainly no greater than 8. If they are greater than 5, then consider using `let` or auxiliary functions in order to strip out complex inline expressions. - 들여쓰기 레벨은 예외적인 상황에서만 5보다 커야하며 8보다 크지 않아야 합니다. 5보다 크면 복잡한 인라인 표현식을 제거하기 위해`let` 또는 보조 함수를 사용하는 것을 고려하십시오. -- Never have spaces on a line prior to a non-whitespace character - 공백이 없는 글자보다 먼저 줄에 공백을 두지 마십시오.( code 작성이나 주석 작성시 스페이스바를 먼저 쓰지 말라는 얘기 - 역자 주) - Follow-on lines are only ever a single indent from the original line. + ```rust fn calculation(some_long_variable_a: i8, some_long_variable_b: i8) -> bool { let x = some_long_variable_a * some_long_variable_b @@ -15,7 +14,9 @@ fn calculation(some_long_variable_a: i8, some_long_variable_b: i8) -> bool { x > 10 } ``` -- Indent level should follow open parens/brackets, but should be collapsed to the smallest number of levels actually used: + +- 들여 쓰기 수준은 중괄호('{}'를 의미)/소괄호('()'를 의미)를 따라야하지만 실제 사용되는 최소 수준으로 축소해야합니다. + ```rust fn calculate( some_long_variable_a: f32, @@ -32,6 +33,7 @@ fn calculate( )) / (2 * some_long_variable_a) } ``` + - `where` is indented, and its items are indented one further - Argument lists or function invocations too long to fit on one line are indented similarly to code blocks, and once one param is indented in such a way, all others should be, too. Run-on parameter lists are also acceptable for single-line run-ons of basic function calls. diff --git a/docs/polkadot/build/smart-contracts.md b/docs/polkadot/build/smart-contracts.md index 7d8161fa..1440fd41 100644 --- a/docs/polkadot/build/smart-contracts.md +++ b/docs/polkadot/build/smart-contracts.md @@ -1,58 +1,40 @@ # Smart Contracts -The Polkadot relay chain will not support smart contracts natively. However, parachains on Polkadot will support smart contracts. There are already announced projects such as [Edgeware](https://edgewa.re), and thanks to the Substrate built-in [contract module](https://crates.parity.io/srml_contract/index.html), it is likely that more parachains will support this feature. - -Polkadot 릴레이 체인은 스마트 계약을 기본적으로 지원하지 않습니다. 그러나 Polkadot의 낙하산은 현명한 계약을 지원합니다. 이미 [Edgeware]와 같은 기탁 된 프로젝트와 기판 내장 [계약 모듈] 덕분에 더 많은 낙하산이이 기능을 지원할 가능성이 있습니다. +폴카닷(Polkadot) 릴레이 체인은 스마트 컨트랙트를 기본적으로 지원하지 않습니다. 그러나 폴카닷(Polkadot)의 패러체인(parachain)은 스마트 컨트랙트를 지원합니다. 이미 [Edgeware](https://edgewa.re)와 같은 발표된 프로젝트와 서브스트레이트 내장 [컨트랙트 모듈](https://crates.parity.io/srml_contract/index.html)로 인해 더 많은 패러체인(parachain)이 이 기능을 지원할 수 있습니다. ## Resources -Here are the list of current resources available to developer who want to get started writing smart contracts to deploy on parachains based on Substrate. - -Substrate 기반의 낙하산에 전개 할 스마트 계약서 작성을 시작하려는 개발자가 현재 사용할 수있는 자원 목록입니다. - -- [ink!](https://github.com/paritytech/ink) - Parity's ink to write smart contracts. -- [Deploying your first contract](https://github.com/paritytech/ink/wiki/Deploying-Your-First-Contract) - Guide to deploy the provided `flipper` contract. -- [Writing your first contract](https://github.com/paritytech/ink/wiki/Writing-Your-First-Contract) - Guide to how one would write the `flipper` contract. -- [Substrate contracts workshop](https://shawntabrizi.github.io/substrate-contracts-workshop/#/) - Walks you through the basics of using `ink!` and writing an ERC20 token. - -## Examples - -Collected below are some community examples of smart contracts in `ink!`. Are you working on a smart contract example? Ask us to add it to this page! +Substrate 기반의 패러체인(parachain)에 배포 할 스마트 컨트랙트 작성을 시작하려는 개발자가 현재 사용할 수있는 리소스 목록입니다. -아래에 수집 된 것은 스마트 계약의 커뮤니티 예제입니다. 똑똑한 계약의 예를 다루고 있습니까? 이 페이지에 추가하도록 요청하십시오! +- [ink!](https://github.com/paritytech/ink) - 스마트 컨트랙트를 작성하기 위한 Parity의 ink. +- [첫번째 컨트랙트 배포하기](https://github.com/paritytech/ink/wiki/Deploying-Your-First-Contract) - 제공되는 `flipper` 컨트랙트 배포 가이드. +- [첫번째 컨트랙트 작성하기](https://github.com/paritytech/ink/wiki/Writing-Your-First-Contract) - `flipper` 컨트랙트를 어떻게 작성하는지에 대한 가이드. +- [서브스트레이트 컨트랙트 워크샵 (Substrate contracts workshop)](https://shawntabrizi.github.io/substrate-contracts-workshop/#/) - `ink!`를 사용하고 ERC20 토큰을 어떻게 작성하는지에 대한 과정을 안내합니다. -- [Ownable](https://github.com/JesseAbram/foRust/) - Port of the OpenZeppelin `Ownable` contract. +## 예시 -## What is the difference between developing a smart contract versus a parachain? +아래는 스마트 컨트랙트의 커뮤니티 예시들 입니다. 스마트 컨트랙트 예시에 대해서 작업하고 있다면 이 페이지에 추가 하도록 요청 할 수 있습니다! -### Layer of Abstraction +- [Ownable](https://github.com/JesseAbram/foRust/) - OpenZeppelin `Ownable` 컨트랙트 포팅 구현체. -When you write a smart contract you are creating the instructions which will be deployed and associated to a specific chain address. +## 스마트 컨트랙트와 패러체인의 배포에는 어떤 차이점이 있나요? -현명한 계약서를 작성할 때 특정 체인 주소에 배포되고 연관 될 지침을 작성합니다. +### 추상화 레이어 (Layer of Abstraction) +스마트 컨트랙트를 작성할 때 특정 체인 주소에 배포되고 연관되는 지침을 작성합니다. -In comparison, a runtime module is the entire logic of a chain's state transitions (what's called a state transition function). +비교해 보면, 런타임 모듈은 체인의 상태 전이 함수라고하는 상태 전이 로직의 전체 로직입니다. -비교해 보면, 런타임 모듈은 체인의 상태 전이 논리 (상태 전이 함수라고하는)의 전체 논리입니다. +스마트 컨트랙트는 업그레이드 가능성을 의식적으로 구현해야하며 패러체인(parachains)은 루트 명령이나 거버넌스 모듈을 통해 코드를 완전히 교체 할 수 있는 기능이 있어야 합니다. -Smart contracts must consciously implement upgradeability while parachains will have the ability to swap out their code entirely through a root command or via the governance module. +스마트 컨트랙트를 작성할 경우에는 결국 자체 환경이 있는 타겟 체인에 배포됩니다. 패러체인(Parachains)을 사용하면 개발자가 자신의 체인 환경을 선언 할 수 있을 뿐만 아니라 다른 사람들이 스마트 컨트랙트를 작성할 수 있습니다. -현명한 계약은 업그레이드 가능성을 의식적으로 구현해야하며 parachains는 루트 명령이나 관리 모듈을 통해 코드를 완전히 교체 할 수 있어야합니다 +### 가스 수수료 (Gas Fees) -When you build a smart contract, it will be eventually be deployed to a target chain with its own environment. Parachains allow the developer to declare the environment of their own chain, even allowing others to write smart contracts for it. +스마트 컨트랙트가 자체 실행을 제한하는 방법을 찾지 않으면 전체 노드가 DOS 공격에 취약합니다. 예를 들어 스마트 컨트랙트의 무한 루프는 체인 전체의 계산 자원을 소비하여 다른 사람이 사용하지 못하도록 할 수 있습니다. [halting problem](https://en.wikipedia.org/wiki/Halting_problem)은 강력한 프로그래밍 언어를 사용하면 프로그램이 실행을 중단할지 여부를 미리 알 수 없다는 것을 보여줍니다. 비트코인과 같은 일부 플랫폼은 매우 제한된 스크립팅 언어를 제공함으로써 이러한 제약을 극복합니다. 이더리움과 같은 다른 플랫폼들은 스마트 컨트랙트 "가스"를 통해 자신의 코드를 실행할 수있는 권리를 "청구"합니다. 스마트 컨트랙트가 실행이 중단되지 않는 상태가 되면 결국에는 가스가 없어져서 실행이 중단되고 스마트 컨트랙트로 만들어진 모든 상태 전이가 롤백됩니다. -현명한 계약을 맺으면 결국 자체 환경이있는 대상 체인에 배포됩니다. Parachains를 사용하면 개발자가 자신의 체인 환경을 선언 할 수 있으며 다른 사람들이 스마트 계약을 작성할 수 있습니다. +패러체인(Parachains)는 임의로 강력한 프로그래밍 언어를 구현할 수 있으며 자체적인 로직에 대한 가스 개념을 포함하지 않습니다. 이는 어떤 기능을 개발자가 쉽게 구현할 수 있다는 것을 의미하지만, 종료 조건이 없는 루프와 같은 _절대 구현하지 말아야_ 할 일부 구조가 있다는 의미이기도 합니다. 종료가 명확하지 않는 복잡한 루프와 같은 특정 논리를 스마트 컨트랙트가 아닌 레이어에 두거나 완전히 제거하는 것이 현명한 선택이 될 수 있습니다. -### Gas Fees - -Smart contracts must find a way to limit their own execution, or else full nodes are vulnerable to DOS attacks. An infinite loop in a smart contract, for example, could consume the computational resources of an entire chain, preventing others from using it. The [halting problem](https://en.wikipedia.org/wiki/Halting_problem) shows that with a powerful enough language, it is impossible to know ahead of time whether or not a program will ever cease execution. Some platforms, such as Bitcoin, get around this constraint by providing a very restricted scripting language. Others, such as Ethereum, "charge" the smart contract "gas" for the rights to execute their code. If a smart contract does get into a state where execution will never halt, it eventually runs out of gas, ceases execution, and any state transition that would have been made by the smart contract is rolled back. - -스마트 계약은 자체 실행을 제한하는 방법을 찾아야합니다. 그렇지 않으면 전체 노드가 DOS 공격에 취약합니다. 예를 들어 똑똑한 계약의 무한 루프는 체인 전체의 계산 자원을 소비하여 다른 사람이 사용하지 못하도록 할 수 있습니다. [중단 문제]는 강력한 강력한 언어를 사용하면 프로그램 실행을 중단할지 여부를 미리 알 수 없습니다. Bitcoin과 같은 일부 플랫폼은 매우 제한된 스크립팅 언어를 제공함으로써 이러한 제약을 극복합니다. 에테 리엄 (Ethereum)과 같은 다른 사람들은 자신의 코드를 실행할 수있는 권리를 "똑똑히"청구한다. 똑똑한 계약이 실행이 중단되지 않는 상태가되면 결국에는 가스가 없어져 실행이 중단되고 스마트 계약에 의한 상태 전환이 롤백됩니다. - -Parachains can implement arbitrarily powerful programming languages and also contain no notion of gas for their own native logic. This means that some functionality is easier to implement for the developer, but it also means there are some constructs, such as a loop without a terminating condition, which should _never_ be implemented. Leaving certain logic, such as complex loops which could possibly run indefinitely, to a non-smart contract layer, or even trying to eliminate it entirely, will often be a wiser choice. -Parachains는 임의로 강력한 프로그래밍 언어를 구현할 수 있으며 자체 고유 논리에 대한 가스 개념을 포함하지 않습니다. 이것은 일부 기능을 개발자가 쉽게 구현할 수 있음을 의미하지만, 구현하지 않아야하는 종료 조건이없는 루프와 같은 일부 구성이 있음을 의미합니다. 무한히 실행될 수있는 복잡한 루프와 같은 특정 논리를 비 스마트 계약 계층에 남겨 두거나 심지어 완전히 제거하려는 경우 현명한 선택이 될 수 있습니다. - -## Resources +## 참고자료들 (Resources) -- [When should I build a Substrate runtime versus a Substrate smart contract](https://stackoverflow.com/a/56041305) - From a technical standpoint answers the question of when a developer might choose to develop a runtime versus a smart contract. +- [서브스트레이트(Substrate) 런타임과 서브스트레이트(Substrate) 스마트 컨트랙트는 언제 만들어야 되나요?](https://stackoverflow.com/a/56041305) - 기술적 관점에서 볼 때 개발자가 런타임 컨트랙트를 개발할지 스마트 컨트랙트를 개발할 것인지에 대한 질문에 대답합니다. diff --git a/docs/polkadot/build/tools/index_KR.md b/docs/polkadot/build/tools/index_KR.md index cf4b3164..49ff8982 100644 --- a/docs/polkadot/build/tools/index_KR.md +++ b/docs/polkadot/build/tools/index_KR.md @@ -14,12 +14,12 @@ - [Bonds oo7 Polkadot UI](https://github.com/paritytech/substrate-ui) - Bonds oo7 라이브러리로 만들어진 지갑. - [Polkawallet](https://polkawallet.io/) - 아이폰(iOs)과 안드로이드(Android)를 둘 다 지원하는 폴카닷 모바일 월렛(mobile wallet for Polkadot). 현재 개발중이며 베타버전은 다운로드가 가능합니다. 이 [GitHub](https://github.com/polkawallet-io/polkawallet-RN)링크에서 확인하세요. - [SpeckleOS](https://www.speckleos.io/) - 브라우저 확장 월렛, 개발중입니다.- 이 [GitHub](https://github.com/SpeckleOS/speckle-browser-extension)에서 진행사항을 확인 할 수 있습니다. -- [ImageWallet](https://www.reddit.com/r/dot/comments/ah3py1/introducing_alpha_version_of_httpsimagewalletio/) - Cross-chain wallet with visuals. **In development with planned support for Polkadot and all Substrate chains.** +- [ImageWallet](https://www.reddit.com/r/dot/comments/ah3py1/introducing_alpha_version_of_httpsimagewalletio/) - 시각화된 크로스 체인 월렛. **폴카닷(Polkadot)과 모든 서브스트레이트 체인에 대해서 지원이 계획되어 있으며 개발중입니다.** ## 네트워크 모니터링 및 리포팅 툴 (Network Monitoring & Reporting) -- [Polkadot Telemetry Service](https://telemetry.polkadot.io/) - Network information including what nodes are running the chain, what software versions they are running, sync status, and map showing where they are located. -- Polkabot - Polkadot network monitoring and reporting using Riot chat. Users may create custom bot plugins. [Blogpost](https://medium.com/polkadot-network/polkabot-a3dba18c20c8). [Github Repository](https://gitlab.com/Polkabot/polkabot) +- [Polkadot Telemetry Service](https://telemetry.polkadot.io/) - 체인을 실행하는 노드, 어떤 소프트웨어 버전 실행중인지, 동기화 상태와 어디에 위치하는지가 표시된 맵 등의 네트워크 정보를 보여줍니다. +- Polkabot - Riot chat을 이용해서 폴카닷 네트워크 모니터링과 리포팅을 합니다. 유저는 봇 플러그인을 만들 수 있습니다. [Blogpost](https://medium.com/polkadot-network/polkabot-a3dba18c20c8). [Github Repository](https://gitlab.com/Polkabot/polkabot) ## 러스트 (Rust) @@ -49,7 +49,7 @@ [Polkadot-JS](https://polkadot.js.org)의 문서들은 폴카닷을 좀 더 깊이 이해하는데 좋은 시작 포인트라고 할 수 있습니다. -로컬 노드(local node)를 설정하고 시작하서 작동시키면 일반 [Polkadot 익스플로러](https://polkadot.js.org/apps/#/explorer))를 통해 인터렉션 할 수 있습니다. +로컬 노드(local node)를 설정하고 작동시키면 [Polkadot 익스플로러](https://polkadot.js.org/apps/#/explorer)를 통해 인터렉션 할 수 있습니다. ### 라이브러리들 (Libraries) @@ -57,8 +57,8 @@ Polkadot-JS Common은 @polkadot 네임 스페이스 내의 모든 프로젝트에서 사용하는 다양하고 유용한 유틸리티 기능을 제공합니다. 그리고 다음과 같은 여러가지 내부 유틸리티 패키지로 분할됩니다. 문서 및 사용법은 [Polkadot-JS / Common API 문서 링크](https://polkadot.js.org/common/)를 참고하세요. -- [@polkadot/keyring](https://polkadot.js.org/common/keyring/) JavaScript로 계정을 생성 /로드하거나, 지갑을 만드는데 도움이 되거나 또는 체인에 무언가 쓸(Write) 필요가 있는 그 어떤 애플리케이션에 도움이 되는 툴 입니다. [관련 예시 참고 링크](https://polkadot.js.org/common/examples/keyring/) -- [@polkadot/util](https://polkadot.js.org/common/util/) 문자열 (String)이 Hex 인코딩이 되었는지 등을 확인 할 때 쓰는 유용한 유틸리티 +- [@polkadot/keyring](https://polkadot.js.org/common/keyring/) JavaScript로 계정을 생성/로드하거나, 지갑을 만드는데 도움이 되거나 또는 유저가 체인에 무언가 쓸(Write) 필요가 있는 애플리케이션에 도움이 되는 툴 입니다. [관련 예시 참고 링크](https://polkadot.js.org/common/examples/keyring/) +- [@polkadot/util](https://polkadot.js.org/common/util/) 문자열 (String)이 Hex 인코딩이 되었는지 등을 확인 할 때 쓰는 유용한 유틸리티. - [@polkadot/util-crypto](https://polkadot.js.org/common/util-crypto/) Polkadot로 개발하는 동안 유용하게 사용할 수있는 암호 유틸리티. #### Bonds oo7 diff --git a/docs/polkadot/build/tools/subkey_KR.md b/docs/polkadot/build/tools/subkey_KR.md index 2f4717f1..b9b0514d 100644 --- a/docs/polkadot/build/tools/subkey_KR.md +++ b/docs/polkadot/build/tools/subkey_KR.md @@ -12,7 +12,7 @@ subkey generate ``` -새 계정의 니모닉(mnemonic phrase)과 시드, 공개 키 및 주소를 제공합니다. 어떤 누구에게도 당신의 니모닉이나 시드를 공유하지 마세요. (그렇지 않다면) 당신의 자금에 접속 할 수 있습니다 . 누군가 당신에게 이체를 하고 있다면 **Adress** 만 필요합니다. +새 계정의 니모닉(mnemonic phrase)과 시드, 공개 키 및 주소를 제공합니다. 어떤 누구에게도 당신의 니모닉이나 시드를 공유하지 마세요. 만약 공유한다면 당신의 자산에 접속 할 수 있게 됩니다. 누군가 당신에게 이체를 하고 있다면 **Address** 만 필요합니다. ### Key 검사하기(Inspecting a key) diff --git a/docs/polkadot/learn/bridges_KR.md b/docs/polkadot/learn/bridges_KR.md index 24989dfa..69f3e458 100644 --- a/docs/polkadot/learn/bridges_KR.md +++ b/docs/polkadot/learn/bridges_KR.md @@ -4,7 +4,7 @@ 현재 Polkadot 에서는 아래오 같은 세가지 다른 종류의 브릿징(bridging)이 있습니다. -* _브릿징 컨트랙트_(_Bridge contracts_) -Polkadot과 외부 블록체인 간 브릿지로 배포된 스마트 컨트랙트. +* _브릿지 컨트랙트_(_Bridge contracts_) -Polkadot과 외부 블록체인 간 브릿지로 배포된 스마트 컨트랙트. * _크로스-패러체인 통신_(_Cross-parachain communication_) - 컨트랙트가 필요 없음. diff --git a/docs/polkadot/learn/consensus_KR.md b/docs/polkadot/learn/consensus_KR.md index ca7a1bc5..57361d93 100644 --- a/docs/polkadot/learn/consensus_KR.md +++ b/docs/polkadot/learn/consensus_KR.md @@ -28,7 +28,7 @@ Polkadot의 합의 프로토콜에 관해 이야기 할 때 사용하는 GRANDPA GRANDPA (GHOST-based Recursive ANcestor Deriving Prefix Agreement)는 Polkadot relay chain을 위해 구현된 Finality 도구입니다. -노드의 2/3이 네트워크에 대해 정직하고 20%(1/5)의 비잔틴 노드를 비동기 세팅에서 대처 할 수있는 부분 동기식 네트워크 모델(partially synchronous network model)에서 작동합니다. +노드의 2/3가 네트워크에 대해 정직하고 20%(1/5)의 비잔틴 노드를 비동기 세팅에서 대처 할 수있는 부분 동기식 네트워크 모델(partially synchronous network model)에서 작동합니다. 눈에 띄는 차이점은 GRANDPA가 블록이 아닌 체인에 대한 합의에 도달한다는 것입니다. GRANDPA에 대한 자세한 내용은 W3F Research 페이지의 [GRANDPA 링크](http://research.web3.foundation/en/latest/polkadot/GRANDPA/)를 참조하세요. From 371adf6d910429a262304d05e6bc9a270d88b773 Mon Sep 17 00:00:00 2001 From: cmcm2222 Date: Wed, 10 Jul 2019 18:37:46 +0900 Subject: [PATCH 5/9] add Korean path in mkdocs.yml --- mkdocs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/mkdocs.yml b/mkdocs.yml index 7e7874ae..8c29363a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -59,6 +59,7 @@ nav: - Other Languages: - Chinese: lang/chinese/index.md - Japanese: lang/japanese.md + - Korean: lang/korean/index.md - News: news.md # Configuration for the Material theme From b662220b1a524f6c10a341d516f564c9cc35c585 Mon Sep 17 00:00:00 2001 From: cmcm2222 Date: Wed, 10 Jul 2019 19:04:34 +0900 Subject: [PATCH 6/9] translations moves to lang/korean . --- docs/community_KR.md | 27 ------ .../korean/build/build-with-polkadot.md} | 0 .../korean/build/cumulus.md} | 0 .../korean/build/deploy-parachains.md} | 0 .../korean/build/dev-roadmap.md} | 0 .../korean/build/examples/index.md} | 0 .../korean/build/extrinsic-format.md} | 0 .../korean/build/hackathon.md} | 0 .../korean/build/index.md} | 0 .../korean/build/networks.md} | 0 .../pdk_KR.md => lang/korean/build/pdk.md} | 0 docs/lang/korean/build/smart-contracts.md | 40 ++++++++ .../korean/build/tools/index.md} | 0 .../korean/build/tools/subkey.md} | 0 docs/{index_KR.md => lang/korean/index.md} | 0 docs/news_KR.md | 14 --- docs/polkadot/build/smart-contracts.md | 41 +++++---- ...\354\247\270\353\241\234 parachains_KR.md" | 58 ------------ ...10\354\247\270\353\241\234 phragmen_KR.md" | 44 --------- docs/polkadot/learn/DOT_KR.md | 50 ---------- docs/polkadot/learn/PRE_KR.md | 23 ----- docs/polkadot/learn/bridges_KR.md | 40 -------- docs/polkadot/learn/consensus_KR.md | 92 ------------------- docs/polkadot/learn/cryptography_KR.md | 23 ----- docs/polkadot/learn/index_KR.md | 29 ------ docs/polkadot/learn/introduction_KR.md | 35 ------- docs/polkadot/learn/randomness_KR.md | 21 ----- docs/polkadot/learn/spree_KR.md | 23 ----- docs/polkadot/learn/wasm_KR.md | 14 --- docs/research_KR.md | 3 - 30 files changed, 61 insertions(+), 516 deletions(-) delete mode 100644 docs/community_KR.md rename docs/{polkadot/build/build-with-polkadot_KR.md => lang/korean/build/build-with-polkadot.md} (100%) rename docs/{polkadot/build/cumulus_KR.md => lang/korean/build/cumulus.md} (100%) rename docs/{polkadot/build/deploy-parachains_KR.md => lang/korean/build/deploy-parachains.md} (100%) rename docs/{polkadot/build/dev-roadmap_KR.md => lang/korean/build/dev-roadmap.md} (100%) rename docs/{polkadot/build/examples/index_KR.md => lang/korean/build/examples/index.md} (100%) rename docs/{polkadot/build/extrinsic-format_KR.md => lang/korean/build/extrinsic-format.md} (100%) rename docs/{polkadot/build/hackathon_KR.md => lang/korean/build/hackathon.md} (100%) rename docs/{polkadot/build/index_KR.md => lang/korean/build/index.md} (100%) rename docs/{polkadot/build/networks_KR.md => lang/korean/build/networks.md} (100%) rename docs/{polkadot/build/pdk_KR.md => lang/korean/build/pdk.md} (100%) create mode 100644 docs/lang/korean/build/smart-contracts.md rename docs/{polkadot/build/tools/index_KR.md => lang/korean/build/tools/index.md} (100%) rename docs/{polkadot/build/tools/subkey_KR.md => lang/korean/build/tools/subkey.md} (100%) rename docs/{index_KR.md => lang/korean/index.md} (100%) delete mode 100644 docs/news_KR.md delete mode 100644 "docs/polkadot/learn/7\353\262\210\354\247\270\353\241\234 parachains_KR.md" delete mode 100644 "docs/polkadot/learn/9\353\262\210\354\247\270\353\241\234 phragmen_KR.md" delete mode 100644 docs/polkadot/learn/DOT_KR.md delete mode 100644 docs/polkadot/learn/PRE_KR.md delete mode 100644 docs/polkadot/learn/bridges_KR.md delete mode 100644 docs/polkadot/learn/consensus_KR.md delete mode 100644 docs/polkadot/learn/cryptography_KR.md delete mode 100644 docs/polkadot/learn/index_KR.md delete mode 100644 docs/polkadot/learn/introduction_KR.md delete mode 100644 docs/polkadot/learn/randomness_KR.md delete mode 100644 docs/polkadot/learn/spree_KR.md delete mode 100644 docs/polkadot/learn/wasm_KR.md delete mode 100644 docs/research_KR.md diff --git a/docs/community_KR.md b/docs/community_KR.md deleted file mode 100644 index bed207ae..00000000 --- a/docs/community_KR.md +++ /dev/null @@ -1,27 +0,0 @@ -# 커뮤니티 - -The Polkadot 커뮤니티는 매일 확장되고 있습니다. 아래는 가장 핵심적인 커뮤니티 채널들의 리스트입니다. - -## General - -- [Polkadot PoC-4 Testnet ("Alexander")에 참여하세요](https://polkadot.js.org/apps/#/explorer) - 최신 Polkadot testnet을 사용해 볼 수 있는 UI 대시보드. -- [Polkadot 깃헙](https://github.com/paritytech/polkadot/) - Parity가 유지 및 관리하는 Polkadot 실행환경 Rust 구현체 저장소 -- [Polkadot 밋업](https://github.com/w3f/Web3-collaboration/blob/master/meetups.md) - 밋업을 개최하거나 모금활동, 그리고 관련된 운영자료들. - -## Riot - -- [Polkadot 비기너 라운지](https://riot.im/app/#/room/#polkadotnoobs:matrix.org) - Polkadot을 처음 시작하는 사람들을 위한 곳입니다. **질문하기 좋은 장소예요!** -- [Polkadot Watercooler Chat](https://riot.im/app/#/room/#polkadot-watercooler:matrix.org) - Polkadot에 대해서 수다떠는 방. -- [섭스트레이트 테크니컬 관련](https://riot.im/app/#/room/#substrate-technical:matrix.org) - 섭스트레이트(Substrate)를 빌드하고 구동하는데 관련된 기술적인 질문을 하는 곳. - -## Socials - -- [Polkadot newsletter 구독하기](https://polkadot.network/#roadmap) - 웹 페이지 밑에서 Email 가입 신청서를 이용할 수 있습니다. -- [Polkadot 텔레그램 커뮤티니](https://t.me/polkadotofficial) - Polkadot에 대해서 토론할 수 있는 공식 텔레그램 채팅방 (채팅전에 채팅 규칙에 대해서 읽어주세요). -- [Polkadot 트위터](https://twitter.com/polkadotnetwork) -공식 Polkadot 트위터 계정. -- [Polkadot 레딧](https://www.reddit.com/r/dot/) - 공식 Polkadot 레딧. -- [Polkadot 유튜브 채널](https://www.youtube.com/channel/UCB7PbjuZLEba_znc7mEGNgw) - Polkadot 창업자가 만든 비디오 자료와 Polkadot이 만드는 네트워크와 비전에 대한 비디오 - -## Ecosystem - -- [Polkadot을 기반으로 하는 팀 리스트](https://forum.web3.foundation/t/teams-building-on-polkadot/67) - Polkadot이나 Substrate을 기반으로 해서 재정적 지원을 받는 팀 리스트. diff --git a/docs/polkadot/build/build-with-polkadot_KR.md b/docs/lang/korean/build/build-with-polkadot.md similarity index 100% rename from docs/polkadot/build/build-with-polkadot_KR.md rename to docs/lang/korean/build/build-with-polkadot.md diff --git a/docs/polkadot/build/cumulus_KR.md b/docs/lang/korean/build/cumulus.md similarity index 100% rename from docs/polkadot/build/cumulus_KR.md rename to docs/lang/korean/build/cumulus.md diff --git a/docs/polkadot/build/deploy-parachains_KR.md b/docs/lang/korean/build/deploy-parachains.md similarity index 100% rename from docs/polkadot/build/deploy-parachains_KR.md rename to docs/lang/korean/build/deploy-parachains.md diff --git a/docs/polkadot/build/dev-roadmap_KR.md b/docs/lang/korean/build/dev-roadmap.md similarity index 100% rename from docs/polkadot/build/dev-roadmap_KR.md rename to docs/lang/korean/build/dev-roadmap.md diff --git a/docs/polkadot/build/examples/index_KR.md b/docs/lang/korean/build/examples/index.md similarity index 100% rename from docs/polkadot/build/examples/index_KR.md rename to docs/lang/korean/build/examples/index.md diff --git a/docs/polkadot/build/extrinsic-format_KR.md b/docs/lang/korean/build/extrinsic-format.md similarity index 100% rename from docs/polkadot/build/extrinsic-format_KR.md rename to docs/lang/korean/build/extrinsic-format.md diff --git a/docs/polkadot/build/hackathon_KR.md b/docs/lang/korean/build/hackathon.md similarity index 100% rename from docs/polkadot/build/hackathon_KR.md rename to docs/lang/korean/build/hackathon.md diff --git a/docs/polkadot/build/index_KR.md b/docs/lang/korean/build/index.md similarity index 100% rename from docs/polkadot/build/index_KR.md rename to docs/lang/korean/build/index.md diff --git a/docs/polkadot/build/networks_KR.md b/docs/lang/korean/build/networks.md similarity index 100% rename from docs/polkadot/build/networks_KR.md rename to docs/lang/korean/build/networks.md diff --git a/docs/polkadot/build/pdk_KR.md b/docs/lang/korean/build/pdk.md similarity index 100% rename from docs/polkadot/build/pdk_KR.md rename to docs/lang/korean/build/pdk.md diff --git a/docs/lang/korean/build/smart-contracts.md b/docs/lang/korean/build/smart-contracts.md new file mode 100644 index 00000000..1440fd41 --- /dev/null +++ b/docs/lang/korean/build/smart-contracts.md @@ -0,0 +1,40 @@ +# Smart Contracts + +폴카닷(Polkadot) 릴레이 체인은 스마트 컨트랙트를 기본적으로 지원하지 않습니다. 그러나 폴카닷(Polkadot)의 패러체인(parachain)은 스마트 컨트랙트를 지원합니다. 이미 [Edgeware](https://edgewa.re)와 같은 발표된 프로젝트와 서브스트레이트 내장 [컨트랙트 모듈](https://crates.parity.io/srml_contract/index.html)로 인해 더 많은 패러체인(parachain)이 이 기능을 지원할 수 있습니다. + +## Resources + +Substrate 기반의 패러체인(parachain)에 배포 할 스마트 컨트랙트 작성을 시작하려는 개발자가 현재 사용할 수있는 리소스 목록입니다. + +- [ink!](https://github.com/paritytech/ink) - 스마트 컨트랙트를 작성하기 위한 Parity의 ink. +- [첫번째 컨트랙트 배포하기](https://github.com/paritytech/ink/wiki/Deploying-Your-First-Contract) - 제공되는 `flipper` 컨트랙트 배포 가이드. +- [첫번째 컨트랙트 작성하기](https://github.com/paritytech/ink/wiki/Writing-Your-First-Contract) - `flipper` 컨트랙트를 어떻게 작성하는지에 대한 가이드. +- [서브스트레이트 컨트랙트 워크샵 (Substrate contracts workshop)](https://shawntabrizi.github.io/substrate-contracts-workshop/#/) - `ink!`를 사용하고 ERC20 토큰을 어떻게 작성하는지에 대한 과정을 안내합니다. + +## 예시 + +아래는 스마트 컨트랙트의 커뮤니티 예시들 입니다. 스마트 컨트랙트 예시에 대해서 작업하고 있다면 이 페이지에 추가 하도록 요청 할 수 있습니다! + +- [Ownable](https://github.com/JesseAbram/foRust/) - OpenZeppelin `Ownable` 컨트랙트 포팅 구현체. + +## 스마트 컨트랙트와 패러체인의 배포에는 어떤 차이점이 있나요? + +### 추상화 레이어 (Layer of Abstraction) + +스마트 컨트랙트를 작성할 때 특정 체인 주소에 배포되고 연관되는 지침을 작성합니다. + +비교해 보면, 런타임 모듈은 체인의 상태 전이 함수라고하는 상태 전이 로직의 전체 로직입니다. + +스마트 컨트랙트는 업그레이드 가능성을 의식적으로 구현해야하며 패러체인(parachains)은 루트 명령이나 거버넌스 모듈을 통해 코드를 완전히 교체 할 수 있는 기능이 있어야 합니다. + +스마트 컨트랙트를 작성할 경우에는 결국 자체 환경이 있는 타겟 체인에 배포됩니다. 패러체인(Parachains)을 사용하면 개발자가 자신의 체인 환경을 선언 할 수 있을 뿐만 아니라 다른 사람들이 스마트 컨트랙트를 작성할 수 있습니다. + +### 가스 수수료 (Gas Fees) + +스마트 컨트랙트가 자체 실행을 제한하는 방법을 찾지 않으면 전체 노드가 DOS 공격에 취약합니다. 예를 들어 스마트 컨트랙트의 무한 루프는 체인 전체의 계산 자원을 소비하여 다른 사람이 사용하지 못하도록 할 수 있습니다. [halting problem](https://en.wikipedia.org/wiki/Halting_problem)은 강력한 프로그래밍 언어를 사용하면 프로그램이 실행을 중단할지 여부를 미리 알 수 없다는 것을 보여줍니다. 비트코인과 같은 일부 플랫폼은 매우 제한된 스크립팅 언어를 제공함으로써 이러한 제약을 극복합니다. 이더리움과 같은 다른 플랫폼들은 스마트 컨트랙트 "가스"를 통해 자신의 코드를 실행할 수있는 권리를 "청구"합니다. 스마트 컨트랙트가 실행이 중단되지 않는 상태가 되면 결국에는 가스가 없어져서 실행이 중단되고 스마트 컨트랙트로 만들어진 모든 상태 전이가 롤백됩니다. + +패러체인(Parachains)는 임의로 강력한 프로그래밍 언어를 구현할 수 있으며 자체적인 로직에 대한 가스 개념을 포함하지 않습니다. 이는 어떤 기능을 개발자가 쉽게 구현할 수 있다는 것을 의미하지만, 종료 조건이 없는 루프와 같은 _절대 구현하지 말아야_ 할 일부 구조가 있다는 의미이기도 합니다. 종료가 명확하지 않는 복잡한 루프와 같은 특정 논리를 스마트 컨트랙트가 아닌 레이어에 두거나 완전히 제거하는 것이 현명한 선택이 될 수 있습니다. + +## 참고자료들 (Resources) + +- [서브스트레이트(Substrate) 런타임과 서브스트레이트(Substrate) 스마트 컨트랙트는 언제 만들어야 되나요?](https://stackoverflow.com/a/56041305) - 기술적 관점에서 볼 때 개발자가 런타임 컨트랙트를 개발할지 스마트 컨트랙트를 개발할 것인지에 대한 질문에 대답합니다. diff --git a/docs/polkadot/build/tools/index_KR.md b/docs/lang/korean/build/tools/index.md similarity index 100% rename from docs/polkadot/build/tools/index_KR.md rename to docs/lang/korean/build/tools/index.md diff --git a/docs/polkadot/build/tools/subkey_KR.md b/docs/lang/korean/build/tools/subkey.md similarity index 100% rename from docs/polkadot/build/tools/subkey_KR.md rename to docs/lang/korean/build/tools/subkey.md diff --git a/docs/index_KR.md b/docs/lang/korean/index.md similarity index 100% rename from docs/index_KR.md rename to docs/lang/korean/index.md diff --git a/docs/news_KR.md b/docs/news_KR.md deleted file mode 100644 index b2f726f2..00000000 --- a/docs/news_KR.md +++ /dev/null @@ -1,14 +0,0 @@ -# 폴카닷(Polkadot)의 주간 뉴스 - -This Week in Polkadot is a weekly aggregation of the top news in the Polkadot space, maintained by Rory from W3F. - -- [This Week in Polkadot 10](https://www.reddit.com/r/dot/comments/bm5bmc/this_week_in_polkadot/) - 5월 8일, 2019 -- [This Week in Polkadot 9](https://www.reddit.com/r/dot/comments/bj3mvo/this_week_in_polkadot/) - 4월 30일, 2019 -- [This Week in Polkadot 8](https://www.reddit.com/r/dot/comments/bgkjhj/this_week_in_polkadot/) - 4월 23알, 2019 -- [This Week in Polkadot 7](https://www.reddit.com/r/dot/comments/bdyg5w/this_week_in_polkadot/) - 4월 16일, 2019 -- [This Week in Polkadot 6](https://www.reddit.com/r/dot/comments/bayezl/this_week_in_polkadot/) - 4월 8일, 2019 -- [This Week in Polkadot 5](https://www.reddit.com/r/dot/comments/b87807/this_week_in_polkadot/) - 4월 1일, 2019 -- [This Week in Polkadot 4](https://www.reddit.com/r/dot/comments/b532hl/this_week_in_polkadot/) - 3월 25일, 2019 -- [This Week in Polkadot 3](https://www.reddit.com/r/dot/comments/b1ja5z/this_week_in_rdot_march_15_2019/) - 3월 15일, 2019 -- [This Week in Polkadot 2](https://www.reddit.com/r/dot/comments/av73tg/this_week_in_rdot_february_26_2019_week_2/) - 2월 26일, 2019 -- [This Week in Polkadot](https://www.reddit.com/r/dot/comments/as39xj/this_week_in_rdot_february_18_2019/) - 2월 18일, 2019 \ No newline at end of file diff --git a/docs/polkadot/build/smart-contracts.md b/docs/polkadot/build/smart-contracts.md index 1440fd41..7ee0ece7 100644 --- a/docs/polkadot/build/smart-contracts.md +++ b/docs/polkadot/build/smart-contracts.md @@ -1,40 +1,41 @@ # Smart Contracts -폴카닷(Polkadot) 릴레이 체인은 스마트 컨트랙트를 기본적으로 지원하지 않습니다. 그러나 폴카닷(Polkadot)의 패러체인(parachain)은 스마트 컨트랙트를 지원합니다. 이미 [Edgeware](https://edgewa.re)와 같은 발표된 프로젝트와 서브스트레이트 내장 [컨트랙트 모듈](https://crates.parity.io/srml_contract/index.html)로 인해 더 많은 패러체인(parachain)이 이 기능을 지원할 수 있습니다. +The Polkadot relay chain will not support smart contracts natively. However, parachains on Polkadot will support smart contracts. There are already announced projects such as [Edgeware](https://edgewa.re), and thanks to the Substrate built-in [contract module](https://crates.parity.io/srml_contract/index.html), it is likely that more parachains will support this feature. ## Resources -Substrate 기반의 패러체인(parachain)에 배포 할 스마트 컨트랙트 작성을 시작하려는 개발자가 현재 사용할 수있는 리소스 목록입니다. +Here are the list of current resources available to developer who want to get started writing smart contracts to deploy on parachains based on Substrate. -- [ink!](https://github.com/paritytech/ink) - 스마트 컨트랙트를 작성하기 위한 Parity의 ink. -- [첫번째 컨트랙트 배포하기](https://github.com/paritytech/ink/wiki/Deploying-Your-First-Contract) - 제공되는 `flipper` 컨트랙트 배포 가이드. -- [첫번째 컨트랙트 작성하기](https://github.com/paritytech/ink/wiki/Writing-Your-First-Contract) - `flipper` 컨트랙트를 어떻게 작성하는지에 대한 가이드. -- [서브스트레이트 컨트랙트 워크샵 (Substrate contracts workshop)](https://shawntabrizi.github.io/substrate-contracts-workshop/#/) - `ink!`를 사용하고 ERC20 토큰을 어떻게 작성하는지에 대한 과정을 안내합니다. +- [ink!](https://github.com/paritytech/ink) - Parity's ink to write smart contracts. +- [Deploying your first contract](https://github.com/paritytech/ink/wiki/Deploying-Your-First-Contract) - Guide to deploy the provided `flipper` contract. +- [Writing your first contract](https://github.com/paritytech/ink/wiki/Writing-Your-First-Contract) - Guide to how one would write the `flipper` contract. +- [Substrate contracts workshop](https://shawntabrizi.github.io/substrate-contracts-workshop/#/) - Walks you through the basics of using `ink!` and writing an ERC20 token. -## 예시 +## Examples -아래는 스마트 컨트랙트의 커뮤니티 예시들 입니다. 스마트 컨트랙트 예시에 대해서 작업하고 있다면 이 페이지에 추가 하도록 요청 할 수 있습니다! +Collected below are some community examples of smart contracts in `ink!`. Are you working on a smart contract example? Ask us to add it to this page! -- [Ownable](https://github.com/JesseAbram/foRust/) - OpenZeppelin `Ownable` 컨트랙트 포팅 구현체. +- [Ownable](https://github.com/JesseAbram/foRust/) - Port of the OpenZeppelin `Ownable` contract. -## 스마트 컨트랙트와 패러체인의 배포에는 어떤 차이점이 있나요? +## What is the difference between developing a smart contract versus a parachain? -### 추상화 레이어 (Layer of Abstraction) +### Layer of Abstraction -스마트 컨트랙트를 작성할 때 특정 체인 주소에 배포되고 연관되는 지침을 작성합니다. +When you write a smart contract you are creating the instructions which will be deployed and associated to a specific chain address. -비교해 보면, 런타임 모듈은 체인의 상태 전이 함수라고하는 상태 전이 로직의 전체 로직입니다. +In comparison, a runtime module is the entire logic of a chain's state transitions (what's called a state transition function). -스마트 컨트랙트는 업그레이드 가능성을 의식적으로 구현해야하며 패러체인(parachains)은 루트 명령이나 거버넌스 모듈을 통해 코드를 완전히 교체 할 수 있는 기능이 있어야 합니다. +Smart contracts must consciously implement upgradeability while parachains will have the ability to swap out their code entirely through a root command or via the governance module. -스마트 컨트랙트를 작성할 경우에는 결국 자체 환경이 있는 타겟 체인에 배포됩니다. 패러체인(Parachains)을 사용하면 개발자가 자신의 체인 환경을 선언 할 수 있을 뿐만 아니라 다른 사람들이 스마트 컨트랙트를 작성할 수 있습니다. +When you build a smart contract, it will be eventually be deployed to a target chain with its own environment. Parachains allow the developer to declare the environment of their own chain, even allowing others to write smart contracts for it. -### 가스 수수료 (Gas Fees) +### Gas Fees -스마트 컨트랙트가 자체 실행을 제한하는 방법을 찾지 않으면 전체 노드가 DOS 공격에 취약합니다. 예를 들어 스마트 컨트랙트의 무한 루프는 체인 전체의 계산 자원을 소비하여 다른 사람이 사용하지 못하도록 할 수 있습니다. [halting problem](https://en.wikipedia.org/wiki/Halting_problem)은 강력한 프로그래밍 언어를 사용하면 프로그램이 실행을 중단할지 여부를 미리 알 수 없다는 것을 보여줍니다. 비트코인과 같은 일부 플랫폼은 매우 제한된 스크립팅 언어를 제공함으로써 이러한 제약을 극복합니다. 이더리움과 같은 다른 플랫폼들은 스마트 컨트랙트 "가스"를 통해 자신의 코드를 실행할 수있는 권리를 "청구"합니다. 스마트 컨트랙트가 실행이 중단되지 않는 상태가 되면 결국에는 가스가 없어져서 실행이 중단되고 스마트 컨트랙트로 만들어진 모든 상태 전이가 롤백됩니다. +Smart contracts must find a way to limit their own execution, or else full nodes are vulnerable to DOS attacks. An infinite loop in a smart contract, for example, could consume the computational resources of an entire chain, preventing others from using it. The [halting problem](https://en.wikipedia.org/wiki/Halting_problem) shows that with a powerful enough language, it is impossible to know ahead of time whether or not a program will ever cease execution. Some platforms, such as Bitcoin, get around this constraint by providing a very restricted scripting language. Others, such as Ethereum, "charge" the smart contract "gas" for the rights to execute their code. If a smart contract does get into a state where execution will never halt, it eventually runs out of gas, ceases execution, and any state transition that would have been made by the smart contract is rolled back. -패러체인(Parachains)는 임의로 강력한 프로그래밍 언어를 구현할 수 있으며 자체적인 로직에 대한 가스 개념을 포함하지 않습니다. 이는 어떤 기능을 개발자가 쉽게 구현할 수 있다는 것을 의미하지만, 종료 조건이 없는 루프와 같은 _절대 구현하지 말아야_ 할 일부 구조가 있다는 의미이기도 합니다. 종료가 명확하지 않는 복잡한 루프와 같은 특정 논리를 스마트 컨트랙트가 아닌 레이어에 두거나 완전히 제거하는 것이 현명한 선택이 될 수 있습니다. +Parachains can implement arbitrarily powerful programming languages and also contain no notion of gas for their own native logic. This means that some functionality is easier to implement for the developer, but it also means there are some constructs, such as a loop without a terminating condition, which should _never_ be implemented. Leaving certain logic, such as complex loops which could possibly run indefinitely, to a non-smart contract layer, or even trying to eliminate it entirely, will often be a wiser choice. +Parachains는 임의로 강력한 프로그래밍 언어를 구현할 수 있으며 자체 고유 논리에 대한 가스 개념을 포함하지 않습니다. 이것은 일부 기능을 개발자가 쉽게 구현할 수 있음을 의미하지만, 구현하지 않아야하는 종료 조건이없는 루프와 같은 일부 구성이 있음을 의미합니다. 무한히 실행될 수있는 복잡한 루프와 같은 특정 논리를 비 스마트 계약 계층에 남겨 두거나 심지어 완전히 제거하려는 경우 현명한 선택이 될 수 있습니다. -## 참고자료들 (Resources) +## Resources -- [서브스트레이트(Substrate) 런타임과 서브스트레이트(Substrate) 스마트 컨트랙트는 언제 만들어야 되나요?](https://stackoverflow.com/a/56041305) - 기술적 관점에서 볼 때 개발자가 런타임 컨트랙트를 개발할지 스마트 컨트랙트를 개발할 것인지에 대한 질문에 대답합니다. +- [When should I build a Substrate runtime versus a Substrate smart contract](https://stackoverflow.com/a/56041305) - From a technical standpoint answers the question of when a developer might choose to develop a runtime versus a smart contract. diff --git "a/docs/polkadot/learn/7\353\262\210\354\247\270\353\241\234 parachains_KR.md" "b/docs/polkadot/learn/7\353\262\210\354\247\270\353\241\234 parachains_KR.md" deleted file mode 100644 index f8e7fc97..00000000 --- "a/docs/polkadot/learn/7\353\262\210\354\247\270\353\241\234 parachains_KR.md" +++ /dev/null @@ -1,58 +0,0 @@ -# Parachains - -## What is a parachain? - -Parachains take their name from the concept of "parallelized" chains which share in the security of the Polkadot relay chain. Parachains are _validatable, globally-coherent dynamic data-structures_ which can connect into the Polkadot network and although most commonly will resemble independent blockchains, there is no specific need for them to be blockchain in nature. - -Parachains는 Polkadot 릴레이 체인의 보안을 공유하는 "병렬화 된"체인 개념에서 이름을 따 왔습니다. Parachains는 Polkadot 네트워크에 연결할 수있는 유효성이 낮은 전역 적으로 일관된 동적 데이터 구조이며 가장 일반적으로 독립적 인 블록 체인과 유사하지만 자연에서 블록 체인이 필요하지는 않습니다. - -Rob Habermeier, a co-founder of Polkadot, [described parachains in the following way](https://medium.com/polkadot-network/polkadot-the-parachain-3808040a769a): - -> A parachain (parallelizable chain) is a simpler form of blockchain, which attaches to the security provided by a ‘relay chain’ rather than providing its own. The relay chain provides security to attached parachains, but also provides a guarantee of secure message-passing between them. - - -parachain (병렬화 가능 체인)은 블록 체인의 더 간단한 형태로, 자체 체인을 제공하는 것이 아니라 '릴레이 체인'이 제공하는 보안에 연결됩니다. 릴레이 체인은 부착 된 낙하산에 보안을 제공 할뿐만 아니라 안전한 낙하산을 보장합니다. - - -The Polkadot architecture allows for the state transitions performed on the parachain to be specified as a Wasm executable. Proofs of new state transitions that occur on a parachain must be validated against the registered state transition function (STF) by validators before the state transition can take place. - -Polkadot 구조는 parachain에서 수행 된 상태 전이가 Wasm 실행 파일로 지정되도록합니다. 파라과이에서 발생하는 새로운 상태 전이의 증거는 상태 전환이 발생할 수 있기 전에 유효성 검사기에 의해 등록 된 상태 전이 함수 (STF)에 대해 유효성을 검사해야합니다. - -## Benefits of parachains - -By connecting to Polkadot a parachain gains two major advantages over an independent _sovereign chain:_ - -- [Shared security](./security.md) -- [Trust-free interchain transactability](./interchain.md) - -## Examples - -- Encrypted Consortium Chains -- High Frequency Chains -- Privacy Chains -- Smart Contract Chains - -## Collators - -Parachains are operated and new blocks are authored by [collator nodes](../node/collator.md) that maintain "full-nodes" of a particular parachain. They retain all necessary information to be able to propose new blocks and execute transactions in a similar way as miners do in traditional PoW blockchains. A block proposed by a collator node will be checked by the validator node before it is accepted as a canonical state transition by the relay chain. - -Parachains가 작동되고 특정 parachain의 "전체 노드"를 유지하는 collator 노드 (../node/collator.md)가 새로운 블록을 작성합니다. 그들은 광부가 전통적인 PoW 블록 체인에서하는 것과 유사한 방식으로 새로운 블록을 제안하고 거래를 수행 할 수 있도록 필요한 모든 정보를 보유합니다. 콜레 이터 노드에 의해 제안 된 블록은 릴레이 체인에 의한 표준 상태 전이로 수락되기 전에 유효성 검사기 노드에 의해 검사됩니다. - -## What is "parachain consensus"? - -"Parachain consensus" is special in that it will follow the Polkadot relay chain. Parachains cannot use other consensus algorithms that provide their own finality, and if they do will be sovereign chains that must bridge to the relay chain. Parachains have control over how blocks are authored and by who. - -"Parachain consensus"는 Polkadot 릴레이 체인을 따를 것이라는 점에서 특별합니다. Parachains는 자신의 최종성을 제공하는 다른 합의 알고리즘을 사용할 수 없으며 릴레이 체인에 연결되어야하는 주권 체인이됩니다. 낙하산은 블록 작성 방법 및 누가 작성자를 제어합니다. -"Parachain consensus - -## How will parachain slots be distributed? - -Parachain slots will be acquirable through auction, please see the [parachain slots](./auction.md) article. - -## Parachain Development Kits (PDKs) - -Parachain Development Kits are a set of tools that enable developers to create their own applications as parachains. For more info see [here](../build/pdk.md). - -## Deploying parachains - -Please see the builder's article on [deploying parachains](../build/deploy-parachains.md). diff --git "a/docs/polkadot/learn/9\353\262\210\354\247\270\353\241\234 phragmen_KR.md" "b/docs/polkadot/learn/9\353\262\210\354\247\270\353\241\234 phragmen_KR.md" deleted file mode 100644 index 6fdaa29b..00000000 --- "a/docs/polkadot/learn/9\353\262\210\354\247\270\353\241\234 phragmen_KR.md" +++ /dev/null @@ -1,44 +0,0 @@ -# Phragmen이 무엇이고 노드 운영자에겐 어떤 의미 인가요? - -## sequential Phragmen method가 뭔가요? - -The sequential Phragmen method is a multi-winner election method introduce by Edvard Phragmen in the 1890s. - -순차적인(Sequential) Phragmen 메소드는 1890 년대 Edvard Phragmen이 소개 한 다중 수상자 선거 방식입니다. - -> The problem that Phragm ́en’s methods try to solve is that of electing a set of a given numbers of persons from a larger set of candidates. Phragm ́en discussed this in the context of a parliamentary election in a multi-member constituency; the same problem can, of course, also occur in local elections, but also in many other situations such as electing a board or a committee in an organization. - -Phragm en의 방법이 해결하려고하는 문제는 더 많은 후보자 중에서 주어진 수의 사람을 선출하는 것입니다. Phragm은 다원 선거구에서 의회 선거의 맥락에서이를 논의했다. 물론 같은 문제는 지방 선거에서도 발생할 수 있지만 조직의 이사회 나위원회 선출과 같은 다른 많은 상황에서도 발생할 수 있습니다. - -Phragmen's sequential method is used in the NPoS algorithm of Polkadot to elect validators based on the weight (amount staked to them by nominators). It also handles equalization of weights among validators after each round. Equalization happens in order to spread nominated DOTs among the wider set of validators and enforce stronger decentralization properties to the network. - -Phragmen의 순차적 방법은 Polkadot의 NPoS 알고리즘에서 가중치 (추천자가 보유한 금액)를 기준으로 유효성 검사기를 선택하는 데 사용됩니다. 또한 각 라운드 후에 유효성 검사기 간의 가중치 균등화를 처리합니다. 균등화는 지명 된 DOT를 광범위한 유효성 검사기 집합으로 전파하고 네트워크에 더 강력한 분산 특성을 적용하기 위해 발생합니다 - -## What does it mean for node operators? - -_Updated as of Alexander v0.4.3_ - -### For nominators - -Currently the `equalise` flag is set to false so equalization will not take place. As a nominator your nomination will stay with the validator that you nominate to. - -현재 'equalise` 플래그는 false로 설정되어 등화가 발생하지 않습니다. 추천인으로서 귀하의 지명은 귀하가 지명 한 유효성 확인 기와 함께있을 것입니다. - -### For validators - -Currently the `equalise` flag is set to false so equalization will not take place. As a validator the nominations you have received will stay with you. - -현재 'equalise` 플래그는 false로 설정되어 등화가 발생하지 않습니다. 유효성 검사기로서 귀하가받은 후보자는 귀하와 함께있을 것입니다. - -## Details - -The implementation of the Phragmen method can be found in the Substrate `srml-staking` crate. It is used in the selection of validators from the available set based on their role preferences (validator or nominator). The election will run for a number of rounds which is equal to that amount of current validators. - -Phragmen 방법의 구현은 Substrate`srml-staking` crate에서 찾을 수 있습니다. 역할 기본 설정 (유효성 검사 자나 추천자)을 기반으로 사용 가능한 세트에서 유효성 검사기를 선택하는 데 사용됩니다. 선거는 현재 유효성 검사기와 동등한 수의 라운드 동안 진행됩니다. - -## External Resources - -- [W3F Research Page on Sequential Phragmen Method](https://research.web3.foundation/en/latest/polkadot/NPoS/4.%20Sequential%20Phragm%C3%A9n%E2%80%99s%20method./) - The formal adaptation of the Phragmen method as applied to Polkadot validators. -- [Python Reference Implementations](https://github.com/w3f/consensus/tree/master/NPoS) - Implementations of Simple and Complicated Phragmen methods. -- [Substrate Implementation](https://github.com/paritytech/substrate/blob/master/srml/staking/src/phragmen.rs) - Rust implementation used in the Substrate Runtime Module Library. -- [Phragmen's and Thiele's Election Methods](https://arxiv.org/pdf/1611.08826.pdf) - 95-page paper explaining Phragmen's election methods in detail. diff --git a/docs/polkadot/learn/DOT_KR.md b/docs/polkadot/learn/DOT_KR.md deleted file mode 100644 index 40f0048c..00000000 --- a/docs/polkadot/learn/DOT_KR.md +++ /dev/null @@ -1,50 +0,0 @@ -# DOT - -## DOT가 무엇인가요? - -BTC가 Bitcoin의 고유한 토큰이거나 Ether이 Ethereum Blockchain의 고유한 토큰인 것과 비슷하게 DOT는 Polkadot 네트워크의 기본 토큰입니다. - -  현재 DOT는 소수점 15 자리를 차지하고 가장 작은 단위는 펨토-닷(Femto-DOT)이라고합니다. DOT가 비트코인이나 이더와 같다면, Femto-DOT와 Satoshi 또는 Wei를 비교할 수 있습니다. - -|단위 |소수점 자리| -|-----|--------| -|Femto| 0 | -|Pico | 3 | -|Nano | 6 | -|Micro| 9 | -|Milli| 12 | -|DOT | 15 | - -## DOT는 무엇에 사용되나요?? - -DOT는 Polkadot에서 다음과 같은 세가지 주요 역할들을 제공합니다. - -(i) 네트워크의 거버넌스에 사용되고, - -(ii) 네트워크 운영을 위해 스테이킹 하고, - -(iii) Polkadot의 체인을 패러체인으로 연결하는 담보로 사용됩니다. - -### 네트워크의 거버넌스로 사용되는 DOTs - -DOT의 첫 번째 기능은 플랫폼의 거버넌스를 Dot의 홀더들이 제어 할 수있는 권리를 주는 것입니다. 거버넌스 메커니즘에 포함될 네트워크 수수료 결정, 패러체인을 추가하거나 제거하기, Polkadot 플랫폼 업그레이드 및 수정과 같은 예외적 인 이벤트 같은 기능들이 포함될 예정입니다. - -거버넌스 메커니즘은 모든 DOT 소지자에게 형식적으로 부여되는 것이 아니라 Polkadot의 기본 코드가 DOT 소지자가 거버넌스에 참여할 수 있도록 할 것 입니다. - -### 합의(consensus)에 사용되는 DOTs - -Polkadot을 뒷받침하는 DOT을 컨센서스 메커니즘을 촉진하는 데 사용합니다. Polkadot은 플랫폼을 작동시키고 패러체인들 간 유효한 트랜잭션을 수행하기 위해 적극적인 역할을 하는 DOT홀더가 필요합니다. 참가자는 DOT을 스테이크를 통해 이러한 기능을 수행합니다. DOT의 스테이크는 악의적인 참가자들의 DOT를 삭감함으로써 네트워크를 통해 불이익을 줍니다. 네트워크에 참여하는 데 필요한 DOT는 어떤 활동을 하느냐, 얼마만큼의 기간동안 DOT가 스테이킹 될것이냐, 그리고 스테이킹 된 총 DOT의 개수에 따라 달라집니다. - -### DOTs for bonding - -DOT는 네트워크에 새로운 패러체인을 추가하기 위해 일정 기간 담보로 묶일 수 있습니다. DOT는 본딩 기간 동안 묶일 것이고 담보(bonded) 기간이 지나고 패러체인이 제거 된 후 DOT가 본딩 된 계좌로 다시 릴리스됩니다. - -## Testnet DOTs - -DOT는 Polkadot 네트워크에서 트랜잭션을 작성해야합니다. Testnet DOT는 폴카닷 네트워크에 대해서 실험 할 수있는 다른 값을 가지고 있지 않습니다. - -### 테스트넷에서 DOT 받기 - -[faucet](https://faucets.blockxlabs.com/)에서 [Polkadot Watercooler](https://riot.im/app/#/room/#polkadot-watercooler:matrix.org)에 있는 누군가에게 DOT를 보내달라고 요청 할 수 있습니다. - -[밸리데이터가 되어서](https://github.com/paritytech/polkadot/wiki/Validating-on-PoC-2) DOT를 생성 할 수도 있습니다. \ No newline at end of file diff --git a/docs/polkadot/learn/PRE_KR.md b/docs/polkadot/learn/PRE_KR.md deleted file mode 100644 index e0febab6..00000000 --- a/docs/polkadot/learn/PRE_KR.md +++ /dev/null @@ -1,23 +0,0 @@ -# Polkadot 런티임 환경 (Polkadot Runtime Environment,PRE) - -Polkadot 런타임 환경 (Polkadot Runtime Environment, 이하 PRE- 역자 주)는 Polkadot 프로토콜의 중요한구성 요소입니다. 네트워킹, 합의 및 Wasm VM으로 구성되며 Polkadot 런타임 및 패러체인들의 런타임을 기본으로하는 스택의 하위 계층으로 작동합니다. 아래에서 언급했듯이 체인 로직과 PRE 사이에는 명확한 구분이 있지만 대략 PRE는 Polkadot 릴레이 체인과 같은 의미로 생각할 수 있습니다 . - -PRE의 구성요소는 다음과 같습니다. - -- 네트워크 인터렉션 (Network Interactions) -- 상태(State) 저장소와 저장소 트라이 (Trie) -- 합의 엔진 (Consensus Engine) -- Wasm 가상 머신 (Virtual Machine ,VM) - -체인로직을 구현하는 코드로 정의된 런타임은 PRE와 같이 동작하지 않습니다. 런타임과 PRE, 이 두 구성 요소를 분리하면 PRE를 업그레이드 할 필요없이 런타임을 쉽게 업그레이드 할 수 있습니다. - -Polkadot 런타임과 parachains의 런타임은 컴파일 된 WebAssembly(Wasm)blob 이어야 합니다. Polkadot 런타임은 Polkadot RE에 "플러그인"되며 거버넌스 메커니즘을 통해 바꿀 수 있습니다. - -아래 이미지는 Gavin Wood가 Substrate의 [slide deck](https://slides.com/paritytech/paritysubstrate#/8)에서 가져온 것으로 Polkadot 스택의 4개 레이어를 시각적으로 보여줍니다. - -![PRE](../../img/PRE.png) - -## 자료들 (Resources) - -- [PRE 런타임 프로토콜 스펙(Polkadot Runtime Environment Protocol Specification)](https://github.com/w3f/polkadot-re-spec) - PRE spec의 인큐베이터. -- [polkadot-re-tests](https://github.com/w3f/polkadot-re-tests) - PRE를 위한 교차 규현 테스트 (Cross-implementation tests for the Polkadot Runtime Environment). diff --git a/docs/polkadot/learn/bridges_KR.md b/docs/polkadot/learn/bridges_KR.md deleted file mode 100644 index 69f3e458..00000000 --- a/docs/polkadot/learn/bridges_KR.md +++ /dev/null @@ -1,40 +0,0 @@ -# Bridges - -블록체인 간 통신의 핵심 아이디어 중 하나는 브릿지 역할입니다. Polkadot에서 브릿징(Bridging)이 어떻게 작동하는지에 대한 정확한 세부 사항 중 일부는 아직 결정되지 않았습니다. 이 페이지는 현재 작업진행중(work in progress)입니다. . 더 많은 세부 사항이 결정되면 업데이트 될 것입니다. - -현재 Polkadot 에서는 아래오 같은 세가지 다른 종류의 브릿징(bridging)이 있습니다. - -* _브릿지 컨트랙트_(_Bridge contracts_) -Polkadot과 외부 블록체인 간 브릿지로 배포된 스마트 컨트랙트. - -* _크로스-패러체인 통신_(_Cross-parachain communication_) - 컨트랙트가 필요 없음. - -* _내장된 브릿징 모듈_(_In-built bridging modules_) - 전용 모듈을 통해 외부 체인에서 Polkadot에 브릿징. - -## 브릿지 컨트랙트(Bridge Contracts) - -Ethereum 에 이미 익숙한 사람들은 [Parity Bridge](https://github.com/paritytech/parity-bridge) 및 PoA 사이드체인을 Ethereum 메인넷에 연결하기 위한 노력에 대해 알고있을 수 있습니다. 브릿지는 두 가지 스마트 계약의 조합으로, 각 체인에 배포되어 크로스-체인 가치 전송을 허용합니다. 예를 들어, 초기 패리티 브리지 (Parity Bridge) PoC(proof of concept)는 `main`과 `side` 두 개의 이더리움 체인 을 연결합니다. `main`의 컨트랙트에 이더를 입금하면 `side`에 ERC-20 토큰으로 표시되어 잔고가 생성됩니다. 반대로 `side`에사 ERC-20 토큰이 컨트랙트로 다시 입금되면 `main`에서 (입금되어서 잠긴) 이더를 해제 할 수 있습니다. - -Polkadot의 경우, 말하자면 EVM 기반 독립(standalone) 체인과 스마트 컨트랙트가 가능한 패러체인(Parachain)에 배포된 컨트랙트에 브리지 컨트랙트를 배포 할 수 있어야 합니다. 이것은 반드시 가장 효율적인 브리징 방법은 아닐수도 있지만, Turing-완전한 패러체인의 대부분을 고려할 때 Polkadot 과 어떤 다른 스마트 컨트랙트 블록체인을 브릿지 할 수 있습니다. - -### 참고 자료들 (Resources) - -* [Edgeth Bridge](https://github.com/hicommonwealth/edgeth_bridge/) - Ethereum에서 Edgeware로 브릿지한 서브스트레이트 기반 체인. -* [Parity Bridge](https://github.com/paritytech/parity-bridge) -* [POA Network](https://poa.network/) -* [Case study](https://medium.com/giveth/ethereum-dapp-scaling-poa-network-acee8a51e772) 패리티 사의 브릿지 체인 솔루션인 POA 네트워크 구현체 - -## 크로스 패러체인 커뮤니케이션 (Cross-Parachain Communication) - -[parachains](./parachains.md) 페이지에서 언급했듯이, 패러체인은 트랜잭션을 포함해서 서로 메시지를 보낼 수 있습니다 그러므로 브리징 기능을 작동시키기 위한 스마트 컨트랙트가 필요 없습니다. 크로스-체인(Cross-parachain) 메시징(messaging)은 Polkadot에서 기본(native)으로 제공됩니다. - -## 내장 브릿지 모듈 (In-built Bridging Modules) - -패러체인이 패러체인이 아닌 블록체인에서 메시지를 받는것은 클라이언트 소프트웨어의 모듈 내에서 기본적으로 작동될것입니다. 이것은 브리징 계약을 불필요하게 마들고 패러체인이 아닌 블록체인을 "가상 패러체인(virtual parachains)"인 것처럼 작동 할 수있게 합니다. 특정 블록체인 콜레이터(collator,병합기)는 트랜잭션이나 다른 상태전이를 대조하여 블록체인이 마치 패러체인인 것처럼 릴레이 체인(relay chain)에 보낼 수 있습니다. - -비트코인이나 이더리움 처럼 특정 패러체인을 염두에 두고 브릿지 모듈이 구현 될 것입니다. 즉, 어떤 블록체인이든 저 특정 블록체인을 기반으로 한다면 패러체인에 브릿징 컨트랙트를 통할 필요없이 Polkadot에 직접 브리지 할 수 있어야합니다.이런 점은 호환가능한 체인들의 실행 속도를 빠르게 합니다. - -Polkadot에 내장 브리징 모듈이 없는 독립형 체인의 경우 브리지 계약을 배포해야합니다 (위 참조). - -### 참고자료 (Resources) - -* [ChainX BTC Bridge](https://github.com/chainx-org/ChainX/tree/develop/cxrml/bridge/btc) - ChainX have implemented a BTC to Substrate bridge for their parachain \ No newline at end of file diff --git a/docs/polkadot/learn/consensus_KR.md b/docs/polkadot/learn/consensus_KR.md deleted file mode 100644 index 57361d93..00000000 --- a/docs/polkadot/learn/consensus_KR.md +++ /dev/null @@ -1,92 +0,0 @@ -# 폴카닷 합의 알고리즘 (Polkadot Consensus) - -## 왜 합의가 필요한가요? - -합의는 공유된 상태(shared state)에 대한 일치(agreement)에 이르는 방법입니다. 블록체인의 상태(state)가 계속해서 쌓고 앞으로 나아가려면 네트워크의 모든 노드가 동의하고 합의에 이르러야 합니다. 합의는 분산 네트워크의 노드가 서로 동기화 상태를 유지할 수 있는 방법입니다. 블록체인에서 분산된 네트워크에 대한 합의가 없으면 한 노드가 참이라고 믿는 상태가 다른 노드와 공유 될 수 있도록 보장 할 방법이 없습니다. 합의는 각자 자신의 네트워크에 대한 _주관적_ 관점을 가지고있는 참가자들 사이에서 상태의 _객관적인_ 시각을 제공하는 것이 목표입니다. 이 노드들이 의사 소통을하고 합의에 도달하고 새로운 블록을 만들 수 있게 하는 프로세스입니다. - -## PoW와 PoS는 무엇인가요? - -Proof of Work (PoW)와 Proof of Stake (PoS)는 소위 블록체인의 합의 메커니즘이라고 언급되지만 전체 그림을 담아내지는 않습니다. PoW는 블록 작성자와 Bitcoin에서는 체인 선택 알고리즘인 Longest chain 규칙을 포함하는 더 완전한 [나카모토 컨센서스](#nakamoto-consensus)의 일부에 동의하는 방법입니다. 마찬가지로 PoS는 밸리데이터 집합을 선택하기위한 규칙들의 집합이고 체인 선택 규칙이나 어떻게 체인이 블록의 Finality에 도달하는 방법에 대해서는 특정하지 않습니다. PoS 알고리즘은 전통적으로 노드간에 Byzantine agreement를 맺는 알고리즘과 함께 사용되었습니다. 예를 들어, [Tendermint](./comparisons/cosmos.md)는 밸리데이터 세트의 선택 방법으로 PoS를 사용하는 PBFT(Practical Byzantine Fault Tolerant) 알고리즘입니다. - -## 확정 가능성이 있는 블록의 확정성 대 입증된 블록의 확정성 (Probable vs. provable finality) - -PoW를 수행하는 순수한 나카모토 컨센서스 블록 체인은 _확률적 Finality_ 의 개념을 세우고 _결과적으로 합의(consensus)_ 에 도달 할 수 있습니다. 확률적 Finality는 네트워크 와 참가자에 대한 몇몇 가정 하에서 만약 주어진 블록에 몇 개의 블록을 구축하는 것을 볼 수 있으면 블록의 Finaity에 대한 확률을 예측할 수 있다는 의미입니다. 최종 합의는 모든 노드가 한 세트의 데이터의 진실성에 대해서 미래의 어느 시점에 동의한다는 것을 의미합니다. 이 최종 합의는 오랜 시간이 걸릴 수 있으며 시간이 얼마나 걸릴지 미리 결정될 수 없습니다. 그러나 GRANDPA 또는 Ethereum의 Casper FFG와 같은 Finality 도구들은 블록의 Finality에 대해 강력하고 신속한 보장을 제공하도록 설계되었습니다. 특히 Byzantine agreement의 일부 프로세스가 완료된 후 되돌릴 수는 없습니다. 비가역적인(irreversible) 합의의 개념은 _확정 가능한 finality_ 로 알려져 있습니다 . - -GRANPA문서에서는 다음과 같이 설명되어 있습니다. - -> 프로토콜의 오라클 A가 어느 지정되지 않은 시간 후에 모든 참여자들에게 같은 값을 반환한다면 _결과적으로 일관됨(eventually consistent)_ 이라고 합니다. - -## GRANDPA/BABE가 무엇인가요? - -### 하이브리드 컨센서스 (Hybrid Consensus) - -Polkadot의 합의 프로토콜에 관해 이야기 할 때 사용하는 GRANDPA 와 BABE 라는 두 가지 약어가 있습니다. Polkadot은 **하이브리드 컨센서스**를 사용하기 때문에 두 가지 약어에 대해 이야기합니다. 하이브리드 컨센서스는 블록 생성 메커니즘에서 finality 도구를 분리합니다. 이를 통해 블록 생성 속도를 높이고 느린 finality 메커니즘을 별도의 프로세스에서 실행하여 느린 트랜잭션 처리에 대한 우려앖이 블록을 확정(finalize) 할 수 있습니다. - -이전에 하이브리드 컨센서스가 제안 되었습니다. 주목할만한 것은, 지금은 없지만 Ethereum의 전환 단계로 [EIP 1011](http://eips.ethereum.org/EIPS/eip-1011)에서의 지분 증명(Proof of stake)를 구체화한 [Casper FFG](#casper-ffg)으로 제시 되었습니다. - -### GRANDPA: Finality 도구 - -GRANDPA (GHOST-based Recursive ANcestor Deriving Prefix Agreement)는 Polkadot relay chain을 위해 구현된 Finality 도구입니다. - -노드의 2/3가 네트워크에 대해 정직하고 20%(1/5)의 비잔틴 노드를 비동기 세팅에서 대처 할 수있는 부분 동기식 네트워크 모델(partially synchronous network model)에서 작동합니다. -눈에 띄는 차이점은 GRANDPA가 블록이 아닌 체인에 대한 합의에 도달한다는 것입니다. - -GRANDPA에 대한 자세한 내용은 W3F Research 페이지의 [GRANDPA 링크](http://research.web3.foundation/en/latest/polkadot/GRANDPA/)를 참조하세요. - -### "Polite" GRANDPA - -Polite GRANDPA는 노드 간의 네트워크 성능을 향상시키는 구현 방법입니다. 이것은 스펙의 일부로 고려되어야만 하고 클라이언트를 구축하는 독립적인 팀에 의해 복제되어야하기 때문에 여기에 언급됩니다. - -### BABE: 블록 생성 도구 - -BABE (Blind Assignment for Blockchain Extension)는 밸리데이터 노드 사이에서 간에 실행되고 새 블록의 생성자를 결정하는 블록 생성 메커니즘입니다. - -BABE는 스테이킹과 폴카닷을 사용해서 [무작위 사이클](./randomness.md)를 사용하여 밸리데이터들에게 블록 생성 슬롯을 할당합니다. - -BABE는 Ouroboros Praos의 알고리즘과 비슷하지만 체인 선택규칙(chain selection rule)과 슬롯 시간조정(slot time adjustments)에서 주요 차이점이 있습니다. - -BABE에 대한 자세한 내용은 [초안](http://research.web3.foundation/en/latest/polkadot/BABE/Babe/)을 참조하세요. - -## 다른 컨센서스 알고리즘과 비교 (Comparisons) - -### 나카모토 컨센서스 (Nakamoto consensus) - -나카모토 컨센서스는 작업 증명 (Proof of Work)을 사용하는 Longest chain rule로 이루어져 있습니다. 작업 증명은 시빌 저항 매커니즘과 (sybil resistance mechanism)와 리더 뽑기 (leader election)에 쓰입니다. - -나카모토 컨센서스는 확률적인 finality만 줍니다. 과거의 블록을 되돌릴 수 없다는 것에 대해서 보장 하는것은 확률적인 finality의 속성에 의존합니다. 과거의 블록이 가지고있는 확인(confirmation)수 나 그 위에 있는 블록 수만큼 확률적인 finality 상태가 안전하다고 합니다. Proof of Work 체인에서 더 많은 블록이 특정 블록 위에 쌓일수록 특정 체인 뒤에 계산 작업이 더 많이 소비됩니다. 그러나 잠재적으로 경쟁 체인을 구축하고 특정 블록을 포함하지 않는 체인을 생성 할 수있는 무제한 리소스를 가진 액터가 충분한 계산 리소스를 소비 할 수 있기 때문에 블록을 포함하는 체인이 항상 합의 된 체인이 된다는 것을 보장하지는 않습니다. 이러한 Longest chain규칙을 Bitcoin 및 기타 작업 증명 체인에서 사용하고 가장 긴 새로운 체인이 표준 체인이 됩니다.. - -### PBFT / Tendermint - -이와 관련해서는 [코스모스와의 비교 문서](./comparisons/cosmos.md#consensus)를 참고하세요 - - - -### Casper FFG - -GRANDPA and Casper FFG (Friendly Finality Gadget)는 다음과 같이 두가지 차이점이 있습니다.: - - - GRANPA에서는 다른 투표자들이 다른 높이에 있는 블록에 동시에 투표를 할 수 있습니다. - - GRANDPA 는 기본적인 블록 생성 매커니즘의 포크 선택룰에 영향을 주는 확정된 블록에서만 영향을 받습니다. - -### Casper CBC - -_Coming soon!_ - - - -## 왜 PoW를 쓰지 않나요? - -분산된 합의를 만드는 것에는 효과적이지만 PoW는 엄청난 에너지를 쓰고 경제적인 Finality가 없고 카르텔에 저항하는 효과적인 전략이 없습니다. - -## 참고자료 (Resources) - -- [GRANDPA paper](https://github.com/w3f/consensus/blob/master/pdf/grandpa.pdf) - GRANDPA finality 도구의 학술적인 설명문서. 알고리즘의 형식 증명이 표함되어 있습니다. -- [Rust implementation](https://github.com/paritytech/finality-grandpa) - 참고 구현체와 [Substrate runtime module](https://github.com/paritytech/substrate/blob/master/srml/grandpa/src/lib.rs). - - diff --git a/docs/polkadot/learn/cryptography_KR.md b/docs/polkadot/learn/cryptography_KR.md deleted file mode 100644 index 923f24db..00000000 --- a/docs/polkadot/learn/cryptography_KR.md +++ /dev/null @@ -1,23 +0,0 @@ -# Polkadot 에서 사용하는 암호학 설명 (Cryptography Explainer) - -이 문서는 Polkadot에서 사용되는 암호화에 대한 고수준의 개요에 대해서 설명합니다. 일반적으로 블록체인에서 사용하는 해시(hash), ECC(Elliptic Curve Cryptography) 및 공개키 - 비밀키 쌍과 같은 기초 암호화 지식이 있다고 가정합니다. - -[research wiki](https://research.web3.foundation)에서 암호화에 대한 자세한 설명을 볼 수 있습니다. - -## 해싱 알고리즘 (Hashing Algorithm) - -Polkadot에서 사용되는 해싱 알고리즘은 [Blake2b](https://en.wikipedia.org/wiki/BLAKE_(hash_function)#BLAKE2)입니다. - -Blake2는 [Zcash](https://z.cash)에서도 사용하는 매우 빠른 암호 해시함수 입니다. - -## 키페어와 서명 (Keypairs and Signing) - -Polkadot은 Schnorrkel/Ristretto x25519("sr25519")를 키 유도 및 서명 알고리즘으로 사용합니다. - -Sr25519는 EdDSA에 대응되는 [Ed25519](https://en.wikipedia.org/wiki/EdDSA#Ed25519) 와 같은 기반인 [Curve25519](https://en.wikipedia.org/wiki/Curve25519)을 사용합니다. 그러나 EdDSA 스킴(Scheme) 대신 Schnorr 서명을 사용합니다. Schnorr 서명은 ECDSA/EdDSA 체계에 보다 더 좋은 이점을 제공합니다. 그 중 하나는 더 효율적이며 동일한 기능 셋과 보안 가정을 ​​가지고 있다는 것입니다. 또한 [서명 통합(Signature aggregation)](https://bitcoincore.org/en/2017/03/23/schnorr-signature-aggregation/)를 통해 schnorr 서명이 기본적으로 가지고 있는 다자간 서명(multisignature)을 허용합니다. - -The names Schnorrkel and Ristretto come from the two Rust libraries that implement this -scheme, the [Schnorrkel](https://github.com/w3f/schnorrkel) library for Schnorr signatures and the [Ristretto](https://ristretto.group/ristretto.html) -library that makes it possible to use cofactor-8 curves like the Curve25519. - -Schnorrkel과 Ristretto라는 이름은 Schnorr서명을 위한 [Schnorrkel](https://github.com/w3f/schnorrkel) Rust 라이브러리와 Curve25519와 같이 cofactor-8 커브를 사용할 수 있게 하는 [Ristretto](https://ristretto.group/ristretto.html) Rust 라이브러리에서 그 이름이 유래했습니다. \ No newline at end of file diff --git a/docs/polkadot/learn/index_KR.md b/docs/polkadot/learn/index_KR.md deleted file mode 100644 index aaebdc03..00000000 --- a/docs/polkadot/learn/index_KR.md +++ /dev/null @@ -1,29 +0,0 @@ -# Learn about Polkadot - -- [Introduction](./introduction.md) - Introduction to the _who_, _what_, _where_, _when_, and _why_ of Polkadot. -- [FAQ](./faq.md) - Answers to some of the frequently asked questions in regard to Polkadot. - -## Digging deeper - -- [Bridges](./bridges.md) - Overview of bridges. -- [Cryptography](./cryptography.md) - Describes the cryptography used in Polkadot and where in the protocol it's employed. -- [Consensus](./consensus.md) - What is the consensus used in the Polkadot protocol and how does it compare to other consensus protocols? -- [DOT](./DOT.md) - Information on the DOT, the native token of the Polkadot protocol. -- [Governance](./governance.md) - How does governance work in Polkadot? -- [Interchain Communication](./interchain.md) - Information regarding how interchain messaging works. -- [Parachains](./parachains.md) - Overview of parachains. -- [Parachain Auctions](./auction.md) - Describes the mechanism for the auctioning of parachain slots. -- [Phragmen](./phragmen.md) - Information on the Phragmen method. -- [Polkadot Runtime Environment](./PRE.md) - Gives general information on the Polkadot Runtime Environment. -- [Randomness](./randomness.md) - What does Polkadot use for randomness and how? -- [Security](./security.md) - How does the Polkadot network remain secure? -- [SPREE](./spree.md) - Shared Protected Runtime Execution Environments, -- [Staking](./staking.md) - How does staking work in Polkadot? -- [WebAssembly](./wasm.md) - What is WebAssembly and how is it used in Polkadot? - -## Resources - -- [Glossary](../../glossary.md) - Definitions of domain specific terms used in Polkadot documentation. -- [Implementations](./implementations.md) - List of implementations of the Polkadot protocol (who is building them and links to the source code). -- [Links](./relevant-links.md) - Comprehensive list of external links. -- [Roadmap](./roadmap.md) - The implementation roadmap of Polkadot. diff --git a/docs/polkadot/learn/introduction_KR.md b/docs/polkadot/learn/introduction_KR.md deleted file mode 100644 index 4d427848..00000000 --- a/docs/polkadot/learn/introduction_KR.md +++ /dev/null @@ -1,35 +0,0 @@ -# Polkadot - -Polkadot is a heterogeneous multi-chain technology. It consists of the @(relay chain), @(parachain)s, and @(bridge)s to other networks. The relay chain is responsible for achieving consensus and transaction delivery among parachains. Parachains are independent blockchains with their own state transitions that gather and process transactions while plugging in to the security of the relay chain. Bridges allow the Polkadot network to make it interoperable with other blockchains not built to natively support it. - -Polkadot은 이기종 다중 체인 기술입니다. @ (릴레이 체인), @ (parachain) s 및 다른 네트워크에 대한 @ (브리지)로 구성됩니다. 중계 체인은 낙하산 간의 합의 및 거래 전달을 담당합니다. Parachains는 릴레이 체인의 보안에 연결하는 동안 트랜잭션을 수집하고 처리하는 고유 한 상태 전환이있는 독립 블록 체인입니다. 교량은 Polkadot 네트워크가 기본적으로 지원하지 않는 다른 블록 체인과 상호 운용되도록합니다. - -## 왜 폴카닷(Polkadot)인가요? - -Polkadot is built to connect private/consortium chains, public/permission-less networks, oracles and future -technological developments yet to be created in the Web3 ecosystem. It enables an internet where independent -blockchains can exchange information and trust-free transactions via the Polkadot relay chain, with the key -tenets of scalability, governance and interoperability. - -Polkadot은 개인 / 컨소시엄 체인, 공개 / 권한없는 네트워크, 신탁 및 향후 기술 개발을 Web3 생태계에서 아직 만들지 않기 위해 만들어졌습니다. 독립적 인 블록 체인이 확장 성, 거버넌스 및 상호 운영 성의 핵심 교리와 함께 Polkadot 릴레이 체인을 통해 정보 및 트러스트없는 트랜잭션을 교환 할 수있는 인터넷을 가능하게합니다. - -By connecting these dots, we allow for the development of a truly decentralized web, serving as a -foundational building block for the creation of an ecosystem of @(Dapps) and services that will distribute power -and equity for the common good. - -이러한 점들을 연결함으로써 우리는 진정으로 분산 된 웹의 개발을 허용하여 @ (Dapps)의 생태계 구축을위한 기본 구성 요소와 공익을위한 권력과 형평을 분배 할 서비스를 제공합니다. - -## 폴카닷(Polkadot)이 뭔가요? - -Polkadot is a protocol that allows independent blockchains to exchange information. Polkadot is an inter-chain -blockchain protocol which unlike internet messaging protocols (e.g. TCP/IP) also enforces the order and the validity -of the messages between the chains. This interoperability also allows the additional benefit of scalability by creating -a general environment for multiple state machines. - -Polkadot는 독립적 인 블록 체인이 정보를 교환 할 수있게하는 프로토콜입니다. Polkadot은 인터넷 메시징 프로토콜 (예 : TCP / IP)과 달리 체인 간 메시지의 순서와 유효성을 강제하는 체인 간 블록 체인 프로토콜입니다. 또한이 상호 운용성을 통해 여러 상태 시스템에 대한 일반 환경을 생성하여 확장 성의 추가 이점을 얻을 수 있습니다. - -## 폴카닷의 아키텍쳐(Polkadot Architecture) - -For a video overview of the architecture of Polkadot watch the video below for the whiteboard interview with W3F researcher Alistair Stewart: - - diff --git a/docs/polkadot/learn/randomness_KR.md b/docs/polkadot/learn/randomness_KR.md deleted file mode 100644 index a14fdb0d..00000000 --- a/docs/polkadot/learn/randomness_KR.md +++ /dev/null @@ -1,21 +0,0 @@ -# 무작위성 (Randomness) - -## 입증가능한 무작위 함수 (Verified Random Functions,VRFs) - -BABE는 Polkadot의 무작위 사이클을 사용하여 지분(stake)에 따라 밸리데이터에 블록 생성 슬롯을 할당합니다. - -Polkadot에 사용 된 VRF는 Ouroboros Praos에서 사용 된 것과 거의 같습니다. Ouroboros의 무작위성은 블록 생성을 안전하게 만들고 BABE에서 잘 작동합니다. 그러나 Polkadot은 공격자가 무작위성과 밸리데이터 - 패러체인을 선택히는 것을 조작할 수 있기 때문에 강한 무작위 소스를 필요로합니다. - -더 강한 임의성을 위해 고려된 해결책이 있지만 각 각의 취약점이 있습니다 (전체 설명을 위해서 Research 위키에 있는 [링크](http://research.web3.foundation/en/latest/polkadot/BABE/3-VDF/#unbiased-randomness)를 참조하세요. ) 이러한 이유로 Polkadot은 VDF를 기반으로 임의성을 사용합니다. - -## 입증가능한 지연 함수 (Verified Delay Function, VDFs) - -[VDF(Verifiable Delay Functions)](https://vdfresearch.org/)는 병렬 컴퓨터일지라도 계산을 완료하기 위해 걸리는 시간을 규정한 함수입니다. 일반적인 세팅에서 독립적이고 효율적으로 확인할 수있는 고유한 출력값을 만듭니다. - -## 블록체인의 무작위성에 대한 다른 접근 방법들 (Other approaches to randomness on blockchains) - -- [RANDAO] (https://github.com/randao/randao) - RANDAO는 각 밸리데이터가 어떤 시드에서 몇몇 연속된 해시를 계산하여 준비하는 것과 관련이 있습니다. 그러면 밸리데이터는 라운드 동안 게임에 참여한 모든 참가자에게서 유도한 최종 해시를 보여줍니다. 비 경제적으로 공격 가능하나 정직한 밸리데이터가가 참여하는 한 임의성은 안전하다고 간주됩니다. 이 방법은 Polkadot에서 사용하는 VRF에 대한 임의성 방법으로 선택되지 않았습니다. 왜냐하면 각 슬롯의 모든 블록 생성자의 해시를 나타내려면 2차 지수 방정식 만큼의 대역폭 또는 적어도 2차 지수 방정식의 계산이 필요하기 때문입니다. - -## 자료들 (Resources) - -- [Polkadot에서 사용하는 무작위성에 대한 토론](https://github.com/paritytech/ink/issues/57) - Polkadot의 무작위성이 어떤 가정들에서 언제 사용가능한지에 대한 W3F 리서처 들의 토론. diff --git a/docs/polkadot/learn/spree_KR.md b/docs/polkadot/learn/spree_KR.md deleted file mode 100644 index 45ed9a24..00000000 --- a/docs/polkadot/learn/spree_KR.md +++ /dev/null @@ -1,23 +0,0 @@ -# SPREE - -
- - Gavin presents SPREE at Tokyo DOT Day - - Tokyo DOT Day에 SPREE에 대해서 발표하는 Gavin. -
- -SPREE(Shared Protected Runtime Execution Enclaves)는 "트러스트 웜홀 (Trust wormholes)"로 알려져 있고 패러체인들이 어떻게 업그레이드 하거나 발전하던지 상관 없이 다른 패러체인들을 믿도록 만듭니다. - -## 어떻게 작동하나요? - -- 패러체인들은 스마트 컨트랙트처럼 스페셜 런타임 로직 조각들을 옵트 인 (opt-in)할 수 있습니다. -- Own storage, own ICMP endpoint -- 스토리지를 가지고 ICMP 엔드포인트를 가집니다. -- 패러체인간 모든 인스턴스들은 같은 로직을 가집니다. -- 패러체인과 함께 실행됩니다. -- 보안 : 패러체인들이 메시지를 속일 수 없기 때문에 스토리지는 패러체인의 로직으로 변경할 수 없습니다. - -## 참고자료들 (Resources) - -- [Smart protocols](https://www.reddit.com/r/dot/comments/b6kljn/smartprotocols_idea/) - SPREE에게 영향을 준 u/tawaran의 "smart protocol" Reddit 포스팅. \ No newline at end of file diff --git a/docs/polkadot/learn/wasm_KR.md b/docs/polkadot/learn/wasm_KR.md deleted file mode 100644 index 2549ed23..00000000 --- a/docs/polkadot/learn/wasm_KR.md +++ /dev/null @@ -1,14 +0,0 @@ -# 웹 어셈블리 (WebAssembly,Wasm) - -Polkadot 과 Susbstrate 에서는 런타임 컴파일 타겟으로 WebAssembly가 사용됩니다. - -## WebAssembly는 무엇인가요? - -> WebAssembly(줄여서 Wasm)dms 스택 기반 가상머신 바이너리 명령어 포맷(binary instruction format for a stack-based virtual machine)입니다. Wasm은 C/C ++/ Rust와 같은 고급 언어를 경량 컴파일 타겟으로 설계되어 웹 상의 클라이언트나 서버 어플리케이션에 배포 할 수 있습니다. - -## 자료들 (Resources) - -- [WebAssembly.org](https://webassembly.org/) -스펙 링크가 포함된 WebAssembly 홈페이지 입니다. -- [Wasmi](https://github.com/paritytech/Wasmi) - Rust로 구현된 WebAssembly . -- [Parity Wasm](https://github.com/paritytech/parity-Wasm) - Rust로 구현된 WebAssembly serialization/deserialization . -- [Wasm utils](https://github.com/paritytech/Wasm-utils) - Parity와 Wasm 컨트랙트 개발에 사용되는 Wasm 유틸리티 모음입니다. diff --git a/docs/research_KR.md b/docs/research_KR.md deleted file mode 100644 index 8affc288..00000000 --- a/docs/research_KR.md +++ /dev/null @@ -1,3 +0,0 @@ -# 폴카닷 연구 관련 링크 (Polkadot Research) - -[https://research.polkadot.network](https://research.polkadot.network) \ No newline at end of file From bc12904750254392b8edb79669f8f6dbd76eb453 Mon Sep 17 00:00:00 2001 From: cmcm2222 Date: Wed, 10 Jul 2019 19:06:16 +0900 Subject: [PATCH 7/9] remove rust-style-guide_KR.md --- docs/polkadot/build/rust-style-guide_KR.md | 110 --------------------- 1 file changed, 110 deletions(-) delete mode 100644 docs/polkadot/build/rust-style-guide_KR.md diff --git a/docs/polkadot/build/rust-style-guide_KR.md b/docs/polkadot/build/rust-style-guide_KR.md deleted file mode 100644 index 2f10bd89..00000000 --- a/docs/polkadot/build/rust-style-guide_KR.md +++ /dev/null @@ -1,110 +0,0 @@ -# 폴카닷(Polkadot)의 러스트(rust) 스타일 가이드 - -- 들여쓰기(Indent)는 탭(tab)을 사용합니다. -- 코드 한 줄은 예외적인 경우에만 80 자 이상이어야 하며 120자를 넘지 않아야합니다. 이 목적으로 탭은 글자 4개의 너비 입니다. -- 들여쓰기 레벨은 예외적인 상황에서만 5보다 커야하며 8보다 크지 않아야 합니다. 5보다 크면 복잡한 인라인 표현식을 제거하기 위해`let` 또는 보조 함수를 사용하는 것을 고려하십시오. -- 공백이 없는 글자보다 먼저 줄에 공백을 두지 마십시오.( code 작성이나 주석 작성시 스페이스바를 먼저 쓰지 말라는 얘기 - 역자 주) -- Follow-on lines are only ever a single indent from the original line. - -```rust -fn calculation(some_long_variable_a: i8, some_long_variable_b: i8) -> bool { - let x = some_long_variable_a * some_long_variable_b - - some_long_variable_b / some_long_variable_a - + sqrt(some_long_variable_a) - sqrt(some_long_variable_b); - x > 10 -} -``` - -- 들여 쓰기 수준은 중괄호('{}'를 의미)/소괄호('()'를 의미)를 따라야하지만 실제 사용되는 최소 수준으로 축소해야합니다. - -```rust -fn calculate( - some_long_variable_a: f32, - some_long_variable_b: f32, - some_long_variable_c: f32, -) -> f32 { - (-some_long_variable_b + sqrt( - // two parens open, but since we open & close them both on the - // same line, only one indent level is used - some_long_variable_b * some_long_variable_b - - 4 * some_long_variable_a * some_long_variable_c - // both closed here at beginning of line, so back to the original indent - // level - )) / (2 * some_long_variable_a) -} -``` - -- `where` is indented, and its items are indented one further -- Argument lists or function invocations too long to fit on one line are indented similarly to code blocks, and once one param is indented in such a way, all others should be, too. Run-on parameter lists are also acceptable for single-line run-ons of basic function calls. - -```rust -// OK -fn foo( - really_long_parameter_name_1: SomeLongTypeName, - really_long_parameter_name_2: SomeLongTypeName, - shrt_nm_1: u8, - shrt_nm_2: u8, -) { - ... -} - -// NOT OK -fn foo(really_long_parameter_name_1: SomeLongTypeName, really_long_parameter_name_2: SomeLongTypeName, - shrt_nm_1: u8, shrt_nm_2: u8) { - ... -} - -``` - -```rust -{ - // Complex line (not just a function call, also a let statement). Full - // structure. - let (a, b) = bar( - really_long_parameter_name_1, - really_long_parameter_name_2, - shrt_nm_1, - shrt_nm_2, - ); - - // Long, simple function call. - waz( - really_long_parameter_name_1, - really_long_parameter_name_2, - shrt_nm_1, - shrt_nm_2, - ); - - // Short function call. Inline. - baz(a, b); -} -``` - -- Always end last item of a multi-line comma-delimited set with `,` when legal: -```rust -struct Point { - x: T, - y: T, // <-- Multiline comma-delimited lists end with a trailing , -} - -// Single line comma-delimited items do not have a trailing `,` -enum Meal { Breakfast, Lunch, Dinner }; -``` - -- Avoid trailing `;`s where unneeded. -```rust -if condition { - return 1 // <-- no ; here -} -``` - -- `match` arms may be either blocks or have a trailing `,` but not both. -- Blocks should not be used unnecessarily. -```rust -match meal { - Meal::Breakfast => "eggs", - Meal::Lunch => { check_diet(); recipe() }, -// Meal::Dinner => { return Err("Fasting") } // WRONG - Meal::Dinner => return Err("Fasting"), -} -``` From 2e6b7618c6bd7e68a7983c7633da169c710ff3e7 Mon Sep 17 00:00:00 2001 From: cmcm2222 Date: Wed, 10 Jul 2019 19:09:52 +0900 Subject: [PATCH 8/9] remove missed line on original contents --- docs/polkadot/build/smart-contracts.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/polkadot/build/smart-contracts.md b/docs/polkadot/build/smart-contracts.md index 7ee0ece7..23a6e30c 100644 --- a/docs/polkadot/build/smart-contracts.md +++ b/docs/polkadot/build/smart-contracts.md @@ -34,7 +34,6 @@ When you build a smart contract, it will be eventually be deployed to a target c Smart contracts must find a way to limit their own execution, or else full nodes are vulnerable to DOS attacks. An infinite loop in a smart contract, for example, could consume the computational resources of an entire chain, preventing others from using it. The [halting problem](https://en.wikipedia.org/wiki/Halting_problem) shows that with a powerful enough language, it is impossible to know ahead of time whether or not a program will ever cease execution. Some platforms, such as Bitcoin, get around this constraint by providing a very restricted scripting language. Others, such as Ethereum, "charge" the smart contract "gas" for the rights to execute their code. If a smart contract does get into a state where execution will never halt, it eventually runs out of gas, ceases execution, and any state transition that would have been made by the smart contract is rolled back. Parachains can implement arbitrarily powerful programming languages and also contain no notion of gas for their own native logic. This means that some functionality is easier to implement for the developer, but it also means there are some constructs, such as a loop without a terminating condition, which should _never_ be implemented. Leaving certain logic, such as complex loops which could possibly run indefinitely, to a non-smart contract layer, or even trying to eliminate it entirely, will often be a wiser choice. -Parachains는 임의로 강력한 프로그래밍 언어를 구현할 수 있으며 자체 고유 논리에 대한 가스 개념을 포함하지 않습니다. 이것은 일부 기능을 개발자가 쉽게 구현할 수 있음을 의미하지만, 구현하지 않아야하는 종료 조건이없는 루프와 같은 일부 구성이 있음을 의미합니다. 무한히 실행될 수있는 복잡한 루프와 같은 특정 논리를 비 스마트 계약 계층에 남겨 두거나 심지어 완전히 제거하려는 경우 현명한 선택이 될 수 있습니다. ## Resources From eb8c845cbc89261e10b0e55c8b1e338b7f70377a Mon Sep 17 00:00:00 2001 From: cmcm2222 Date: Wed, 10 Jul 2019 19:11:04 +0900 Subject: [PATCH 9/9] make same on original --- docs/polkadot/build/smart-contracts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/polkadot/build/smart-contracts.md b/docs/polkadot/build/smart-contracts.md index 23a6e30c..5a3372e7 100644 --- a/docs/polkadot/build/smart-contracts.md +++ b/docs/polkadot/build/smart-contracts.md @@ -31,7 +31,7 @@ When you build a smart contract, it will be eventually be deployed to a target c ### Gas Fees -Smart contracts must find a way to limit their own execution, or else full nodes are vulnerable to DOS attacks. An infinite loop in a smart contract, for example, could consume the computational resources of an entire chain, preventing others from using it. The [halting problem](https://en.wikipedia.org/wiki/Halting_problem) shows that with a powerful enough language, it is impossible to know ahead of time whether or not a program will ever cease execution. Some platforms, such as Bitcoin, get around this constraint by providing a very restricted scripting language. Others, such as Ethereum, "charge" the smart contract "gas" for the rights to execute their code. If a smart contract does get into a state where execution will never halt, it eventually runs out of gas, ceases execution, and any state transition that would have been made by the smart contract is rolled back. +Smart contracts must find a way to limit their own execution, or else full nodes are vulnerable to DOS attacks. An infinite loop in a smart contract, for example, could consume the computational resources of an entire chain, preventing others from using it. The [halting problem](https://en.wikipedia.org/wiki/Halting_problem) shows that with a powerful enough language, it is impossible to know ahead of time whether or not a program will ever cease execution. Some platforms, such as Bitcoin, get around this constraint by providing a very restricted scripting language. Others, such as Ethereum, "charge" the smart contract "gas" for the rights to execute their code. If a smart contract does get into a state where execution will never halt, it eventually runs out of gas, ceases execution, and any state transition that would have been made by the smart contract is rolled back. Parachains can implement arbitrarily powerful programming languages and also contain no notion of gas for their own native logic. This means that some functionality is easier to implement for the developer, but it also means there are some constructs, such as a loop without a terminating condition, which should _never_ be implemented. Leaving certain logic, such as complex loops which could possibly run indefinitely, to a non-smart contract layer, or even trying to eliminate it entirely, will often be a wiser choice.