启动xdag,此时会发现生成了一个地址,并且在\storage文件夹下生成xx.dat文件

查看该文件16进制

前两行(第一个xdag_field结构体)其实就是

Transport_header+type+time+amount

Transport_heade为0,Type为1361,time为当前时间,amount为0。它们对应的16进制就是.dat文件中前两行的值。

下面说说3,4,5,6行(第二三个xdag_field结构体)值的由来,如图:

首先计算出signatureHash,这里贴出Python版的计算过程

1. 从wallet文件读出私钥转换成公钥,本实例中如图内pub。

2. 准备好block结构,第一个field为transport_header+type+time+amount,整个block为如图中xdag_field1+xdag_field2。

3. 拼接出block+b”\x02”+公钥,这里的b”\x02”指的是奇偶公钥。

4. 该变量通过两次sha256计算便是signatureHash。

最后一步xdag_sign为标准的openssl的椭圆轨迹签名,把sign_r,sign_s赋值到第二个和第三个xdag_field结构上即可。