вторник, 4 февраля 2014 г.

FAQ по NXT

Вопросы и ответы заимствованы в основном с форума.
Также смотри FAQ в Nxt wiki.



Q: Откуда и как скачивать новые версии Nxt ?
A: Лучше всего обновлять Nxt на новую версию через страничку https://localhost:7875/update.html в самом Nxt-клиенте, закачка там происходит по ссылке из алиаса, принадлежащего ведущему разработчику, на этой же страничке проводится проверка sha256-контрольной суммы тоже из алиаса разработчика.

   Также можно скачать свежую версию Nxt из официальной английской ветки (очевидно, что новичку в самый первый раз так и придётся поступить), и только из оригинальных (не процитированных) постов ведущего разработчика, сейчас это Jean-Luc. Ссылка на такой пост приведена на первой странице этой темы. После скачивания архива обязательно нужно сравнить его sha256-контрольную сумму с sha256-суммой из оригинального поста разработчика. Для этого можно воспользоваться on-line услугой sha256-generator или onlinemd5.com.

   Это не пустые предосторожности. Уже был случай в декабре 2013, когда некий подонок (которого затем вычислили) подменил архив с новой версией, и украл у 4-х человек больше 300 000 NXT.

Q: Насколько безопасен мой Nxt-кошелёк, ведь кто-то может сидеть и создавать новые кошельки, пока не наткнётся на мой...
A: Номер кошелька - это только видимая часть (64 бита из 256-ти) публичного ключа пользователя, вероятность случайно сгенерить чужой приватный ключ (если он создан длинной сложной фразой) - 1 на 2 256 (для сравнения - число атомов во Вселенной ~2265).

   Есть ньюанс: если с некого кошелька ещё не было ни расходов, ни алиасов, то его публичный ключ не хранится в блокчейне, и перебором паролей можно попытаться сгенерить номер кошелька (поэтому выбирайте длинную сложную парольную фразу со спецсимволами), в этом случае нужно "всего лишь" 264 попыток. Для Java vanity генератора с первой страницы для этого потребуется 73 миллиона лет.

Q: Если залогиниться каким-нибудь "левым" паролем, или набрать ошибочный пароль, то под него будет создан кошелек ?
A: Начнем с того, что никаких кошельков в системе попросту не существует. Или, наоборот, можно сказать, что все кошельки уже созданы, открывай любой на здоровье. Также нет такого понятия как "залогиниться", это авторы клиентов используют такой термин для простоты. Он лишь означает, что клиент теперь знает, и держит в оперативной памяти, твою пару приватный+публичный ключ.

Введя ошибочный пароль (пассфразу), ты просто видишь, что на этот публичный ключ ещё не было переводов. Что неудивительно, ведь публичных ключей существует 2256 штук, а это запредельно большое число. Но сам факт ввода любого, в т.ч. ошибочного пароля ничего не означает, никак в блокчейне не отражается, нигде не регистрируется, никаких "кошельков" при этом не создается.

Твой пароль однозначно определяет твою пару чисел: приватный ключ, и однозначно соответствующий ему открытый ключ. Твой пароль - это и есть твой аккаунт, или "адрес" в терминологии биткоина; это то, что именуют "кошельком". Ты начинаешь видеть свои монеты (т.е. как бы видеть свой кошелёк) как только в блокчейне появляется первая транзакция на твой публичный ключ.

Система устроена так, что если с аккаунта не было исходящих транзакций, вход в такой аккаунт осуществляется по 64-м битам публичного ключа (из 256-ти). Если была хотя бы одна исходящая транзакция, то в блокчейне зафиксируются все 256 бит публичного ключа, и при последующих входах в аккаунт будут задействованы все эти 256 бит. Для взлома такого аккаунта потребуется перебор 2256 чисел, а не 264, что многократно сложнее. Поэтому, чтобы "застолбить" аккаунт, желательно не только перевести на него монеты, но и активировать его максимальную защиту, сделав минимальный расход (например, зарегистрировать алиас).

Q: Какой должна быть пассфраза (пароль), каким может быть номер аккаунта (кошелька) ?
A: Пассфраза может быть любой длины, теоретически от 1 до бесконечности, практически - не менее 70 символов. Для генерации и дальнейшего использования пассфразы можно использовать программу KeePass. Символы могут быть любые Unicode в кодировке UTF-8. Т.е. не только спецсимволы, но и китайские иероглифы, русские буквы и т.д. Из пассфразы вычисляется хеш фиксированной длины 256 бит (он же - публичный ключ пользователя). Из любого пароля, даже однобуквенного, получится 32 байта = 256 бит = 2^256 аккаунтов.

   По хешу открывается доступ в аккаунт. Если аккаунт непубличный (с него не было ни одной исходящей транзакции, входящие не в счет, и в блокчейне не хранится его публичный ключ), то для доступа к нему используется хеш, усеченный до 8 байт = 64 бит. Если же аккаунт публичный (была хотя бы одна исходящая транзакция, например комиссия за алиас или перевод монет на другой аккаунт), то для доступа к аккаунту хеш используется целиком, все 256 бит.

   Номер кошелька - это видимая часть публичного ключа пользователя (64 бита из 256-ти). Почему номера аккаунтов разной длины, к примеру один содержит 19, а другой 20 десятичных цифр? Потому что не отображаются впереди идущие незначащие нули, в общем случае номер аккаунта может иметь длину от 1 до 20 десятичных цифр. Наименьший возможный номер аккаунта 2^0=1 (длина номера 1 десятичная цифра), наибольший возможный номер аккаунта 2^64 = 18.446.744.073.709.551.616 (длина номера 20 десятичных цифр).

Q: За счет чего генерируются монеты?
A: Они вообще не генерируются, в системе их фиксированное число - 1 млрд NXT. Майнеры зарабатывают только за счет комиссии из транзакций (минимум - 1 NXT за транзакцию), которые попали в намайненный блок.

   Сейчас стоит ограничение на 255 транзакций в блоке. В блок берутся в первую очередь те, у которых выше комиссия. Когда Nxt начнет использоваться интенсивней, тогда начнется конкуренция за место в блоке и комиссия начнет расти. А пока майнить на Nxt не особо выгодно, но зато и не затратно.

Q: Понятно, что майнить на Nxt пока не особо прибыльно, но насколько "не особо"? К примеру, сколько могли бы намайнить мои XXX NXT ?
A: Целевая скорость майнинга - 1 блок/мин, т.е. 1440 б/день. Всего монет 1 млрд, если все разлочат свои кошельки, и у всех все монеты вылежатся (более суток), то получается, что каждые ~700 тыс. монет (1 млрд/1440) генерируют 1 блок (и получают всю комиссию со всех 255-ти транзакций этого блока). На практике далеко не все монеты участвуют в майнинге, и это видно в виджите "Recent block" возле красного кружочка, например, 275%, т.е. вместо 100% в майнинге участвовало в 2,75 раза меньше монет (и шанс у них повысился в 2,75 раза). Таким образом, свои XXX монет вам нужно умножить на 2,75 и разделить на 700 тыс., чтобы прикинуть, сколько примерно блоков в день сгенерируют ваши монеты.

Q: Web-клиента запустил, свой аккаунт разлочил. Как понять, майнит ли мой клиент?
A: Нажмите на фиолетовый паззлоподобный ромбик, над списком "Recent blocks [n]" должна быть надпись "You can generate the next block in dd days hh hours mm minutes ss seconds", как на скриншоте на первой странице.

Q: У меня вот нет надписи про генерацию блока, чего делать ?
A: Установите самую свежую версию Java. Проверьте, что на вашем сервере выставлено правильное время. И главное: если вы только недавно получили (или купили) монеты, то они начнут майнить лишь через 1440 блоков (навести мышь на свою транзакцию, где написано 10+), сейчас это больше суток.

Q: Понятно, что сейчас транзакций и комиссий мало, но всё же, допустим, я вошёл в свой счёт со 100 NXT, начал майнить, и нашёл блок с комиссией 1 NXT. Будет ли сразу после этого мой счёт майнить исходя уже из 101 NXT ?
A: После 47000-го блока вступил в силу 2-й этап Transparent Mining, и теперь  "Эффективный баланс" после каждого получения монет увеличивается только через 1440 подтверждений (как и самая первая транзакция в аккаунте).

Q: Запускаю веб-клиента, но в окошке только надпись "java.lang.NullPointerException". Что делать?
A: Удалите файлы *.nxt, и переименуйте *.bak в *.nxt. Если не поможет - вообще удалите все *.nxt и *.bak файлы, начните лишь с файла blockchain.nrs нулевого размера.

Q: Для работы java достаточно дефолтных параметров?
A: Сейчас софт ещё не до конца вылизан, возможно есть утечки памяти, поэтому java можно запускать c параметрами использования памяти (в мегабайтах), например: java -Xms1024m -Xmx2048m -jar start.jar

Q: Пытаюсь посмотреть баланс на своём счёте, как написано выше: http://localhost:7874/nxt?requestType=getBalance&account=nnnnnnnnnnnnn, получаю три значения: "balance","effectiveBalance","unconfirmedBalance". В чём между ними разница?
A: "unconfirmedBalance" - это то значение, которое светится в web-клиенте в правом верхнем углу. Это значение сразу уменьшается после отправки монет, но не сразу увеличивается после получения, а только после 1-го подтверждения этой транзакции. По сути, "unconfirmedBalance" - это баланс, который можно тратить без того, чтобы попасть в список double-spent transactions.
"effectiveBalance" - это баланс, который используется для майнинга. Каждая транзакция аккаунта должна получить 1440 подтверждений, чтобы её монеты добавились к "effectiveBalance".

Q: Я запускаю Nxt на удалённом сервере, и на нём через web-браузер разлочиваю свой аккаунт, чтобы он майнил. Ничего страшного не произойдёт, если в другом окне браузера я разлочу этот же аккаунт, или ещё запущу Nxt на локальном компьютере, и через localhost:7875 разлочу его же?
A: Один аккаунт можно запустить на разных компьютерах, это чревато только повышенным рейтом брошенных (orphaned) блоков.

Q: Как проверить, остался ли разлочен аккаунт после закрытия страницы/браузера? Как проверить, что он в процессе генерации?
A: Разработчик утверждает, что разлоченный аккаунт майнит. Майнинг происходит не на клиенте, а на сервере, к которому был подключен клиент в момент разлочки. Причём приватный ключ аккаунта остаётся в памяти сервра (как и в других PoS системах), так что если враг доберётся до ОЗУ того сервера (например, localhost :-)), он похитит ваши монеты. Убедиться в майнинге можно через просмотр в блокэксплорере вашего аккаунта - вначале посмотреть сколько было найденных блоков, затем проверить их увеличение.

Q: Все монеты были эмитированы сразу, значит их в системе постоянное число?
A: Нет, количество NXT немного уменьшается, т.к. их можно уничтожать.

   Как известно, создатель Nxt породил весь миллиард монет в Genesis блоке. Так вот он породил их не просто так, а одновременно с миллиардом анти-монет. В точности как во Вселенной из вакуума при определённых условиях рождается пара частица-античастица (из-за этого, в частности, происходит испарение чёрных дыр).

   Таким образом, если вдруг кто-то хочет надёжно уничтожить свои монеты, лучший для этого способ - послать их мне аннигилировать их с анти-монетами Genesis блока. То есть перечислить их на Genesis-аккаунт Genesis-блока: 1739068987193023818 (пароль от которого, к слову сказать: "It was a bright cold day in April, and the clocks were striking thirteen.").

   Мы не знаем, что будет с нашей Вселенной, но вселенную Nxt полностью аннигилировать не получится. Если последний владелец последних монет пошлёт эти монеты на Genesis-аккаунт, он всё равно будет вынужден заплатить хотя бы 1 NXT комиссии. И этот 1 NXT вернётся к нему, т.к. он в этот момент будет единственным майнером.

   Как известно, почитатели Сатоши до сих пор шлют на адрес первого намайненного им биткоин-блока свои сатоши (и загадывают при этом желание, примерно как бросая копейки в море). Так и фанаты Nxt начали отправлять монетки на Genesis-адрес, загадывая желание.

Q: Что такое Alias System, и как создавать алиасы?
A: Описание и инструкция здесь.

Q: Что такое Hallmark, и зачем он нужен?
A: Ответ здесь.

Q: Что такое Arbitrary Messages, и зачем они нужны?
A: Небольшое описание здесь.

Q: Как будет работать Asset Exchange (встроенная в Nxt биржа) ?
A: Биржа позволит любому за комиссию 1000 NXT выпустить определённое количество (скажем, 500) акций, назовём их CSNO. Таким образом, 1000 NXT комиссии эмитент становится обладателем 500 объектов (акций, монет, облигаций..) CSNO. Далее он здесь же, внутри Nxt, предлагает желающим купить акции CSNO по 100 NXT, объясняя, что он запускает виртуальное казино (конечно, на базе Nxt), которое будет приносить огромную постоянную прибыль, которой он готов поделиться (в размере 10% ежемесячно) с желающими вложиться в этот его бизнес (типа как Cryptsy продавала свои акции). Желающие покупают эти акции CSNO (это безопасно, т.е. не требует доверия, поскольку передача CSNO и NXT происходит в одной транзакции), и даже перепродают друг другу. Далее, через месяц эмитент на основе информации из блокчейна переводит дивиденды (10%) владельцам CSNO. Или не переводит ... Вот этот вопрос Nxt решить не может - репутацию эмитент должен зарабатывать. Или на форуме, или прямо в Nxt, когда там будет реализована Репутационная система.

   Конечно, обмен NXT на фиат таким образом не реализовать, потребуются gateaway-операторы. Как сейчас в Ripple. Эмитент сможет в Nxt выпустить что-то типа долларовых или рублёвых кодов btc-e (вместо CSNO), и обменивать их на NXT в одной транзакции, а уже эти коды gateaway-оператор обменяет на рубли (как при выводе с btc-e - на ЯД или QIWI или карточку...).

Q: Изначально все NXT вроде были в руках небольшого числа инвесторов? Это же несправедливо!
A: Чисто PoS-система предполагает 100% начальную эмиссию. Да, это несправедливо, как и всё в этом мире. Насчёт небольшого числа инвесторов см. также здесь.

Q: Можно ли в Nxt, как в bitcoin-qt, подписывать сообщения своим ключём?
A: Да, используйте фиолетовый ключик рядом с зелёными цифрами вашего счёта.

Q: Если выставлены IP/hallmark, как проверить, видят ли меня другие пиры?
A: Зайти на другой сервер, и в виджете Peers поискать свой IP.

Q: Грозит ли бытие нодой чем-либо — зачем открывать порт 7874 (как я понял из англоветки)?
A: Грозит увеличившимся трафиком. Если порт закрыт, то ваш сервер только запрашивает данные у других серверов. Если порт открыт, то ему начнут передавать данные.

Q: 16 Гб в год блокчейна до скончания веков или нет?
A: В коде нет ограничения на 16 Гб. Это расчётная величина - 1 бл/мин, 32Кб/бл. Блокчейн будет "чиститься" раз в год, будут удаляться ненужные транзакции и старые Arbitrary Messages, т.е., грубо говоря, ежегодно будет создаваться новый Генезис Блок (за 1440 блоков от нового года). Полный блокчейн будет сохраняться у Сервис Провайдеров (да, он будет бесконечен).

Q: Сохраняется ли ip сервера или пользователя в блокчейне?
A: Нет, Все криптовалюты, включая Nxt, работают на паре ключей: приватный:публичный. Между ними однозначное соответствие - хэш-функция. Публичный ключ пишется в блокчейн, приватный ключ известен только пользователю. Кроме того, предпринимаются усилия, чтобы IP было трудно вычислить. Также ведется работа по программированию протокола zerocoin в Nxt.

Q: В Nxt блок (255 транзакций) формируется каждую минуту. А что будет, если количество транзакций превысит 255 за минуту?
A: При отправке монет в Nxt вы, помимо адреса получателя, суммы и комиссии, ещё указываете предельное время транзакции (по умолчанию 24 часа). Если по истечении этого времени ни один майнящий сервер не захочет взять в свой очередной блок вашу транзакцию, то она будет аннулирована, и сумма вернётся вам на счёт. Поэтому в будущем, когда транзакций станет много, будет лучше указывать предельное время в 5-10 минут, и в случае аннуляции снова запускать платёж, но уже с повышенной комиссией.

   Как и в биткоине, отправляемые в сет транзакции формируют очередь, из которой майнящий сервер выбирает транзакции для включения в очередной блок. естественно, сервер выберет транзакции с самой высокой комиссией. Если поток транзакций будет всё нарастать, то транзакции с минимальной комиссией будут находится в конце очереди, и у них может превысится их предельное время, и они аннулируются.

   В будущем (когда возникнет необходимость) количество транзакций в блоке существенно увеличат, чтобы раскрыть весь потенциал Прозрачного Майнинга (Transparent Forging) и достичь производительности Visa (десятки тысяч транзакций в секунду). Transparent Forging позволяет это сделать потому, что он предсказывает майнящий узел, и очередные транзакции будут направляться прямо на этот узел, вместо того, чтобы броадкаститься по всей сети.

Q: Есть ли способы майнить NXT?
A: Вот два мультипула (в скобках - их описания), подключаться нужно с номером Nxt-аккаунта вместо логина, пулы майнят самый выгодный scrypt-форк, автоматически конвертируют в NXT, и раз в сутки перечисляют на аккаунт. Люди говорят, что получается примерно 0.1 NXT с Khash в сутки.
http://hashrate.org/started.html   (https://bitcointalk.org/index.php?topic=522872.0)
http://www.nxtp00l.org/   (https://nextcoin.org/index.php/topic,4399.0.html)

Q: Как передать мощность форжинга с одного аккаунта на другой (лизинг, аренда мощности)?
A: Когда Nxt запущен, перейдите на форму http://localhost:7876/test?requestType=leaseBalance. Заполните поля:

period (период): Это время, выраженное в блоках, в течение которого лизинг будет действителен. Обратите внимание, что после отправки лизинга, он не станет активным в течение 1440 блоков. Допустимые значения 1440 - 32767. В настоящее время генерируется около 800 блоков в день; 32767 блоков это примерно 40 дней лизинга. Когда ваш лизинг активируется, он появится на странице состояния.

recipient (получатель): Указывается аккаунт получателя мощности, например 1460178482.

secretPhrase (пассфраза, пароль): Здесь вводите свой пароль.

publicKey (публичный ключ):

feeNQT (комиссия, в NQT): Минимально допустимая комиссия, в NQT это 100000000 (= 1 NXT).

deadline (время ожидания, в минутах?): Реалистичное значение здесь 1440 и определяет предел времени, которое может пройти от момента представления этой формы до момента, когда сделка станет недействительной, если она не отразится в блокчейне к этому моменту времени.

referencedTransactionFullHash:

broadcast (трансляция):

Если в ходе лизинга монеты будут сняты владельцем, то они перестанут участвовать в лизинге. читать дальше

1 комментарий:

  1. У меня возникли некоторые сложности(глюки) в моем аккаунте ... Перевел с биржи Poloniex средства - вот копия перевода на мой кошелек -
    Status Coin Amount
    LOAD 10 MORE ROWS
    Complete NXT 667.00000000
    2016-08-02 21:59:54
    Address: NXT-RB4L-3Z3U-B7SH-A495B
    Txid: 8283907786704190436

    Complete NXT 3.00000000
    2016-07-31 14:27:57
    Address: NXT-RB4L-3Z3U-B7SH-A495B
    Txid: 6789776950291263278
    Через некоторое время - они исчезли , так же исчезла о них вся информация
    В то же время я изменил инфрмацию о своем аккаунте (за что была взята комиссия в 1 монету) - но и она не отображается
    Так же при достижении 427тысяч блоков загрузка блокчейна стала колом , апри перезапуске клиента количество блоков которое осталось до окончания загрузки - постепенно увеличивается не несколько блоков(десятков)
    Последний раз когда я видел свои средства на счету - я хотел вернуть их обратно на счет биржы - но мне выдало примерно следущее ... счет на который вы хотите отправить еще не делал никаких операций!!! Как так если я с него отправлял ТРИ раза монеты(один раз указав адресс как выяснилось я забыл к нему секретный пароль)!?
    Уповаю на Вашу поддержку!!!
    с ув. bambarbia

    ОтветитьУдалить