玩区块链,手上没靓号怎么行。用网上的靓号生成器有一定的风险性,思来想去决定自己写一个。
首先需要导入波场官方
编辑

<!--        引用本地Maven仓库-->
        <dependency>
            <groupId>org.tron.trident</groupId>
            <artifactId>utils</artifactId>
            <version>0.8.0</version>
        </dependency>
        <dependency>
            <groupId>org.tron.trident</groupId>
            <artifactId>abi</artifactId>
            <version>0.8.0</version>
        </dependency>

生成很简单,就几行代码。

 /*** 生成地址
*
@return */ public static Map<String, String>createAddress() {
KeyPair keyPair
=KeyPair.generate();
String privateKey
=keyPair.toPrivateKey();
String base58CheckAddress
=keyPair.toBase58CheckAddress();
Map
<String, String> stringMap = new HashMap<>();
stringMap.put(
"address", base58CheckAddress);
stringMap.put(
"privateKey", privateKey);returnstringMap;


启动看了下大概一秒能生成几百个,速度太慢,写多线程来增加速度。
/*** 新建一个线程生成地址
*
@paramminLength*/ public static void runGenerate(intminLength ) {new Thread(()->{while (true){
Map
<String, String> address =createAddress();if ( isPrettyAddress(address.get("address"), minLength) ){
writeText(address.toString());
System.out.println(
"address = " +address);
}
}
}).start();

}
/*** start
*
@paramnum
*
@paramminLength*/ public static void start(int num, intminLength) {for (int i = 1; i <= num; i++) {
System.out.println(
"启动第"+i+"个线程");
runGenerate(minLength);
}
}

通过Java启动参数来控制线程数量以及连号规则。

public static voidmain(String[] args) {if ( args.length<2){
System.out.println(
"请在运行参数上输入线程数量和连号数,请输入整形并以空格分开。如 1 2");
System.exit(
0);
}
int num = Integer.parseInt(args[0]); //线程数量 int minLength = Integer.parseInt(args[1]); //读取一行文本 System.out.println("进程数量:"+num+",生成最小连号:"+minLength+"。程序开始运行。");
AddressService.start(num, minLength);
}

效果图如下:

标签: none

添加新评论