Ghi chép Handshake

Truy cập domain handshake

Để truy cập website sử dụng domain handshake, hiện tại có thể sử dụng add-on của trình duyệt như Firefox hoặc Chrome. Ngoài ra tự build cho mình một công cụ phân giải tên miền sự dụng hsnd cũng là một cách.

DNS resolver

Nếu đang ở Debian 9

echo "deb http://deb.debian.org/debian/ unstable main" > /etc/apt/sources.list.d/unstable.list
printf 'Package: *\nPin: release a=unstable\nPin-Priority: 90\n' > /etc/apt/preferences.d/limit-unstable
apt update

Debian 10

docker create \
  --name hsnd \
  --net=host \
  -v $HOME/.config/docker/handshake:/root/.hsd \
  --restart=unless-stopped \
skywirex/hsd:2.1.5-a3049d5b --network main --rs-port=53 --http-host 0.0.0.0 --api-key=api-cua-ban

light DNS resolver on Ubuntu 20 LTS

sudo apt update && sudo apt upgrade -y
sudo apt-get install build-essential
sudo apt install git
sudo apt install autotools-dev
sudo apt install automake
sudo apt install autoconf
sudo apt install libunbound-dev
sudo apt install libuv1-dev
git clone https://github.com/handshake-org/hnsd.git
./hnsd -p 4 -r 127.0.0.1:5353

Một số trang web có thể truy cập được bằng với Domain Handshake

http://me.turbomaze./

Build Docker image

git clone git://github.com/handshake-org/hsd.git
cd hsd
VERSION=$(cat package.json | grep version | sed 's/.*"\([0-9]*\.[0-9]*\.[0-9]*\)".*/\1/')
COMMIT=$(git rev-parse --short HEAD)
docker build -t skywirex/hsd:$VERSION-$COMMIT .

Lưu ý phiên bản sau khi build

Chạy regtest hoặc mainnet

docker create \
  --name hsd-regtest \
  --net=host \
  -v ~/.hsd:/root/.hsd \
  --restart=unless-stopped \
skywirex/hsd:$VERSION-$COMMIT --network regtest --http-host 0.0.0.0 --api-key=api-cua-ban
curl http://x:[email protected]:14037/
$ hsd --network=regtest
$ hsw-rpc --network=regtest getnewaddress
$ hsd-rpc  --network=regtest generatetoaddress 100 $ADDRESS
docker create \
  --name hsd \
  --net=host \
  -v ~/.hsd:/root/.hsd \
  --restart=unless-stopped \
skywirex/hsd:$VERSION-$COMMIT --network main --http-host 0.0.0.0 --api-key=api-cua-ban

Test endpoint

curl http://x:[email protected]:12037/

lấy key

curl $walleturl/$id/master

{
  "encrypted": false,
  "key": {
    "xprivkey": "rprvKE8qsHtkmUxUSPm69K2HLjAnjsEecv7BModHuarmVk9gbnRwYkYufvhv2XiNVxuz7wTMW3LsVKSoVUpo5TKmaYUyHHicQp3XB1gBHfXeDzbb"
  },
  "mnemonic": {
    "bits": 256,
    "language": "english",
    "entropy": "63fff07dca91ff627a83abfedf3703834925d7bef7670c02b6c4eec63deda4e8",
    "phrase": "glue zebra buyer news cable raise tube remove yard whale science alley myself type wink undo army between raise talk glow walnut neck aspect"
  }
}

newPass='pass-cua-ban'

curl $walleturl/$id/passphrase \
  -X POST \
  --data '{"passphrase":"'$newPass'"}'

numblocks=2;
address='rs1qkjttpwuxsj2nfflt4ak7slz8zla4q2ug8jgnff';
curl $url \
  -X POST \
  --data '{
    "method": "generatetoaddress",
    "params": [ '$numblocks', "'$address'" ]
  }'

Sao lưu và khôi phục ví

Ngoài việc backup seed bạn còn có thể nén thư mục ví được tạo ra trong lúc chạy hsd để có thể khôi phục lại trong trường hợp cần thiết. Ví này cần phải có password mới mở được.

Để thực hiện việc sao lưu ban di chuyển đến thư mục chứa ví (thông thường là .hsd) và nén lại bằng lệnh tar

cd /root/.hsd/
tar -cvf wallet.tar ./wallet

Để khôi phục lại ví hoặc copy ví sang máy khác cần tạo tạo docker container bằng lệnh create sau đó tạo thư mục chứa blockchain và copy ví vào thư mục đó, hoặc có thể chạy và sync blochain như bình thường sau đó copy ví đè lên thư mục wallet được tạo ra khi chạy daemon hsd.

mkdir ~/.hsd
cd ~/.hsd
tar -xvf wallet.tar

example: 
$ hsd-rpc getnameresource coolness
{
  "records": [
    {
      "type": "GLUE4",
      "ns": "ns1.coolness.",
      "address": "23.239.11.203"
    },
    {
      "type": "GLUE4",
      "ns": "ns2.coolness.",
      "address": "66.175.216.232"
    },
    {
      "type": "GLUE4",
      "ns": "ns3.coolness.",
      "address": "139.162.52.201"
    }
  ]
}

https://help.dyn.com/how-to-use-binds-dig-tool/

https://www.digitalocean.com/docs/networking/dns/resources/use-dig/

Nếu có cài ví Bob thì có thể gõ dòng lệnh sau để thấy các bản ghi DNS của Domain trên Handshake blockchain

dig @127.0.0.1 -p 5350 proofofconcept
dig @127.0.0.1 -p 5350 proofofconcept TXT +short