문서

노드 운영

tintd는 검증자 프로그램입니다. 이 페이지는 로컬 테스트 네트워크, 명령어, 공개 테스트 노드의 구성 방식을 다룹니다.

테스트 네트워크: 코인에는 가치가 없습니다

명령어

명령어기능
tintd testnet로컬 테스트 네트워크의 파일을 만듭니다.
tintd run검증자 하나를 실행합니다.
tintd pay시드 파일의 지갑에서 코인을 보냅니다.
tintd swap시드 파일 지갑의 코인 하나를 풀을 통해 다른 코인으로 교환합니다.

한 컴퓨터의 로컬 테스트 네트워크

검증자 네 개의 파일을 만든 다음, 각각을 별도의 터미널에서 시작합니다.

bash
tintd testnet --dir net --addresses 127.0.0.1:4100,127.0.0.1:4101,127.0.0.1:4102,127.0.0.1:4103
bash · validator 0
tintd run --local \
  --genesis net/genesis.bin \
  --validators net/validators.txt \
  --key net/validator-0/key \
  --data net/validator-0/data \
  --rpc 127.0.0.1:4200

검증자 1~3도 각자의 --key, --data로 반복하며, 지갑 인터페이스도 쓰려면 서로 다른 --rpc 포트를 지정합니다. --local은 한 컴퓨터의 네트워크에 필요한 사설 주소를 허용합니다.

testnet은 genesis.bin, validators.txt, 검증자별 키가 든 폴더, 그리고 모든 테스트 코인을 가진 지갑의 시드인 faucet.seed를 만듭니다. 시드는 비공개로 보관하세요.

명령줄에서 코인 보내기와 스왑

bash
tintd pay --node http://127.0.0.1:4200 --seed net/faucet.seed --to tint1... --amount 100
bash
tintd pay --node http://127.0.0.1:4200 --seed net/faucet.seed --to tint1... --amount 50 --coin TUSD
bash
tintd swap --node http://127.0.0.1:4200 --seed net/faucet.seed --amount 10 --buy TUSD

--coin이 없으면 pay는 기본 코인을 보냅니다. swap은 --pay로 다른 코인을 지정하지 않는 한 기본 코인으로 지불하며, 스왑하는 두 코인 중 하나는 항상 기본 코인입니다.

tintd run 플래그

플래그의미
--genesis제네시스 블록 파일입니다.
--validators검증자 목록 파일입니다.
--key이 검증자의 개인 키 파일입니다.
--data이 검증자의 블록을 저장하는 디렉터리입니다.
--listen수신 대기 주소입니다. 기본값은 검증자 목록에 있는 주소입니다.
--metrics메트릭을 제공할 주소입니다. 지정하지 않으면 꺼져 있습니다.
--rpc지갑에 HTTP로 서비스할 주소입니다. 지정하지 않으면 꺼져 있습니다.
--rpc-behind-proxy지갑이 이 컴퓨터의 리버스 프록시를 거쳐 --rpc에 접속합니다. 클라이언트를 X-Forwarded-For로 셉니다.
--local한 컴퓨터의 네트워크를 위해 사설 주소를 허용합니다.
--log-json로그를 JSON 라인으로 기록합니다.
--log-levelerror, warn, info(기본값), debug, trace 중 하나입니다.
--idle-block-ms대기 중인 결제가 없는 체인이 블록 사이에 쉬는 시간(밀리초)입니다. 기본값은 5000, 최대 60000입니다. 모든 검증자에 같은 값을 지정하세요.

공개 테스트 노드의 구성

https://node.tint.top의 공개 노드는 검증자 네 개를 실행하는 서버 한 대입니다. 따라서 네트워크가 동작하는지를 시험할 뿐 탈중앙화에 대해서는 아무것도 증명하지 않습니다.

항목위치
검증자 네 개systemd 유닛 tint-validator@0부터 @3까지, 127.0.0.1:4100부터 4103으로 통신
지갑 인터페이스검증자 0, 127.0.0.1:4200, 외부에서 접근 불가
HTTPS443 포트의 Caddy, /v1/*를 지갑 인터페이스로 전달
체인 데이터/var/lib/tint/validator-N/data
  • 프록시는 접근 로그를 남기지 않습니다. 누가 어떤 주소에서 무엇을 요청했는지의 기록은 프라이버시 네트워크가 보관하지 말아야 할 정보입니다.
  • 메트릭 포트도 열린 검증자 포트도 없으며, 검증자들은 루프백 인터페이스에서 서로 통신합니다.
  • 검증자는 모든 블록을 영구히 보관합니다. 디스크 사용량은 du -sh /var/lib/tint/validator-*/data로 확인하세요.
  • vCPU 1개, 2 GB 서버에서 각 검증자는 처음 시작한 직후 약 92 MB의 메모리를 사용했으며, 서비스 파일은 하나당 1 GB로 제한합니다.

실행 중인 노드 살펴보기

bash
curl -s http://127.0.0.1:4200/v1/status

systemd로 관리하는 서버에서는 systemctl status 'tint-validator@*'로 유닛을, journalctl -u 'tint-validator@*' -n 50으로 최근 로그 줄을 볼 수 있습니다.

지갑이 내 노드를 보게 하기

지갑의 설정에서 공용 노드를 내 노드로 바꿀 수 있습니다. 노드는 지갑 인터페이스를 HTTPS로 제공해야 하며, 지갑의 다른 데이터와 같은 네트워크, 즉 같은 첫 블록에 속해야 합니다. 새 첫 블록을 만난 지갑은 새 체인을 처음부터 읽습니다.