Небольшой спойлер в самом начале - кошелек Veil (даже в версии 1.0.2.) сырой, мы это знаем. Сырой во многом потому, что уникальный, а разработка началась лишь в августе 2018 года. Veil это не просто форк, это уникальный проект довольно успешных людей с репутацией на рынке криптовалют. Над кошельком работают много программистов (команд Pivx, RVN), github обновляется почти каждый день
https://github.com/Veil-Project/veil/commits/master, а на хороших разработчиков идет настоящая охота
https://veil-project.com/bounties/. Все ошибки, о которых вы пишите в каналах поддержки или в группах – давно известны разработчикам и под них выделен отдельный раздел -
https://github.com/Veil-Project/veil/issues, именно оттуда они импортируются в задачи для баунти-разработчиков.
Лично я считаю данный проект одним из самых перспективных в этом году, рад участвовать в нем и ниже хочу пояснить, как пользоваться кошельком, чтобы он не доставлял проблем.
Устанавливаем кошелек Veil с официального github проекта -
https://github.com/Veil-Project/veil/releases (на момент написания текста это 1.0.2.)
Для быстрой синхронизации рекомендую использовать снимок сети, который мы обновляем ежедневно -
https://veil.tools/docs/snapshots.html На данный момент, снимок весит прилично. В связи с этим, разработчики будут внедрять Bulletproofs в скором будущем. Кстати, один из разработчиков Bulletproofs, Johnathan Bootle, ранее был в команде Pivx.
Новый термин, который пора ввести в обиход, говоря о Veil - контейнеры. У Veil сейчас есть 4 контейнера (раньше для простоты мы называли это типы монет, но это не совсем так, тк монета Veil одна) - это basecoin (простой контейнер типа bitcoin, только его можно отследить в explorer), ring ct, ct и zerocoin. Кошелек Veil постоянно гоняет их из одного контейнера в другой. Стоит отметить, что basecoin это временное решение и скоро контейнеров останется 3.
Тем не менее, для начала работы с текущим кошельком необходимо получить bv (Basecoin) адрес, именно его сейчас используют пулы и биржи. Получается он просто – надо ввести в консоли кошелька команду getnewbasecoinaddress. Как найти консоль в кошельке Veil? Нажать на шестеренку в правом углу, далее "Advanced Options"
Пройдемся подробно по контейнерам Veil.
CT - скрывает адреса получателя и отправителя
RingCT - скрывает кол-во Veil в транзакциях и адреса получателя и отправителя
Zerocoin - скрывает адреса получателя и отправителя на гораздо бОльшем уровне анонимности чем RingCT. У RingCT по умолчанию 11 степеней защиты, у Zerocoin степеней защиты - это кол-во деномов, то есть на данный момент около 90 тысяч (то есть почти в 9000 раз больше) и их все больше с каждым днем.
RingCT в своей защите имеет подпись кошелька отправителя, которую в теории можно оттуда вытащить. У Zerocoin этой подписи нет. Более того, у Zerocoin нет блокчейна, поэтому даже в будущем, имея суперкомпьютер, вытащить информацию о прошедших транзакциях не получится.
У Zerocoin есть только один минус - это ровное число, которое можно отправить - 10, 100, 1000, 10000. Если надо отправить 8.5 то 1.5 пойдет на сдачу. А чтобы и сдача была анонимной, она уходит на CT.
Что нужно, чтобы в Veil начал работать POS (в случае Veil - Zerocoin minting)? Соблюдать все три условия:
1. Кошелек всегда открыт
2. Ползунок staking активирован
3. Наличие Veil в контейнере Zerocoin
Первые 2 пункта, думаю, не вызывают вопросов. Чтобы отправить ваш Veil в контейнер Zerocoin, необходимо войти в меню zerocoin minting (находится в разделе Settings, иконка шестеренки) и сделать деномы (~ инпуты). Там есть только 10, 100, 1000 и 10000. Других входов нет, это особенность Zerocoin протокола в Veil. Выбираете деном, который хотите заминтить слева и нажимаете Mint (если у вас монеты Basecoin, то надо поставить галку use basecoin). Если у вас монеты раскиданы по разным контейнерам (к примеру 65 на basecoin, а 40 на ringCT), а вы хотели бы заминтить 100 Veil, то сначала их надо перевести в один контейнер, чтобы сумма в нем была больше 100.
Важно! Бывает, что через GUI кошелек минтит бОльшие деномы, чем вы изначально хотели. К примеру слева выбран 1000 деном, вы отправляете в zerocoin 17000 veils, но вместо 17х1000, кошелек делает сам 1х10000 и 7х1000. Чтобы избежать этого на данном этапе пропишите в veil.conf жесткое условие nautomintdenom=1000
Еще важно! Для того, чтобы было меньше POS орфанов и транзакции обрабатывались быстрее, рекомендуется использовать процессоры уровня i3+, желательно от 4 потоков и выше. Чтобы кошелек мог брать от процессора все, рекомендуется даже прописывать команду в veil.conf threadbatchverify=4 (где 4 - кол-во ядер), тк по умолчанию кошелек использует 2 потока.
Один из членов сообщества сделал калькулятор POS, его можно взять за основу для расчета прибыли -
https://docs.google.com/spreadsheets/d/10iN-d6NRX4u5WzNi4lO0S3Ef7euwyuvRv0TANjLPp1E/edit#gid=558845196 Как переводить Veil из одного контейнера в другой?
Пока GUI переводы находятся в стадии разработки. Скорее всего они будут доступны тогда, когда из кошелька уйдет Basecoin контейнер. На сегодняшний день все переводы осуществляются через консоль (Settings -> Advanced Options). Далее команды:
spendzerocoin = отправляем zerocoin на basecoin/stealth (внимание! После этой команды кошелек может "зависнуть" на какое-то время. Есть случаи, когда люди ждали 30 минут, из-за большого кол-ва деномов в транзакции и слабого процессора. Данный недостаток будет исправлен с внедрением Zerocoin Precompute, в новой версии кошелька)
sendstealthtobasecoin = отправляем CT в basecoin
sendringcttobasecoin = отправляем RingCT в basecoin
sendtoaddress = отправляем basecoin или stealth (то есть с basecoin на basecoin или со stealth на stealth)
sendbasecointostealth = отправляем basecoin в stealth
Примеры команд:
spendzerocoin 100 false true 42 bv00ThisIsAFakeAddress00000000 (100 - кол-во, false - сдачу не минтить, а отправлять в ringCT, true - делать наименьшую сдачу из возможных, 42 - рекомендуемый уровень безопасности, который может быть от 1 до 100)
spendzerocoin 100 false true 42 bv00ThisIsAFakeAddress00000000 10 (отличие от первой команды, что в конце мы указываем деном, из которого брать Zerocoin. К примеру мы хотим потратить только 10 деномы, а 100 деномы хотим оставить нетронутыми)
sendstealthtobasecoin bv00ThisIsAFakeAddress00000000 10
sendringcttobasecoin bv00ThisIsAFakeAddress00000000 10
sendtoaddress bv00ThisIsAFakeAddress00000000 10
sendbasecointostealth sv00ThisIsAFakeAddress00000000 10
Команды, которые всегда полезны для работы с POS и переводами Veil из одного контейнера в другой:
getbalances - показывает балансы во всех контейнерах
listzerocoinamounts - показывает деномы, на которые разбит ваш zerocoin
Проблемы, которые возникают при работе с текущей версией кошелька.
"Исчезновение" части монет Veil. Не было ни одного случая реальной пропажи монет с кошелька. Все проблемы связаны с отображением точного баланса в кошельке и будут устранены при следующих обновлений. Ошибки возникают обычно тогда, когда компьютер с включенным Veil кошельком непроизвольно выключается (к примеру выключили свет). Они решаются с помощью команд (по очереди, после каждой рекомендуется проверить баланс):
rescanzerocoinwallet
rescanblockchain
restoreaddresses 100
getarchivedzerocoin
rescanzerocoinwallet
rescanringctwallet
searchdeterministiczerocoin 0 100000 2 (кошелек будет обрабатывать команду до часа, перебирая все транзакции)
Если эти команды не помогли, то прописываем в veil.conf строчку -reindex-zdb=1 и перезапускаем кошелек.
После этого еще раз делаем команду rescanzerocoinwallet. Если это не помогло, удаляем файл mempool.dat, запускаем кошелек и делаем rescanzerocoinwallet.
После того как весь Veil отображается корректно не забудьте убрать строчку -reindex-zdb=1 из veil.conf, чтобы далее не ждать реиндекс.
Зависание транзакции. В этих случаях смотрим txid зависшей транзакции (она выделена серым цветом по отношению со всеми подтвержденными транзакциями) и делаем команду abandontransaction
true, после этого еще раз rescanringctwallet. Если это не помогло, то rescanblockchain
Некорректно выставленный fee. Выдает ошибку при отправке Fee estimation failed. Исправить просто - командой в консоли settxfee 0.0001
Наша поддержка всегда на связи в discord и каналах telegram, причем в discord она круглосуточная, если задавать вопрос на английском языке. Храните seed фразу, а также делайте время от времени backup wallet.dat (как раз в случае неподтвержденных транзакций) и у вас никогда не будет проблем.