Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DOC] dandelion.md, simulation.md ,fast-sync.md and pruning.md documents translate in Korean. #2678

Merged
merged 30 commits into from
Mar 23, 2019
Merged
Changes from 2 commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
26b181e
add md files for translation.
Feb 20, 2019
3fdb63b
start to translation fast-sync, code_structure. add file build_KR.md…
Feb 21, 2019
ec1aec0
add dandelion_KR.md && simulation_KR.md for Korean translation.
Feb 24, 2019
c3d2b7f
Merge branch 'code_structure_and_fast_sync' of https://github.com/cmc…
Feb 24, 2019
c4fb3d1
add md files for translation.
Feb 20, 2019
6aaa7ce
start to translation fast-sync, code_structure. add file build_KR.md…
Feb 21, 2019
03459e6
add dandelion_KR.md && simulation_KR.md for Korean translation.
Feb 24, 2019
3e54331
Merge branch 'code_structure_and_fast_sync' of https://github.com/cmc…
Feb 28, 2019
04ba28f
remove some useless md files for translation. this is rearrange set u…
Mar 1, 2019
8bbebc1
add dot end of sentence & translate build.md in korean
Mar 1, 2019
5d68e3d
remove fast-sync_KR.md
Mar 1, 2019
30e483b
Merge branch 'master' of https://github.com/mimblewimble/grin into co…
Mar 1, 2019
79f764f
finish build_KR.md translation
Mar 1, 2019
14223f7
finish build_KR.md translation
Mar 1, 2019
4012750
finish translation state_KR.md & add phrase in state.md to move othe…
Mar 2, 2019
cbb3fca
translate blocks_and_headers.md && chain_sync.md in Korean
Mar 4, 2019
d6ae0b4
Merge branch 'master' of https://github.com/mimblewimble/grin into co…
Mar 4, 2019
fcc4919
add . in chain_sync.md , translation finished in doc/chain dir.
Mar 4, 2019
4b5a6a1
fix some miss typos
Mar 4, 2019
6ccaf10
start to translate dandelion.md & simulation.md in Korean.
Mar 5, 2019
d619c21
[WIP] translation
Mar 12, 2019
52d6c0f
Merge branch 'master' of https://github.com/mimblewimble/grin into da…
Mar 12, 2019
0f3ae0b
[WIP] files add.
Mar 12, 2019
81988ab
[WIP] dandelion simulation
Mar 13, 2019
befebb9
finish pruning translation
Mar 14, 2019
27f1684
doc/dandelion translation in Korean finish
Mar 14, 2019
1aa2680
finish pruning translation
Mar 14, 2019
24b73b8
Merge branch 'dandelion' of https://github.com/cmcm2222/grin into dan…
Mar 14, 2019
c6b21f7
add document link in existed docs
Mar 14, 2019
1acfc46
fix some typo
Mar 14, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
133 changes: 133 additions & 0 deletions build_KR.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
# Grin - Build, Configuration, and Running

*다른 언어로 되어있는 문서를 읽으려면:[에스파냐어](build_ES.md).

## 지원하는 플랫폼들에 대해서

장기적으로는 대부분의 플랫폼에서 어느정도의 규모로 지원하게 될 것입니다.
Grin 프로그래밍 언어는 `rust`로 대부분의 플랫폼들에서 빌드 할 수 있습니다.

지금까지 작동하는 플랫폼은 무엇인가요?
* Linux x86_64 그리고 macOS [grin + mining + development]
* Windows 10은 아직 지원하지 않습니다 [grin kind-of builds, mining은 아직 지원하지 않음 . 도움이 필요해요!]

## 요구사항

* rust 1.31 버전 이상 (다음 명령어를 사용하세요. [rustup]((https://www.rustup.rs/))- 예.) `curl https://sh.rustup.rs -sSf | sh; source $HOME/.cargo/env`)

* 만약 rust 가 설치되어 있다면, 다음 명령어를 사용해서 업데이트 할 수 있습니다.
`rustup update`
* clang
* ncurses 과 libs (ncurses, ncursesw5)
* zlib libs (zlib1g-dev or zlib-devel)
* pkg-config
* libssl-dev
* linux-headers (reported needed on Alpine linux)
* llvm

Debian 기반의 배포들은 (Debian, Ubuntu, Mint, 등등) 다음 명령어 한 줄로 설치 됩니다.

```sh
apt install build-essential cmake git libgit2-dev clang libncurses5-dev libncursesw5-dev zlib1g-dev pkg-config libssl-dev llvm
```

Mac 사용자:

```sh
xcode-select --install
brew install --with-toolchain llvm
brew install pkg-config
brew install openssl
```

## 빌드 순서

```sh
git clone https://github.com/mimblewimble/grin.git
cd grin
cargo build --release
```

Grin은 Debug 모드로 Build 할 수 있습니다. (`--release` 플래그가 아닌, but `--debug` 또는 `--verbose` 플래그를 사용하세요.) 그러나 이 명령어는 암호 오퍼레이션으로 인해 큰 오버헤드를 가지므로 fast sync 가 어려울 정도로 느려집니다.

## Build 에러들

[트러블 슈팅 관련해서는 이 링크를 클릭하세요.](https://github.com/mimblewimble/docs/wiki/Troubleshooting)

## 무엇을 Build 해야 되나요?

A successful build gets you:

* `~/.grin/main/grin-server.toml`.
모든 데이터, 설정, 로그 파일들은 기본적으로 (지정되지 않는다면) `~/.grin` 에 만들어지고 사용됩니다. (user home 디렉토리 안에 있습니다.)
`~/.grin/main/grin-server.toml` 을 수정해서 모든 설정값들을 바꿀 수 있습니다.

Grin은 현재 디렉토리 내에서도 데이터 파일들을 만들 수 있습니다. 밑에 있는 Bash 명령어를 작동하세요.

```sh
grin server config
```

현재 디렉토리에서 모함한 모든 데이터에 대해 미리 설정된 `grin-server.toml` 파일 내의 값들이 사용될겁니다.

Testing 중에서는 Grin 바이너리를 이렇게 path 에 삽입 할 수도 있습니다.

```sh
export PATH=`pwd`/target/release:$PATH
```

만약 Grin을 root 디렉토리에서 실행한다면, `grin` 명령어를 바로 실행할 수 있습니다. (`grin help` 명령어를 통해서 좀 더 많은 옵션을 알아보세요.)

## 설정하기

Grin attempts to run with sensible defaults, and can be further configured via
the `grin-server.toml` file. This file is generated by grin on its first run, and contains documentation on each available option.
Grin은

While it's recommended that you perform all grin server configuration via
`grin-server.toml`, it's also possible to supply command line switches to grin that override any settings in the file.

For help on grin commands and their switches, try:

```sh
grin help
grin wallet help
grin client help
```

## Docker 사용하기

```sh
docker build -t grin -f etc/Dockerfile .
```

floonet을 사용하려면 `etc/Dockerfile.floonet` 을 사용하세요.
You can bind-mount your grin cache to run inside the container.

```sh
docker run -it -d -v $HOME/.grin:/root/.grin grin
```

If you prefer to use a docker named volume, you can pass `-v dotgrin:/root/.grin` instead.

Using a named volume copies default configurations upon volume creation

## 크로스 플랫폼 빌드

Rust(Cargo)는 여러 플랫폼에서 Grin을 빌드 할 수 있습니다. 그래서 이론적으로 낮은 성능의 디바이스 에서도 인증받은 노드로 grin을 작동 시킬 수 있습니다.
`grin` 크로스 컴파일을 하기 위해서 x96 리눅스플랫폼 위에서 ARM 바이너릐를 만듭니다. 예를 라즈베리 파이 가 있습니다.

## Grin 사용하기

[지갑 유저 가이드](https://github.com/mimblewimble/docs/wiki/Wallet-User-Guide) 위키페이지와 링크된 페이지들은 어떤 Feature 를 가지고 있는지 , 트러블 슈팅 등등에 대한 좀 더 많은 정보를 가지고 있습니다.

## Grin 채굴하기

Please note that all mining functions for Grin have moved into a separate, standalone package called
[grin-miner](https://github.com/mimblewimble/grin-miner). Once your Grin code node is up and running,
you can start mining by building and running grin-miner against your running Grin node.



For grin-miner to be able to communicate with your grin node, make sure that you have `enable_stratum_server = true`
in your `grin-server.toml` configuration file and you have a wallet listener running (`grin wallet listen`).
26 changes: 20 additions & 6 deletions doc/code_structure_KR.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,29 @@
# Grin code structure

Grin is built in [Rust](https://www.rust-lang.org/), a memory safe, compiled language. Performance critical parts like the Cuckoo mining algorithm are built as plugins, making it easy to swap between algorithm implementations for various hardware. Grin comes with CPU and experimental GPU support.
markdown
Grin is built in [Rust](https://www.rust-lang.org/), a memory safe, compiled language.

Performance critical parts like the Cuckoo mining algorithm are built as plugins, making it easy to swap between algorithm implementations for various hardware.
Grin comes with CPU and experimental GPU support.

Grin은 메모리 세이프 하고, 컴파일되는 프로그래밍 언어인 [Rust](https://www.rust-lang.org/)로 구현되었습니다.


## Files in project root

List of files tracked in `git` and some files you'll create when you use grin.

- [CODE_OF_CONDUCT](../CODE_OF_CONDUCT.md) - How to behave if you want to participate. Taken from rust. Slightly modified.
- 만약 참여를 원한다면 어떻게 행동해야 하는지,
- [CONTRIBUTING](../CONTRIBUTING.md) - How to help and become part of grin.

- [Cargo.toml](../Cargo.toml) and Cargo.lock (locally created, _not_ in git) - defines how to the project code is to be compiled and built
- [LICENSE](../LICENSE) - Apache 2.0 license

- [라이센스](../LICENSE) - Apache 2.0 license

- [README](../README.md) - The first document you should read, with pointers to find more detail.
- **반드시** 첫번째로 읽어야 되는 문서입니다.
- [rustfmt.toml](../rustfmt.toml) - configuration file for rustfmt. Required before contributing _new_ code.
- rustfmt 를 위한 설정 파일입니다. _새로운_ 코드를 컨트리뷰트 하기 전에 필요합니다.

## Folder structure

@@ -49,13 +61,15 @@ After checking out grin, building and using, these are the folders you'll have:
Where the grin binary ends up, after the compile and build process finishes.
In case of trouble, see [troubleshooting](https://github.com/mimblewimble/docs/wiki/Troubleshooting)
- `util`\
Low-level rust utilities.
로우 레벨 Rust 유틸리티 들
- `wallet`\
Simple command line wallet implementation. Will generate:
- `wallet_data` - a database storing your "outputs", that once confirmed and matured, can be spent with the [`grin wallet send`](wallet/usage.md) command. (locally created, *not* in git)
- `wallet.seed` - your secret wallet seed. (locally created, *not* in git)
간단한 커맨드 라인 Wallet 구현입니다. 아래와 같은 데이터가 만들어집니다.:
- `wallet_data` - a database storing your "outputs", that once confirmed and matured, can be spent with the [`grin wallet send`](wallet/usage.md) command. (_git 에는 없고_ 로컬에서 생성됩니다.)
- `wallet.seed` - Wallet의 비밀키. (_git 에는 없고_ 로컬에서 생성됩니다.)

## grin dependencies

- [secp256k1](https://github.com/mimblewimble/rust-secp256k1-zkp)
Integration and rust bindings for libsecp256k1, and some changes waiting to be upstreamed. Imported in util/Cargo.toml.

28 changes: 17 additions & 11 deletions doc/fast-sync_KR.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,30 @@
# Fast Sync
# 패스트 싱크

*Read this in other languages: [Español](fast-sync_ES.md).*
*다른 언어로 이 문서를 읽고 싶으시다면: [Español](fast-sync_ES.md).*

In Grin, we call "sync" the process of synchronizing a new node or a node that
hasn't been keeping up with the chain for a while, and bringing it up to the
latest known most-worked block. Initial Block Download (or IBD) is often used
by other blockchains, but this is problematic for Grin as it typically does not
latest known most-worked block.
Grin 에서 새로운 노드가 동기화 되는 과정이나 체인을 얼마간 알지 못했을때

Initial Block Download (or IBD) is often used by other blockchains, but this is problematic for Grin as it typically does not
download full blocks.
IBD ( 최초 블록 다운로드 )는 다른 블록체인에서도 종종 사용되어 집니다. 그러나 Grin에 있어서

In short, a fast-sync in Grin does the following:

1. Download all block headers, by chunks, on the most worked chain, as
advertized by other nodes.
1. Find a header sufficiently back from the chain head. This is called the node
요약하자면, Grin 안에서의 fast-sync 는 다음과 같은 과정을 따릅니다.
1. 다른 노드들에게서 알려지는 가장 많이 일한 체인에 있는 모든 블록 헤더를 청크단위로 다운로드 합니다.
2. Find a header sufficiently back from the chain head. This is called the node
horizon as it's the furthest a node can reorganize its chain on a new fork if
it were to occur without triggering another new full sync.
1. Download the full state as it was at the horizon, including the unspent
3. 체인헤드로 부터
4. Download the full state as it was at the horizon, including the unspent
output, range proof and kernel data, as well as all corresponding MMRs. This is
just one large zip file.
1. Validate the full state.
1. Download full blocks since the horizon to get to the chain head.

5. 모든 스테이트를 입증하는합니다..
. Download full blocks since the horizon to get to the chain head.
1.

In the rest of this section, we will elaborate on each of those steps.
이 섹션의 나머지 부분에 대해서는 각각 자세히 설명할 것입니다.
53 changes: 53 additions & 0 deletions state_KR.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# 상태와 스토리지

## Grin의 상태

### 구조

Grin chain의 모든 상태는 다음 데이터와 같이 이루어져 있습니다.

1. unspent output(UTXO) 세트
2. 각 출력값에 대한 range proof
3. 모든 트랜잭션 커널(kernel)들
4. 상기에 언급했던 각각의 MMR (예외적으로 출력값 MMR은 사용되지 않은 것 뿐만 아니라 *모든* 출력값의 해쉬를 포함합니다.) 더해서, 유효한 Proof of work 와 함께 chain 안의 모든 헤더들은 상기 상태에 대해 고정되어야 합니다. ( 상태는 가장 많이 일한 체인와 일치합니다.)
한번 각각의 range proof 가 인증되고 모든 kernel의 실행 합계가 계산되었다면 node 의 작동에 더이상 엄격하게 필요하진 않습니다.

### 인증하기

완전한 Grin의 상태를 사용해서 우리는 다음과 같은 것들을 인증 할 수 있습니다.

1. Kernel 의 signature 가 Kernel의 실행에 대해 유효하다면 ( 공개키). 이것은 Kernel이 유요하다는것을 증명합니다.
2. 모든 커밋 실행의 합이 모든 UTXO 실행의 합에서 총 공급량을 뺸 값이 같다면 이것은 Kernal과 출력값의 실행들이 유효하고 코인이 새로이 만들어지지 않았다는 것을 증명합니다.
3. 모든 UTXO, range prook 와 Kernel 해쉬들은 각각의 MMR이 있고 그 MMR 들은 유효한 root 를 해쉬합니다.
4. 특정 시점에 가장 많이 일했다고 알려진 Block header 에는 3개의 MMR에 대한 root 가 포함됩니다. 이것은 전체 상태가 가장 많이 일한 chain ( 가장 긴 체인)에서 MMR과 증명들이 만들어졌다는 것을 입증합니다.

### MMR 과 Pruning

The data used to produce the hashes for leaf nodes in each MMR (in addition to
their position is the following:
데이터는 리프 노드안의 각 MMR의 Hash를 만들어 냈었지만
* The output MMR hashes the feature field and the commitments of all outputs
since genesis.
* 출력값의 MMR 해
* The range proof MMR hashes the whole range proof data.
* The kernel MMR hashes all fields of the kernel: feature, fee, lock height,
excess commitment and excess signature.

Note that all outputs, range proofs and kernels are added in their respective
MMRs in the order they occur in each block (recall that block data is required
to be sorted).
모든 출력값, Range proof, 그리고 kernel은 각각의 MMR에 더해지고

As outputs get spent, both their commitment and range proof data can be
removed. In addition, the corresponding output and range proof MMRs can be
pruned.

## 상태 스토리지

Grin 에 있는 출력값에 대한 데이터 스토리지, Range proof 와 kernel은 간단합니다.
그 형태는 데이터 엑세스를 위한 메모리 매핑 된 append only 파일입니다.
출력값이 소비되는것에 따라서 제거 로그는 지울수 있는 위치를 유지힙니다.
이런 포지션은 MMR과 노드 포지션이 같은 순서로 입력되었으므로 잘 일치합니다.
제거 로그가 커지면 (Append only 파일도 )때때로 해당 파일을 지워진 부분 없이 다시 작성해서 압축하고 제거 로그를 비울 수 있습니다.

MMR 에 대해서는 약간의 복잡함을 더할 필요가 있습니다.