RETchain Testnet은 살아 있습니다

시작 및 상호 작용 안내서

RealTract Network
RealTract Network
15 min readDec 17, 2019

--

RealTract 팀은 RETchain Testnet을 시작하게 된 것을 매우 자랑스럽게 생각합니다. 이것은 현재와 미래에 프로젝트의 강력한 발전을위한 중요한 이정표입니다. RealTract 팀은 철저하게 구축 및 테스트했으며, 대망의 메인 넷을 출시하기 전에 피드백을 테스트하고 신중하게 고려할 수 있도록 커뮤니티에 제시하고자합니다.

이전에 발표 한 바와 같이 RETchain Testnet 프로세스는 여러 단계로 나뉘어 최종 Testnet 버전이 아닙니다. 메인 넷이 공식적으로 출시되기 전에 커뮤니티가 검토 할 수 있도록 더 많은 버전이 출시 될 예정입니다.

Testnet 버전 1은 PoA (Proof-of-Authority)와 함께 RETchain explorer, Validator 스마트 계약 및 개인 정보 토큰 계약을 포함한 개인 도구 토큰과 같은 도구 모음을 사용합니다.

우리의 기술에 익숙해 지십시오.

기본 블록 체인 구성 요소의 상호 작용 방식에 대한 일반적인 아키텍처 개요와 이해를 얻으려면 RealTract 백서 버전 3을 확인하십시오.

테스트 넷 토큰 수도꼭지 기능.

Metamask와 연결하여 설정, 계정 작성 및 RET Testnet 토큰 수신에 참여할 수 있습니다. 절차는 다음과 같습니다.

1 단계 : 로그인하여 Metamask 계정에있다. 이미 브라우저 Metamask를 설치하지 않은 경우,이 링크를 참조하시기 바랍니다

2 단계 : “네트워크 변환”창에서 “사용자 정의 RPC”를 선택하십시오. “설정”필드에 다음 정보를 입력 한 다음 “저장”을 클릭하십시오.

3 단계 : http://validator.realtract.network/faucet로 이동하여 Metamask에서 얻은 RETchain Testnet 지갑의 주소를 입력하고 Claim을 클릭하여 RET Token Testnet을 받으십시오.

RET 토큰 전송 / 수신

사용자는 Metamask를 통해 수도꼭지 기능에서 얻은 RET 토큰 Testnest를 송수신 할 수 있습니다

RETchain Explorer

RETchain Explorer는 RETchain을 검사하고 분석하기위한 도구입니다.

http://explorer.realtract.network/

Privacy Smart Contract

http://validator.realtract.network:8080

익명의 국경 간 송금 데모 (개인 정보 보호)

  1. 로그인 :
    -msg : LOGIN : {address}로 서명하십시오.
    -서명에서 메타 마스크 계정의 공개 키 (PK)를 가져옵니다.
    -서명에서 개인 키보기 (VPK)가 생성됩니다. VPK는 메모의 가치를 해독하는 데만 사용됩니다.
    -메타 마스크 계정 (수신자)의 PK 및보기 공개 키 (VK)가 발신자에게 전송됩니다.
  2. 데모 :
    -Rcoin을 ERC20 Rtoken으로 변환합니다 (1 Rcoin = 1 Rtoken, 십진수 18).
    -스케일링 계수가 1e18 인 ERC20 Rtoken을 Confidential Token으로 변환하십시오.
    -기밀 전송 (전송 금액이 암호화 됨).
    -기밀 토큰을 ERC20 Rtoken으로 변환하십시오.
    -ERC20 Rtoken을 Rcoin으로 다시 변환하십시오.
  3. 기밀 전송 메커니즘 :
    -모든 노트의 VK는 수신자의 VK로 암호화되어 온 체인에 제출됩니다. 이러한 프로세스는 발신자가 수신자에게 암호화 된 메모보기 키를 보내는 거래 채널을 통해 오프 체인으로 처리 될 수 있습니다.
    -일단 로그인하면 Dapp은 과거 이벤트를 수신하여 사용하지 않은 메모를 작성합니다. VPK를 사용하여 메모 값을 해독합니다.
    -이 기밀 전송은 기본적으로 입력 값의 합이 출력의 합과 동일하도록 알 수없는 음표 값과 무지가있는 UTXO 모델처럼 작동합니다.
  4. 예 : Alice는 X1 토큰을 Bob1로, X2 토큰을 Bob2로 보내려고합니다.
    A. Bob은 Alice에게 공개 키를 보냅니다.
    B. Alice는 Bob1의 공개 키 P1 (Bob is node ‘s owner)에서 value = X1로 Note1을 Output1로 작성하고보기 키 V1으로 노드를 암호화합니다 (노드 값에 대한 전체 세부 사항을 보려면 소유자). Bob2와 동일한 작업을 수행하고 Output2 (X2, V2, P2)를 얻습니다.
    C. Alice는 sum = S> = X1 + X2 인 사용되지 않은 노드 (입력 1… 입력 N)를 소유합니다. 그녀는 공개 키와 합계 = R = S-X1-X2 인 동일한보기 키 (제어하기 쉬운)로 나머지 출력 (값이 0 인 더미 노트 일 수 있음)으로 노트를 생성합니다.
    D. Alice는 선택된 입력과 생성 된 노드 (Bob1, Bob2 및 자신)로 Tx를 생성합니다.
    E. Viewing Key가 없으면 아무도 각 음표의 값을 읽을 수 없습니다. ZK의 도움으로 계약은 Sum (Inputs) = Sum (Outputs)의 정확성 만 검증 할 수 있습니다.
    F. Alice는 V1을 Bob1로, V2를 Bob2로 전송하므로 수신 메모를 확인할 수 있습니다.

Gas Station

스팸 방지 기능 (크립토 키티와 같이 네트워크를 막을 수 없음) 및 가스 충성도 (노드가 네트워크에 할당하는 가스가 많을수록 나중에 트랜잭션의 우선 순위를 정하는 데 필요한 가스가 적음)

  1. 각 계정에는 1 X 계수 (0 <= X <= 0.5)가 있습니다. 총 지출 금액이 많은 계정 (accountFee)은 X가 더 높습니다.
  2. 현재 accountFee> = 1/1000 인 경우 * 네트워크의 총 지출 비용은 X가 0.5에 도달합니다.
  3. 1 tx마다 실러는 X * 수수료를받습니다. 남은 수수료 = (1-X) * 수수료는 0x0으로 보내져 소각됩니다.
  4. 큐잉 tx 풀에서 tx의 우선 순위는 가장 인기있는 블록 체인의 경우 gasPrice 대신 = gasPrice * X입니다. tx 풀에서 트랜잭션의 우선 순위가 높습니다.

Validator Staking

http://validator.realtract.network/

코인 스테이 킹 데모

모든 검증 인은 코인 입금 / 출금, 검증 인 가입 / 탈퇴, 보상 청구 및 결함있는 검증 인보고를 통해 투자자가 RET 채굴에보다 많은 정보를 제공 할 수 있도록 도와줍니다. 보고 된 유효성 검사기 목록은 실시간으로 업데이트됩니다.

  1. 유효성 검사기 목록이 실시간으로 업데이트됩니다 (가입 / 탈퇴 활동).
  2. StakeRequired = CoinSupply / 1000 (가칭) 또는 3 개의 생성 검증자가이를 우회합니다.
  3. 안전 범위 (SR)는 2 * N (예정)에서 블록 =
    -동일한 유효성 검사기에서 2 개의 연속 보고서는 SR 블록 이상 떨어져 있어야합니다.
    -유효성 검사기는 적어도 SR 블록에 가입 한 후에 만보고 할 수 있습니다.
    -유효성 검사기는 마지막 블록으로 봉인 된 블록이 현재 블록과 떨어진 SR 블록 인 경우에만 가능합니다.
    -SR 차단 후 트랜잭션을 되돌릴 수 없습니다.
  4. 블록 보상은 모든 검증 자간에 풀에서 공유됩니다. 따라서 모든 블록 후에는 각 유효성 검사기에서받은 보상 금액 만 증가합니다.
    청구 된 후에는 현금화 할 수있을 때까지
  5. 보상 “냉동 밸런스”10 개 * N 블록의 로크 범위 (LR)에 대한 잠금에 첨가한다.
  6. 6 블록마다 봉인 된 후, 검증자는 1 포인트를받습니다. 발리 데이터의 총 LP는 항상 <= 횟수 + 3을 범하고 감소하지된다.
  7. 모든 성공적인보고 후보고 유효성 검사기는 1RP를받습니다.
    보고 때보고 된 검증 LP의 경우
  8. > = 횟수 범되고, 그 페널티 (전체 지분의 비율로) 만 기지 량 것이다.
  9. 보고 된 경우,보고 된 유효성 검사기의 LP가 <벌칙을받는 횟수 인 경우, 벌칙은 2 ^ k의 기본 금액이됩니다 (k = 벌점을받은 횟수에서 LP를 뺀 횟수).
  10. 범 경우 냉동 잔액이 충분하다면,이 금액만큼 공제됩니다 (10)은 비례 지분의 점유율로 검증에 배포된다.
  11. 범 때 냉동 잔액이 부족한 경우, 상기 검증의 보상 밸런스 (자동 항 및 냉동 잔액 이동) 퇴출한다.

12. 보상 잔액이 부족한 경우, 벌점을받은 검증 인이 자동으로 추방되며, 모든 스테이크 금액이 부과되지 않고 남은 벌금까지 공제됩니다.

소스 구축

전제 조건 및 자세한 빌드 지시 사항은 아래 설치 지시 사항을 읽으십시오.

Linux / Unix 설치 지시 사항

(DigitalOcean, AWS 등의 Linux / Unix 서버를 사용할 수 있습니다.)

패키지 관리자 업데이트 및 설치 git

sudo apt-get update && sudo apt-get -y upgrade
sudo apt-get install git

저장소를 선택한 디렉토리에 복제하십시오.

git clone https://github.com/RealTract/RETchain.git

Go의 최신 배포판이 없으면 설치하십시오. 아래 문서 가이드를 참조하여 Ubuntu 18.04에 Go를 설치하십시오.

Go의 최신 배포판이 없으면 설치하십시오. 아래 문서 가이드를 참조하여 Ubuntu 18.04에 Go를 설치하십시오.

https://www.digitalocean.com/community/tutorials/how-to-install-go-on-ubuntu-18-04

rchain 을 빌드하려면 Go (버전 1.10 이상)와 C 컴파일러가 모두 필요합니다. 자주 사용하는 패키지 관리자를 사용하여 설치할 수 있습니다.

sudo apt-get install -y build-essential

종속성이 설치되면 마지막으로 다음 명령을 사용하여rchain 프로그램을 빌드하십시오.

cd RETchain
make rchain

또는 전체 유틸리티 제품군을 빌드하려면 다음을 수행하십시오.

make all

이제build/bin/rchain을 실행하여 노드를 시작할 수 있습니다.

RETchain 실행

가능한 모든 명령 행 플래그를 살펴 보는 것은 여기서 다루지 않지만 일반적인rchain 인스턴스를 실행하는 방법을 빠르게 익힐 수 있도록 몇 가지 일반적인 매개 변수 콤보를 열거했습니다.

RETchain 네트워크의 검증기 노드

유효성 검사기의 블록에 서명 할 rchain 계정을 만듭니다.

./build/bin/rchain account new

새 계정의 비밀번호를 입력하라는 메시지가 즉시 나타납니다. 그리고 참고Your new account is locked with a password. Please give a password. Do not forget this password.. 예를 들어 비밀번호로123456 을 입력합니다.

일치하는 비밀번호와 반복 비밀번호123456을 입력하면 다음과 같은 새 계정이 생성됩니다.

Your new key was generatedPublic address of the key:   e94d5a92aeacaff99fe1ab6988ddb3e66c9fd4eb
Path of the secret key file: /root/.rchain/keystore/UTC--2019-11-05T15-46-35.685344950Z--e94d5a92aeacaff99fe1ab6988ddb3e66c9fd4eb
- You can share your public address with anyone. Others need it to interact with you.
- You must NEVER share the secret key with anyone! The key controls access to your funds!
- You must BACKUP your key file! Without the key, it's impossible to access account funds!
- You must REMEMBER your password! Without the password, it's impossible to decrypt the key!

서명을 위해 cli에서 계정을 잠금 해제하려면 먼저 echo 123456 > passwd를 실행 한 다음 passwd 파일 이름을--password 옵션에 전달하여 아래의 유효성 검사기 노드를 실행하여 위의 계정 비밀번호를 passwd라는 파일에 기록합니다.

아래와 같이 --mine cli 옵션을 사용하여 유효성 검사기로 노드를 실행하십시오. 또한 비밀번호로 etherbase 계정을 잠금 해제해야합니다. 예를 들어 e94d5a92aeacaff99fe1ab6988ddb3e66c9fd4eb 계정으로 유효성 검사기 노드를 실행합니다.

nohup ./build/bin/rchain --mine --unlock e94d5a92aeacaff99fe1ab6988ddb3e66c9fd4eb --password passwd --etherbase e94d5a92aeacaff99fe1ab6988ddb3e66c9fd4eb

그런 다음 rchain 유효성 검사기 dapp에 와서 위의 잠금을 해제하는 e94d5a92aeacaff99fe1ab6988ddb3e66c9fd4eb의 코인베이스로 유효성 검사기를 저장하고 등록하십시오.

RETchain 네트워크의 전체 노드

가장 일반적인 시나리오는 RETchain 네트워크와 단순히 상호 작용하기를 원하는 사람들입니다. 자금 이체; 계약을 배포하고 상호 작용합니다. 이 특정 사용 사례의 경우 사용자는 오래된 기록 데이터에 신경 쓰지 않으므로 네트워크의 현재 상태와 빠르게 동기화 할 수 있습니다. 그렇게하려면 :

$ rchain console

이 명령은 :

  • 빠른 동기화 모드에서 rchain을 시작하고 (기본값은 --syncmode 플래그로 변경 가능) RETchain 네트워크의 전체 히스토리 처리를 피하기 위해 더 많은 데이터를 다운로드하여 CPU를 많이 사용합니다.
  • rchain의 자체 관리 API뿐만 아니라 모든 공식적인 web3 메소드를 호출 할 수있는 rchain의 내장 대화 형 JavaScript console 콘솔 (후행 콘솔 부속 명령을 통해)을 시작하십시오. 이 도구는 선택 사항이며,이를 그대로두면 rchain 연결을 사용하여 이미 실행중인 rchain 인스턴스에 언제든지 연결할 수 있습니다.

프로그래밍 방식으로 rchain 노드에 인터페이스

개발자는 조만간 자신의 프로그램을 통해 수동으로 콘솔을 통하지 않고 rchain 및 RETChain 네트워크와 상호 작용하기를 원할 것입니다. 이를 지원하기 위해 rchain은 JSON-RPC 기반 API를 기본적으로 지원합니다. HTTP, WebSocket 및 IPC (UNIX 기반 플랫폼의 UNIX 소켓 및 Windows의 명명 된 파이프)를 통해 노출 될 수 있습니다.

IPC 인터페이스는 기본적으로 활성화되어 있으며rchain에서 지원하는 모든 API를 공개하지만 HTTP 및 WS 인터페이스는 수동으로 활성화해야하며 보안상의 이유로 일부 API 만 공개해야합니다. 이것들은 예상대로 켜고 끄고 구성 할 수 있습니다.

HTTP 기반 JSON-RPC API 옵션 :

  • --rpc HTTP-RPC 서버 활성화
  • --rpcaddr HTTP-RPC 서버 청취 인터페이스 (기본값 : localhost)
  • --rpcport HTTP-RPC 서버 수신 포트 (기본값 : 8545)
  • --rpcapi API는 HTTP-RPC 인터페이스를 통해 제공됩니다 (기본값 : eth,net,web3)
  • --rpccorsdomain 쉼표로 구분 된 도메인 간 요청을 수락 할 도메인 목록 (브라우저 적용)
  • --ws WS-RPC 서버 사용
  • --wsaddr WS-RPC 서버 청취 인터페이스 (기본값 : localhost)
  • --wsport WS-RPC 서버 수신 포트 (기본값 : 8546)
  • --wsapi API는 WS-RPC 인터페이스를 통해 제공됩니다 (기본값 : eth,net,web3)
  • --wsorigins 웹 소켓 요청을 수락 할 출처
  • --ipcdisable IPC-RPC 서버 비활성화
  • --ipcapi API는 IPC-RPC 인터페이스를 통해 제공됩니다 (기본값 : admin,debug,eth,miner,net,personal,shh,txpool,web3)
  • --ipcpath datadir 내의 IPC 소켓 / 파이프의 파일 이름 (명시 적 경로는 이스케이프 처리)

HTTP, WS 또는 IPC를 통해 위 플래그로 구성된 rchain 노드에 연결하려면 자체 프로그래밍 환경의 기능 (라이브러리, 도구 등)을 사용해야하며 모든 전송에서 JSON-RPC를 사용해야합니다. 여러 요청에 대해 동일한 연결을 재사용 할 수 있습니다!

참고 : HTTP / WS 기반 전송을 열기 전에 보안이 미치는 영향을 이해하십시오! 인터넷의 해커들은 노출 된 API로 rchain 노드를 파괴하려고 적극적으로 노력하고 있습니다! 또한 모든 브라우저 탭에서 로컬로 실행중인 웹 서버에 액세스 할 수 있으므로 악의적 인 웹 페이지가 로컬로 사용 가능한 API를 파괴 할 수 있습니다!

테스트 넷 목표

여러 테스트 넷 반복을 통해 개선 및 조정을 통해 테스트 넷 중에 모든 것이 부지런히 테스트되면 메인 넷을 시작합니다. 이 시점에서 우리는 커뮤니티로부터 피드백을 수집하고 RETchain Protocol을 개선하기 위해 노력하고 있습니다. Telegram 그룹에 대한 통찰력을 공유하거나 GitHub에서 요청을 가져 와서 기여하십시오.

--

--