커버 이미지의 출처는 다음과 같습니다 : https://cryptozombies.io/ko/

크립토좀비 사이트 내용을 정리 및 번역하였으며, 컨텐츠 관련 모든 권리는 Loom Network에 있습니다.

과정 소개

2038년의 Crypto Zombies 전쟁이 끝나고, 군인으로써 은퇴하고, 민간인으로서 일자리를 구할 시기가 되었습니다.

여러분은 상점을 차리기로 했습니다. 꾸며진 전쟁 영웅으로서 여러분은 다음 세대의 Crypto Zombie 영웅들이 그들의 영광을 위한 퀘스트를 위해 무엇이 필요한지 알고 있습니다.

이 과정은 영웅이 상점 주인에게 상품을 살 수 있는 상점을 만들어 나가는 과정을 통해 리브라에 대한 절대적인 기초를 알려줍니다.

우리는 영웅과 상점 주인을 위한 계정 설정과 서로 간의 송금 그리고, 어떻게 이러한 거래들의 상태를 추적하는지를 알려줄 것입니다. 모든 것은 완벽하게 정확한 리브라 테스트넷의 시뮬레이션을 통해 상호 작용할 것입니다. 시뮬레이션을 마치고 나면, 우리는 오늘날의 리브라 테스트넷에 연결하기 위해 필요한 도구를 설치하는 방법을 정확하게 알려줄 것입니다.

이 과정은 사전에 프로그래밍 경험이 없어도, 빠르고 쉬운 소개를 통해 리브라와 상호작용하기 위해 설계되었습니다.

과정 시간: 30 분 - 1 시간

챕터 1: 상점 주인 되기

첫 번째 레슨으로, 커맨드 라인 인터페이스(CLI) 환경을 활용해 리브라 테스트넷과 상호작용하는 법을 배웁니다. 이 레슨은 오늘날의 진짜 리브라 테스트넷과 어떻게 상호작용할 수 있는지를 완벽하게 시뮬레이션 하고 있습니다. 나중에 우리는 스스로 이러한 환경을 설치하는 방법에 대해 보여줄 것입니다.

실제 은행 계좌와 마찬가지로, 상점 주인으로서 여러분은 물건을 판매하기 위해서는, 먼저 리브라 블록체인 위에 계정을 생성해야 합니다.

계정을 생성하는 것은 무료이며, 한 개의 지갑에 원하는 만큼 계정을 생성할 수 있습니다. 다음 장에서 이것이 가능한 기술적인 이유에 대해 알게 될 것이지만, 비유를 들어 설명하개면, 블록체인의 계정은 체크 카드를 갖는 것과 같습니다. 즉, 여러분은 원하는 만큼 계정을 만들 수 있습니다.

>libra%

이것은 현재 테스트넷에 접속하는 공식적인 방법인 리브라 CLI의 명령 프롬프트입니다. libra%는 모든 라인의 시작을 나타냅니다. 이 부분은 enter 키를 여러분이 칠 때마다 자동으로 생성되므로 입력하지 않습니다.

이제 우리는 리브라 테스트넷에 접속되었고, 아래를 통해 계정을 생성할 수 있습니다:

>libra% account create

여러분이 입력해야 할 명령어는 account create 입니다.

출력은 다음과 같을 것입니다:

> Creating/retrieving next account from wallet
Created/retrieved account #0 address dbbd9db9fe80ce2d1e8c9166bdda2dfc6c2defe25042e11e14958d64604cfd82

여기서 0은 인덱스로, 지갑에서의 위치를 나타내는 멋진 방법입니다. 우리는 프로그래머가 수학을 할 때처럼, 0부터 숫자를 세기 시작할 것입니다.

긴 문자열의 숫자와 문자들은 16진수 문자열로 알려져 있으며, 리브라에서의 체크 카드 번호라고도 생각할 수 있습니다.

주의해야 할 점은, 주소에 어느 정도의 돈이 있을 때까지 리브라 블록체인에 계정이 등록되지 않는다는 것입니다(챕터 4에서 어떻게 하는지 보여줄 것입니다).

테스트 해보기(챕터 1)

계정을 만드세요.

힌트: 커맨드를 입력하고, 엔터 키를 입력하는 것을 잊지 마세요.

완료하였다면, 아래의 “정답 확인하기”를 클릭하세요. 막힌다면, “힌트”를 클릭해 볼 수 있습니다.

>libra% account create
> Creating/retrieving next account from wallet
Created/retrieved account #0 address dbbd9db9fe80ce2d1e8c9166bdda2dfc6c2defe25042e11e14958d64604cfd82

>libra%
Success! Click "Next" to continue

>libra%

챕터 2: 영웅을 위한 계정 만들기

Crypto Zombie 세계에는 아직 은행이 존재하지 않으므로, 여러분의 고객들인 도구를 사길 원하는 영웅들에게 계정을 발급해야 합니다.

여러분은 챕터 1의 커맨드를 통해 새로운 계정을 생성할 수 있습니다.

>libra% account create

출력은 여러분에게 익숙할 것입니다:

> Creating/retrieving next account from wallet
Created/retrieved account #1 address 771bf474bb2db506e187f0756b464a3e28896efa2516867ea001187d7c174066

여러분은 새로운 계정의 인덱스가 1임을 알 수 있습니다.

매번 새로운 계정을 생성할 때마다, 인덱스는 1씩 증가할 것입니다.

테스트 해보기(챕터 2)

5개의 새로운 계정을 생성하세요.

완료하였다면, 아래의 “정답 확인하기”를 클릭하세요.

> libra% account create
> Creating/retrieving next account from wallet
Created/retrieved account #0 address 771bf474bb2db506e187f0756b464a3e28896efa2516867ea001187d7c174066

>libra% account create
> Creating/retrieving next account from wallet
Created/retrieved account #0 address 771bf474bb2db506e187f0756b464a3e28896efa2516867ea001187d7c174066

>libra% account create
> Creating/retrieving next account from wallet
Created/retrieved account #2 address 8deeeaed65f0cd7484a9e4e5ac51fbac548f2f71299a05e000156031ca78fb9f

>libra% account create
> Creating/retrieving next account from wallet
Created/retrieved account #3 address de73eb3544ba2f06956151488df834a05472762705a4319a7540c098c64912b5

>libra% account create
> Creating/retrieving next account from wallet
Created/retrieved account #4 address d915fecf32c77eda11cfc68a63a91ea959a7f27edf5282ebe8dc1060c4fbe3fb

>libra%
Success! Click "Next" to continue

>libra%

알아 두기(챕터 2)

블록체인에서의 계정은 실제로는 공개/개인 키 쌍을 기반으로 하고 있습니다. 여러분은 위키피디아에서 상세 내용에 대해 읽을 수 있습니다. 전체 과정은 인터넷에 어떤 데이터도 전송하지 않고 완벽하게 여러분의 컴퓨터에서 진행됩니다. 키 쌍이 만들어지면, 무한한 수의 계정을 얻을 수 있습니다. 이 키 쌍은 만들어진 모든 계정을 “보유”하기 때문에 “지갑”이라고도 합니다. 여러분의 모든 돈이 위험에 처할 수 있으므로, 인터넷에 여러분의 개인 키를 절대 입력하지 않도록 해야 합니다. 다른 블록체인에 익숙한 사람을 위해 설명하자면, 리브라는 “계정 생성 수수료”를 가지며, 수수료가 지불된 후에만 계정이 활성화됩니다.

챕터 3: 계정 확인하기

여러분의 상점에 영웅 한명이 방문했고, 새로운 검과 방패를 사려고 합니다.

여러분은 그에게 계정을 만들어 줘야 합니다. 그는 여러분의 첫 고객이기 때문에, 여러분은 그에게 인덱스 1을 가진 계정을 주기로 결정했습니다(인덱스 0을 가진 계정은 여러분 스스로를 위한 계정으로 보관합니다).

하지만, 여러분은 늙었기 때문에 16진수 문자열을 잊어버렸습니다.

다행히도, 여기에 모든 계정의 인덱스 번호와 16진수 문자열 리스트를 나열할 수 있는 커맨드가 있습니다.

libra% account list

출력은 다음과 같을 것입니다:

>User account index: 0, address: 3ed8e5fafae4147b2a105a0be2f81972883441cfaaadf93fc0868e7a0253c4a8, sequence number: 0
User account index: 1, address: 8337aac709a41fe6be03cad8878a0d4209740b1608f8a81566c9a7d4b95a2ec7, sequence number: 0

순서 번호

여기서 잠깐, 여기에 새로운 정보가 있습니다: 순서 번호

여러분은 계정 인덱스와 주소에 익숙합니다. 하지만 순서 번호는 뭔게? 라고 여러분은 물어볼 것입니다.

순서 번호는 계정에서 전송한 거래의 금액을 말합니다.

순서 번호는 보안 측정(조치)입니다 - 블록체인에서 거래가 처리되는데는 시간이 걸립니다.

계정에 10 LBR를 가지고 있는 악의적인 고객(악당)이 있다고 가정해봅시다. 악당은 10 LBR를 상점과 다른 상점에 동시에 보낼 수 있습니다. 순서 번호가 없으면, 악당이 20 LBR를 가지고 있지 않아도 리브라 블록체인은 이론적으로 두 개의 트랜잭션을 동시에 처리할 수 있습니다.

다행히도, 순서 번호를 사용하면 리브라 블록체인은 같은 순서 번호를 가진 두 거래를 거부할 것입니다. 고객은 거래를 순서대로 보내야 하며, 두 번째 거래는 잔액 부족으로 거부됩니다. 따라서, 악당은 자신이 가진 것보다 더 많이 사용할 수 없습니다.

테스트 해보기(챕터 3)

계정 목록을 확인합니다.

완료하였다면, 아래의 “정답 확인하기”를 클릭하세요. 막힌다면, “힌트”를 클릭해 볼 수 있습니다.

>libra% account list
>User account index: 0, address: dbbd9db9fe80ce2d1e8c9166bdda2dfc6c2defe25042e11e14958d64604cfd82, sequence number: 0, status: Local
User account index: 1, address: 771bf474bb2db506e187f0756b464a3e28896efa2516867ea001187d7c174066, sequence number: 0, status: Local

>libra%
Success! Click "Next" to continue

>libra%

챕터 4: 모두를 위한 공짜 돈

이번 챕터에서는 상점 주인 주소에 자금을 조달하는 방법에 대해 알아봅니다.

테스트넷의 리브라 코인은 실제 가치가 없습니다. 따라서, 실수를 하더라도 문제가 없습니다. 메인넷에서 리브라는 검증자에 의해 생성되지만, 테스트넷에서는 주조(Minting)라고 불리는 과정을 수행함으로써 약간의 리브라를 만들 수 있습니다.

>libra% account mint 3 300

이 예시에서, 여러분은 인덱스 3을 가진 계정에 300 LBR를 발행했습니다.

챕터 1에서 우리는 리브라 블록체인에서 계정은 LBR를 가지기 전까지는 존재하지 않는다고 말했습니다.

LBR를 계정에 발행하면, 해당 계정이 블록체인에 추가됩니다.

테스트 해보기(챕터 4)

300 LBR를 상점 주인 계정에 발행해보세요.

(힌트: 상점 주인 계정의 인덱스는 0입니다)

그리고, 300 LBR를 영웅의 계정에 추가해 보세요.

완료하였다면, 아래의 “정답 확인하기”를 클릭하세요. 막힌다면, “힌트”를 클릭해 볼 수 있습니다.

>libra% account mint 0 300
Minting coins.

300 LBR Minted

>libra% account mint 1 300
Minting coins.

300 LBR Minted

>libra%
Success! Click "Next" to continue

>libra%

알아 두기(챕터 4)

리브라 코인의 시가 총액은 현재 64비트의 부호 없는 정수이므로, 확인 하지 않고, 너무 많은 코인을 발행하면 최대 제한을 넘길 수 있습니다! 실제 리브라 시스템에서 코인은 실제 통화로 뒷받침되므로 이러한 상황은 문제가 되지 않을 것이지만, 발행은 경우에 따라 드물지만 훨씬 더 비용이 많이 들 수 있습니다.

챕터 5: 아이템에 값 지불하기

좋았어요! 여러분은 이제 상점 주인과 영웅 모두를 위한 계정을 생성했습니다.

또한, 여러분은 두 계정에 약간의 LBR를 추가했습니다.

영웅은 여러분의 상점을 둘러보고 있으며, 사고 싶은 방패를 발견했습니다.

이 방패의 가격은 75 LBR이지만, 약간의 흥정 끝에 50 LBR에 판매하기로 했습니다.

영웅은 그의 계정에서 LBR를 어떻게 여러분에게 전송하는지 모르므로, 여러분이 알려줘야 합니다.

여기에 거래의 예시가 있습니다:

>libra% transfer 1 0 10

첫 번째 단어(기술적으로는 인자라고 부릅니다)는 보내는 사람(1)의 인덱스입니다. 여러분은 인덱스 대신 이전에 알려줬던 16진수의 긴 문자열인 참조 ID를 사용할 수도 있습니다.

두 번째 인자는 받는 사람(0)의 인덱스이며, 앞에서 처럼 참조 ID를 대신 사용할 수 있습니다.

세 번째 인자는 보낼 LBR의 금액입니다(10).

따라서 이 예시는, 1번 인덱스를 가진 계정이 0번 인덱스를 가진 계정에 10 LBR를 보내는 것입니다.

가스, 무엇이고 누가 지불하나

리브라에서, 매번 거래가 발생할 때마다 거래 수수료가 있습니다. 이 수수료는 가스라는 단위로 지불됩니다. 여러분이 매번 거래를 전송할 때마다, 각 가스당 원하는 가격과 지불할 최대 가스량을 설정할 수 있습니다. 검증자들은 더 높은 가스 거래를 우선하며, 상대적으로 더 빠르게 전송됩니다.

테스트넷에서는 이러한 것들이 중요하지 않습니다. 하지만, 메인넷에서는 자체 베이스체인처럼 가스가 없는 레이어 2 솔루션을 사용해서 과도한 가스를 지불하는 것을 피해야 합니다.

테스트 해보기(챕터 5)

50 LBR을 영웅의 계정에서 상점 주인 계정으로 보내세요.

완료하였다면, 아래의 “정답 확인하기”를 클릭하세요.

>libra% transfer 1 0 50
Transaction submitted to validator

50 LBR transfered

>libra%
Success! Click "Next" to continue

>libra%

챕터 6: 거래의 과정을 확인하기

순서 번호는 1씩 증가하기 때문에, 순서 번호를 질의해서 실제로 검증자에게 거래가 전송되었는지 확인할 수 있습니다.

우리는 두 가지 방법으로 순서 번호를 확인할 수 있습니다: 여러분의 계정 상태 또는 단순히 특정 계정의 순서 번호를 질의하는 방법이 있습니다:

>libra% account list
>libra% query sequence  0

우리는 이 커맨드를 사용하여 순서 번호가 무엇인지 확인할 수 있습니다. 만약 거래가 정상적으로 진행되었다면, 순서 번호는 1 증가하였을 것입니다.

완결성과 블록체인

만약 순서 번호가 도달하였다면, 그것은 성공을 말하는걸까요? 아닙니다. 거래는 좋지 않은 네트워크 연결, 충분하지 않은 가스 또는 다른 오류로 인해 손실될 수 있습니다. 하지만 오류가 없다면, 확인되었다고 확실히 말할 수 있는 시점은 어디일까요?

지불 처리자와 은행 네트워크를 포함하여 많은 참가자가 있는 VISA 네트워크를 살펴보겠습니다. 거래는 어느 단계에서나 분쟁을 일으킬 수 있으므로 완전히 처리하는 데 며칠이 걸립니다. 거래는 어느 단계에서나 분쟁이 일어날 수 있으므로, 완전히 처리하는데 며칠이 걸립니다. 그리고 거래 후 몇 개월이 지나지 않았다면, 가끔 거래에 분쟁이 생길 수 있습니다.

블록체인에서 완결성(Finality)은 즉각적인 것이 아닙니다. 오래된 네트워크는 각각의 블록을 생성할 때, 확률적으로 과거를 변경하는 것이 훨씬 더 어려워지므로 감소한다는 확률론적 완결성(Probalistic Finality)이라는 개념을 사용하는 경향이 있습니다. 비트코인이나 이더리움을 입금하려면 10, 20 또는 50 블록을 기다리는 것이 필요한 이유입니다(받는 사람이 얼마나 위험을 감수하느냐에 따라 달라짐). 리브라 또는 우리의 베이스체인과 같은 최신 네트워크는 투표의 결과이므로, 즉각적인 완결성을 갖습니다.

테스트 해보기(챕터 6)

두 가지 방법 모두를 사용해 순서 번호 1을 가진 영웅의 계정을 확인하세요.

완료하였다면, 아래의 “정답 확인하기”를 클릭하세요.

>libra% account list
User account index: 0, address: dbbd9db9fe80ce2d1e8c9166bdda2dfc6c2defe25042e11e14958d64604cfd82, sequence number: 0, status: Local
User account index: 1, address: 771bf474bb2db506e187f0756b464a3e28896efa2516867ea001187d7c174066, sequence number: 1, status: Local

>libra% query sequence 1
Sequence number is: 1

>libra%
Success! Click "Next" to continue

>libra%

챕터 7: 상점 주인의 잔액 확인하기

거래가 처리된 후 아래와 같이 상태를 확인할 수 있습니다:

>libra% query txn_acc_seq 1 0 true

상태를 포함한 거래의 기술적인 세부사항들이 출력됩니다:

>> Getting committed transaction by account and sequence number
Committed transaction: SignedTransaction { 
 raw_txn: RawTransaction {
        sender: 40d92e9800b0a915b8a445033e3c97dfb8fe2ba3e4a3aec96261dccb7955052c,
        sequence_number: 0,
        payload: {,
                transaction: peer_to_peer_transaction,
                args: [
                        {ADDRESS: 7fc0d913e81a222927406f634b0157dd6a9ad639faad2b280d3555011d761b4f},
                        {U64: 100000000},
                ]
        },
        max_gas_amount: 140000,
        gas_unit_price: 0,
        expiration_time: 1569836020s,
},
 public_key: Ed25519PublicKey(
    PublicKey(CompressedEdwardsY: [73, 175, 171, 78, 17, 239, 54, 117, 117, 145, 33, 237, 107, 58, 189, 31, 58, 137, 81, 105, 252, 26, 133, 
89, 119, 193, 111, 233, 100, 82, 90, 45]), EdwardsPoint{
        X: FieldElement51([309902793287818, 1485124018439498, 634313704607495, 1730304085918062, 1719929927279149]),
        Y: FieldElement51([1951707473620809, 1545519053581990, 1484499216954601, 206350672821812, 797855242426108]),
        Z: FieldElement51([1, 0, 0, 0, 0]),
        T: FieldElement51([87169944716583, 1916378871435050, 1034728963396755, 2048077977546062, 329376871138617])
    }),
),
 signature: Ed25519Signature(
    Signature( R: CompressedEdwardsY: [187, 5, 197, 84, 64, 173, 46, 68, 115, 187, 224, 118, 176, 190, 138, 127, 140, 254, 201, 126, 187, 231, 121, 246, 30, 178, 86, 79, 28, 64, 98, 183], s: Scalar{
        bytes: [144, 82, 207, 139, 15, 235, 72, 118, 85, 160, 13, 207, 44, 248, 244, 31, 32, 168, 13, 88, 15, 89, 169, 240, 52, 233, 231, 172, 45, 46, 170, 9],
    } ),
),
 }
Events:

이것은 리브라 세계에서 돈을 지불하고 송금했음을 증명하는 영수증과 같습니다.

잔액 확인하기

영웅이 여러분에 지불했으므로, 방패를 넘기기 전에 여러분이 올바른 금액의 LBR을 얻었는지 확인해보겠습니다.

잔고를 확인하려면, 아래 예시와 같이 명령어를 입력합니다:

$ query balance 2

이 커맨드는 인덱스 2를 가진 계정의 잔고를 확인합니다.

테스트 해보기(챕터 7)

상점 주인의 잔고가 350인지 확인하세요(힌트: 상점 주인의 인덱스가 몇인지 기억하시죠?).

완료하였다면, 아래의 “정답 확인하기”를 클릭하세요. 막힌다면, “힌트”를 클릭해 볼 수 있습니다.

$ query balance 0
Balance is: 350.000000

$
Success! Click "Next" to continue

$

알아 두기(챕터 7)

모든 데이터가 블록 체인에서 사용 가능하기 때문에, 계정 주소를 안다면 모든 사람의 잔액을 질의할 수 있습니다. 잔액이 비밀이 아니라는 차이점은 전통적인 은행만 사용했던 사람들에게 직관적이지 않을 수 있습니다.

거래를 질의할 때, 실제로 보여지는 단위는 전체 리브라의 1/1000000로 정의된 마이크로 리브라입니다. 일반적인 통화에서는 가장 작은 단위를 Pip 라고 부르며, 마이크로 리브라보다 100배 큰 1/10000을 의미합니다.

챕터 8: 스스로 테스트넷에 연결해보기(파트 1)

이제 기본적인 사항을 살펴 봤으므로, 컴퓨터에서 설정하고 실제로 사용해 볼 차례입니다.

우선, 여러분의 환경이 맥, 리눅스 또는 WSL(윈도우 하위 시스템)이 있는 윈도우(WSL이 설치되어 있지 않다면, 여기의 가이드를 참조하세요.)인지를 확인하세요.

CLI 설치하기

리브라 코드를 실행하고, 다운로드할 폴더로 이동합니다:

git clone https://github.com/libra/libra.git

쉘 프롬프트에서 각 라인은 $로 시작하며 여러분을 의미합니다.

다음을 실행하여 테스트넷에 있는지 확인합니다.

cd libra
git checkout testnet

완료되면, 한 개의 커맨드로 의존성을 설치할 수 있습니다.

./scripts/dev_setup.sh

확인 메시지가 표시되어 y를 누르면, 끝난 것입니다!

테스트 해보기(챕터 8)

여기에서 실습을 수행하고, CLI 도구를 설치해 보세요!

$ git clone https://github.com/libra/libra.git
Cloning into 'libra'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (3/3), done.
receiving objects:   100% (18071/18071), done.

$ cd libra

$ git checkout testnet
Switched to branch 'testnet'
Your branch is up to date with 'origin/testnet'.

$ ./scripts/dev_setup.sh
➜  libra git:(testnet) ./scripts/dev_setup.sh
Welcome to Libra!

This script will download and install the necessary dependencies needed to
build Libra Core. This includes:
        * Rust (and the necessary components, e.g. rust-fmt, clippy)
        * CMake, protobuf

If you'd prefer to install these dependencies yourself, please exit this script
now with Ctrl-C.

Proceed with installing necessary dependencies? (y/N) > y
Installing Rust......
info: downloading installer
info: updating existing rustup installation


Rust is installed now. Great!
....

$
Success! Click "Next" to continue

$

챕터 9: 스스로 테스트넷에 연결해보기(파트 2)

설치 프로세스가 완료되면 시간이 걸리더라도 걱정하지 마세요. 설치해야 할 것들이 많습니다. 아래 커맨드를 통해 CLI에 연결할 수 있습니다:

./scripts/cli/start_cli_testnet.sh

아래와 같이 더 많이 설치해야 합니다:

Building and running client in debug mode.
    Updating git repository `https://github.com/calibra/curve25519-dalek.git`
    Updating git repository `https://github.com/calibra/ed25519-dalek.git`
    Updating git repository `https://github.com/calibra/x25519-dalek.git`
    Updating git repository `https://github.com/calibra/rust-curve25519-fiat.git`
  Downloaded reqwest v0.9.19
  Downloaded serde v1.0.99
  Downloaded typed-arena v1.5.0
  ....

빌드가 끝나면, 마침내 준비가 된 것입니다! 여러분은 아래와 같이 환영하면 됩니다:

Connected to validator at: ac.testnet.libra.org:8000
usage: <command> <args>

Use the following commands:

account | a
        Account operations
query | q
        Query operations
transfer | transferb | t | tb
        <sender_account_address>|<sender_account_ref_id> <receiver_account_address>|<receiver_account_ref_id> <number_of_coins> [gas_unit_price_in_micro_libras (default=0)] [max_gas_amount_in_micro_libras (default 140000)] Suffix 'b' is for blocking.
        Transfer coins (in libra) from account to another.
help | h
        Prints this help
quit | q!
        Exit this client


Please, input commands:

이제는 모든 커맨드가 어느 정도 익숙해야 합니다. 원한다면, 스크린 왼쪽 하단의 작은 햄버거 버튼을 누르고, 챕터 1로 돌아갈 수 있습니다. 검토를 위해 실제 테스트넷에서 입력할 모든 커맨드를 다시 실행할 수 있습니다. 여기서 여러분을 기다리겠습니다.

모두 끝났나요? 한 가지 더 짚고 가야 할 점이 있습니다. 도구를 실행했을 때, Connected to validator at: ac.testnet.libra.org:8000 라고 출력합니다.

검증자들은 기관들이며, 실제 서버를 실행해 각각의 거래가 유효한지를 확인하고(챕터 4에서 설명했던 여러분의 공개키를 사용합니다), 블록체인에 연결합니다.

블록 체인에는 컨센서스 메커니즘을 통해 서로 정직하게 유지하는 여러 검증자가 있습니다.이 메커니즘에는 일반적으로 부정 행위에 대한 재정적 처벌이 포함됩니다.

블록체인에는 일반적으로 부정 행위에 대한 금전적인 처벌을 포함하는 컨센서스 알고리즘을 통해 서로에게 정직함을 유지하는 여러 검증자가 있습니다. 리브라에는 100개의 검증자가 있습니다. 이러한 많은 수의 검증자로 인해, 10초의 완결 시간 목표와 합의(Consensus)를 달성하는데 어느 정도의 시간이 필요합니다. 여러분은 실제 고급 사용을 위해 일부 거래를 레이어 2 솔루션으로 오프로드해 더 빠른 성능을 얻을 수 있지만, 이것은 나중에 다른 레슨에서 설명하겠습니다.

테스트 해보기(챕터 9)

CLI를 시작하세요! 그리고, 챕터 1부터 챕터 7까지의 명령어를 다시 실행하세요.

$ ./scripts/cli/start_cli_testnet.sh
Connected to validator at: ac.testnet.libra.org:8000
usage: <command> <args>

Use the following commands:

account | a
        Account operations
query | q
        Query operations
transfer | transferb | t | tb
        <sender_account_address>|<sender_account_ref_id> <receiver_account_address>|<receiver_account_ref_id> <number_of_coins> [gas_unit_price_in_micro_libras (default=0)] [max_gas_amount_in_micro_libras (default 140000)] Suffix 'b' is for blocking.
        Transfer coins (in libra) from account to another.
help | h
        Prints this help
quit | q!
        Exit this client


Please, input commands:

$
Success! Click "Next" to continue

$

챕터 10: 레슨 완료

축하합니다! 여러분은 CryptoZombies 리브라 과정의 레슨 1을 완료했습니다. 여러분은 계좌를 생성하고, 잔고를 확인하고, 계절 리스트를 출력하고, 거래를 전송하는 법을 배웠습니다. 여러분은 공식적으로 리브라 개발자에 한 계단 더 가까워졌습니다.

at4am의 프로필 이미지

at4am

2019년 11월 19일

글쓴이의 더 많은 글 읽어보기