定制属于自己的CoinEx链地址

定制属于自己的CoinEx链地址

大家都知道,有各种工具可以生成比特币Vanity地址。类似的,我们也可以生成自己的CoinEx链Vanity地址(或者Lucky地址)。本文简要介绍CoinEx链地址格式,以及生成Vanity地址的几种方式。

Bech32格式

CoinEx链选择使用Bech32作为地址格式。简单来说,这种地址就是一个字符串,由三部分组成:人类可读部分、分隔符、数据部分。其中人类可读部分,通常是一个对人类而言有意义的单词,起到标识作用。对于CoinEx链主网,这一部分是coinex。对于CoinEx测试网,这一部分是cettest。分隔符固定为数字1。数据部分所包含的字符必须是数字(1除外)或小写英文字母(bio除外)。数据部分的字母表总共有32个有效字母,这也正是Bech32这个名称中32所代表的含义。如果说文字描述不太直观,看一下下面这个主网地址就一目了然了:

    分隔符
      |
coinex1l66xwz0pfw7cfc8wms39u8e7tw9r5azpys9z48
\----/ \------------------------------------/
人类可读               地址数据

使用CETCLI命令行

最简单的方式就是使用CETCLI命令行工具提供的keys add命令,不停的尝试,直到地址中出现自己期望的样式(比如以某样式结尾)为止。不过,由于手动操作太慢了(而且会在本地产生大量垃圾地址),所以这种方式基本不具备实操性。幸运的是,keys add命令提供一个--dry-run选项,可以尝试生成地址但不写入本地存储。这样我们就可以利用这个选项,写一个脚本来替我们查找地址。下面这个脚本仅供读者参考:

CLI=./cetcli # path/to/cetcli

if ! type $CLI > /dev/null; then
  echo 'cetcli' not found
  exit 0
fi
if [ -z "$1" ]; then
  echo 'Usage: sh keygen.sh <suffix>'
  exit 0
fi

printf "finding address with suffix '%s' ...\n" $1
for i in {1..50000}
do
  OUTPUT=`$CLI keys add xxx --dry-run 2>&1`
  ADDR=`echo $OUTPUT | grep -o 'address: [a-z0-9]*' | grep -o 'coinex[0-9a-z]*'`
  printf "\t%d\t%s\r" $i $ADDR
  if [[ $ADDR == *$1 ]]; then
    echo ok $ADDR
    echo $OUTPUT
    break
  fi
done

把上面这个脚本保存到一个文件中(比如keygen.sh),并且和CETCLI可执行文件放在同一个目录下,然后就可以用它来生成具有特定后缀的地址了,比如:

sh keygen.sh jay

虽然相比手动执行keys add有了巨大进步,但这个脚本运行起来还是很慢。搜索两个字母的后缀还勉强可行,超过三个字母就要运行很长时间了。

使用lucky-acc-gen(CLI)

为了方便用户生成Lucky地址,CoinEx链开发团队开发了一个小工具。这个工具不仅速度更快,而且还提供了CLI(命令行)和GUI(图形用户界面)两种用户界面。先来看看CLI的用法:

  • 第一步,自己编译项目,或者从这里下载预编译好的二进制可执行文件(目前仅有macOS版)
  • 第二步,从控制台执行CLI可执行文件:./lucky-acc-gen-cli-macos
  • 第三步,输入想要使用的系统CPU核心数
  • 第四步,填写跟在coinex1后面的前缀(可直接按回车跳过)
  • 第五步,填写地址后缀(可直接按回车跳过)
  • 第六步,等待地址生成

下面是一个例子,使用一个CPU核心生成后缀为jay的地址,运行时间大约是十几秒:

$ ./lucky-acc-gen-cli-macos
Please enter the number of cpu cores you want to use (you have 8 cores, press enter to use all the cores): 1
Please enter several characters after "coinex1": 
Nothting is entered!
Please enter address postfix: jay
10000 times have been tried, estimated progress: 30.52%
20000 times have been tried, estimated progress: 61.04%
30000 times have been tried, estimated progress: 91.55%
Mnemonic: sample idle cannon crawl vintage usage hockey harsh ...
Addr: coinex192dhrk6wtqwcl39dgwa8sux93z3jhqgf2zrjay
Press Enter to Exit

使用lucky-acc-gen(GUI)

GUI的用法和CLI差不多,从这里下载预编译好的二进制可执行文件,然后从控制台启动GUI:

./lucky-acc-gen-gui-macos

GUI界面包含了很好的说明,根据说明填写前缀和后缀,然后点击“生成”按钮即可生成地址:

导入地址

通过前面介绍的方式,会生成地址和助记符。执行cetcli keys add命令,搭配--recover选项,按提示输入密码和助记词,便可真正将密钥添加到本地存储。例如:

$ ./cetcli keys add jay --recover
Enter a passphrase to encrypt your key to disk:
Repeat the passphrase:
> Enter your bip39 mnemonic
sample idle cannon crawl vintage usage hockey harsh witness ...

- name: jay2
  type: local
  address: coinex192dhrk6wtqwcl39dgwa8sux93z3jhqgf2zrjay
  pubkey: coinexpub1addwnpepqd84aysepg84dglnzgza8utleu2y4v8mvr8c37cfxtyfzqx7s7lev4tqkqf
  mnemonic: ""
  threshold: 0
  pubkeys: []

本文由CoinEx Chain团队Chase写作,转载无需授权。如果觉得这篇文章有帮助,可以打赏CET到这个地址:coinex192dhrk6wtqwcl39dgwa8sux93z3jhqgf2zrjay

1 Like