무언가 연구를 진행하고자 해도 기본적으로 구축하는게 쉽지가 않다.
이 글을 통해 조금이나마 도움이 되었으면 좋겠다는 마음으로 글을 작성하고자 한다.
암호화폐 중에서는 메인넷을 구축하여 별도의 네트워크를 구성하는 암호화폐가 있고, 다른 암호화폐의 네트워크에서 전달되는 암호화폐가 있다. 예를 들어 비트코인, 이더리움, TRON 등은 별도의 네트워크를 가지고 있지만, ERC-20이라고 불리는 토큰들은 이더리움 네트워크에서 전달되고, TRC-20이라고 불리는 토큰들은 TRON 네트워크에서 전달된다. 예를 들어 BTT 토큰은 이더리움 네트워크에도, TRON 네트워크에도, BSC 네트워크에도 존재한다. 그런데 정작 BTFS를 이용하려면 BTTC 네트워크에 있는 BTT를 이용해야 한다. 따라서 이러한 이해가 없으면 접근 자체가 어렵다.
전반적인 전송 흐름은 아래와 같다.
원(KRW)이나 달러(USD)를 가상화폐로 바꾸기 위해서는 거래소를 거쳐야 한다. 거래소는 업비트나 바이낸스를 이용하는 것이 좋다. 본인은 업비트를 이용했다. 업비트를 이용할 때의 주의 사항은 아래와 같다.
Token을 구매할 때에는 수수료가 저렴한 Token을 구매해야 한다. 이더리움을 구매하고 싶다고 해서 이더리움을 바로 구매했다가는, 1회 전송에 0.01ETH(약 25000원)의 비용을 출금으로 지불해야 한다. 개인적으로 전송을 위해 구매했던 Token은 TRON 이었다. 1회 전송에 약 100원 안쪽의 비용을 지불하였다.
추가적으로 이더리움을 꼭 전송하고 싶다면 Binance 거래소를 이용하는 것도 방법이다. Binance를 이용하면 저렴한 비용으로 지갑 전송이 가능하다.
다음은 PC로 지갑을 받기 위한 지갑을 생성해야 한다. 가장 많이 사용하는 지갑은 MetaMask 이다. 메타마스크는 이더리움 기반의 지갑이기 때문에 이더리움 네트워크에 호환되는 토큰만을 포함할 수 있다. BNB, BTT(ERC-20)와 같이 이더리움에 호환되는 네트워크들은 메타마스크를 이용할 수 있지만, TRON과 같이 이더리움에 호환되지 않는 네트워크들은 메타마스크를 이용해서 받을 수 없다. 따라서 나는 Tronlink라는 TRON 네트워크 기반 지갑을 추가로 설치하였다.
요약하자면 2개의 지갑이 필요하다
지갑을 생성하면 지갑 주소를 얻을 수 있다. 거래소에서 "출금"을 누르고 지갑 주소를 입력해서 출금해주자. 아래와 같이 지갑에 금액이 표시되어야 전송이 완료되었다는 것이다.

스왑 서비스는 하나의 토큰을 다른 토큰으로 변경할 수 있는 서비스이다. 가장 유명한 서비스로는 Uniswap, simpleswap 등이 있다. 직접 사용해보면 굉장히 간단하다. 아래 사진처럼 원하는 토큰으로 설정할 수 있다.

브릿지란 같은 종류의 토큰이 서로 다른 네트워크에 있을 경우에 네트워크를 옮겨주는 서비스를 의미한다. 보통의 서비스에서는 필요 없을지 모르지만, BTT가 BTTC라는 별도의 메인넷을 구축하고 있기 때문에 브릿지를 통해 BTTC 네트워크로 옮겨주어야 한다.
여기에서는 TRON 네트워크의 BTT를 BTTC 네트워크로 옮겨주었다.

여기에서 메타마스크가 정상적으로 BTTC 네트워크를 받기 위해서는 메타마스크에 BTTC chain 네트워크 추가해주어야 한다.

브릿지에서 작업을 수행하고, Metamask의 체인을 아래 사진처럼 변경한 후에, BTT가 정상적으로 입금되었는지 확인하면 브릿지가 끝이다.

BTFS github에서 실행파일을 다운로드하고 안내해주는대로 명령어를 입력한다.
➜ Downloads ./btfs init
Generating TRON key with BIP39 seed phrase...
(이후 생략)
➜ Downloads ./btfs daemon
Initializing daemon...
go-btfs version: 2.3.1-c0fbaee
Repo version: 10
System version: amd64/darwin
Golang version: go1.18
Repo location: /Users/hunjison/.btfs
Peer identity: XXX
the address of Bttc format is: !!!!!!!(여기!!!)!!!!!!!
the address of Tron format is: XXXXXX
(생략)
cannot continue until there is sufficient (30000 Suggested) BTT (for Gas) available on 0x84f2b8cab8b1a5ba5034bf9d5d21407cd9ee8613
cannot continue until there is sufficient (30000 Suggested) BTT (for Gas) available on 0x84f2b8cab8b1a5ba5034bf9d5d21407cd9ee8613
에러 메시지를 보면 30000 BTT가 있기 전까지는 BTT가 실행되지 않는다고 한다. TRON 주소도 알려주고 있지만, 직접 송금해봐도 아무 일도 일어나지 않았고, BTTC address라고 표시된 부분의 주소로 송금을 해야 한다.
MetaMask를 이용해서 알려주는 Bttc 주소로 30000 이상의 BTT를 전송하고 나면 아래와 같이 vault가 생성됩니다.
self vault: XXXXXXX
vault implementation is updated: XXXXX
Swarm listening on /ip4/10.16.162.151/tcp/4001
Swarm listening on /ip4/10.211.55.2/tcp/4001
Swarm listening on /ip4/10.37.129.2/tcp/4001
(이후 생략)
이후 http://127.0.0.1:5001의 WEBUI로 접속할 수 있었다.

구축 끝!!
(왜이렇게 구축이 어려워,,)