Я хочу получить первую часть формата URL-адреса enode, который представляет собой шестнадцатеричный идентификатор узла, путем компиляции исходного кода из ethereum, я собираю и запускаю cmd / bootnode / из goland, с предоставленным моим личным ключом, командакак это:
bootnode -nodekeyhex 9069e5f4dd2fdc131c385b78d557b9154b82a0f6fc6f12a0ed0782364528fb1f -writeaddress
выход:
d65a3c0982f62cad6f12b4274faa74e9adade1708064357fcefe19cd3986fc86
только 64 байта, а не 128 байтов, в соответствии с исходным кодом:
if *writeAddr {
fmt.Printf("%v\n", enode.PubkeyToIDV4(&nodeKey.PublicKey))
os.Exit(0)
}
Я проверилтип возврата enode.PubkeyToIDV4
, который на самом деле составляет 32 байта: type ID [32]byte
.При преобразовании %v
длина вывода будет 64. Но согласно как произвести enode-from-node-key
длина вывода составляет 128 байтов.Кто-нибудь, пожалуйста, скажите мне, что идет не так.Как я могу получить правильные 128 байтов идентификатора узла для построения правильного формата URL.