Спасибо за ваше время, Дэнни.
У меня есть эти два нерешенных вопросов:
2) После создания MasterPrivateKey Звоню .derive (1). Что причина не используя .derive (0)?
Для завершения информации: Если удалить .derive (1) и добавить xpub здесь:
http://webhdwallet.github.io/Она показывает следующую легенду:
"Нестандартная глубина ключа: должна быть 1, и это 0, вы уверены, что вы хотите использовать это?"
Там причина безопасности за не использовать глубину! = 1? Может быть, это только "стандарт"?
3) После получения xpub, проверьте, как мне удалось закодировать "самолет" адресов (функция getAddressFromCoords). Это он прекрасно, чтобы сделать еще одного ребенка из ребенка, если координата отрицательна?
Для игры, что я делаю, мне нужен самолет свежих новых адресов для каждого х, значения г; отрицательные координаты являются приемлемыми тоже.
И потому, что я не могу иметь негативные ChildNumber, я в конечном итоге этот трюк, чтобы вновь сделать ребенок с положительным значением снова, если число отрицательное.
статические getAddressFromCoords Строки (String serialized_x, Int х, Int Z, булевы собства) {
NetworkParameters PARAMS = MainNetParams.get ();
DeterministicKey root_xpub = DeterministicKey.deserializeB58 (нуль, serialized_x);
ИНТ x_positive = х>0 х: х * -1, z_positive = г>? 0 г: г * -1;
ключ DeterministicKey = HDKeyDerivation.deriveChildKey (root_xpub, новый ChildNumber (x_positive, ложный));
ключ = HDKeyDerivation.deriveChildKey (ключ, новый ChildNumber (z_positive, ложный));
если (х<0)
ключ = HDKeyDerivation.deriveChildKey (ключ, новый ChildNumber (x_positive, ложный));
если (г<0)
ключ = HDKeyDerivation.deriveChildKey (ключ, новый ChildNumber (z_positive, ложный));
если (собств) возвращают key.getPrivateKeyEncoded (Params) .ToString ();
иначе вернуть key.toAddress (Params) .ToString ();
}
Я в конечном итоге с дерева, как это:
/ -------------
/ -Z
/ ------- / -------
/-ИКС /
/ -------- / ------- / ----
/ Z
/ ------ / -----------
xpub / X
------/
РЕДАКТИРОВАТЬ:
Таким образом, я нашел ошибку в моей функции getAddressFromCoords ():
------- получен общедоступный адрес из точек -1,1 общественности: 1LUCtto3T8e4jdUHmZK7ThU6X6pGQ4czKE / частные: KxugeoYxhzBnbAbxdL7unXv1LskqbAccwHhEjh1KMykrT19RcTEj
------- полученный публичный адрес из пунктов 1, -1 общественности: 1LUCtto3T8e4jdUHmZK7ThU6X6pGQ4czKE / частный: KxugeoYxhzBnbAbxdL7unXv1LskqbAccwHhEjh1KMykrT19RcTEj
-1,1 и 1, -1 возвращает тот же адрес. Блядь.