LINUX.ORG.RU

Как создать кошелек LiteCoin в консоли через litecoin-cli ?

 , ,


0

3

Решил поразбираться с лайткоинами. В официальной поставке ПО документации нет. Вики написана очень обрывочно. Все заточено на GUI, а мне нужна консоль.

Задача: сделать кошелек Litecoin.

Что уже смог сделать: смог запустить демон litecoind, настроить RPC логин-пароль, указать директорию для данных на свободном диске.

Чего не смог сделать: не смог понять, как создать Litecoin-кошелек, как его связать с Litecoin-адресом, как убедиться, что кошелек есть и работает.


Насколько я понял, кошелек - это просто файл wallet.dat. Этот файл создается при запуске лайткоин-демона. Вроде как это и есть основная ценность для пользователя (да?). Вроде как его можно таскать с собой, подменять его и работать с ним. Но тогда непонятно, что такое адрес кошелька, и как связывается адрес кошелька с соответствующим ему файлом wallet.dat.

В опциях консольного клиента есть команда getnewaddress:

$ ./litecoin-cli getnewaddress
LaKFi0Abc9D1Jc96w1e7dQsB99xGsXbUdL


Работает она примерно пол-минуты, и выдает строку с лайткоин адресом. Теперь надо понять, что происходит при выполнении этой команды. Просто выдается на консоль произвольный новый адрес? Генерируется новый адрес и связывается с файлом кошелька? Тогда где прописывается эта связь? В самом файле кошелька? Инфа о создании кошелька передается в биткоин-сеть?

Кастую YAR, StalinEXE, vurdalak, Chaser_Andrey, winddos, KillTheCat, madcore, x4DA, Jurik_Phys

★★★★★

Последнее исправление: Xintrea (всего исправлений: 2)

Честно говоря не знаю точно что делает getnewaddress, но при первом запуске по-идее должен был создаться пул из 100 (или 1000, не суть важно) адресов, приватные ключи к которым записываются в валлет.дат и в дальнейшем эти адреса используются по необходимости. Т.е. когда первый раз запускаешь кошелек, он тебе выдает 1 адрес для использования, а еще 999 в запасе.

getnewaddress по логике должно просто брать адрес из этого пула и показывать пользователю, а в случае если валлет.дат отсутствует, то создать его.

Radius ★★★★
()

кошелек - это просто файл wallet.dat

Да

Этот файл создается при запуске лайткоин-демона. Вроде как это и есть основная ценность для пользователя (да?)

Да

Но тогда непонятно, что такое адрес кошелька, и как связывается адрес кошелька с соответствующим ему файлом wallet.dat.

Адрес кошелька - публичный ключ. wallet.dat содержит в себе эти ключи, а также список транзакций (но это можно и из базы подтянуть). getnewaddress создает новую пару ключей и они добавляются в wallet.dat. При создании кошелька (первом запуске litecoind или litecoin-qt (или как они там зовутся сейчас) - если кошелька у тебя до этого не было) у тебя в том числе был сгенерирован новый адрес, так что getnewaddress было не обязательно делать.

Инфа о создании кошелька передается в биткоин-сеть?

Подозреваю, что нет - как минимум, много где пишется, что интернет для этого не требуется. Адрес светится в сети только в момент публикации транзакции. Как добиваются уникальности генерации пары ключей - не знаю.

YAR ★★★★★
()
Ответ на: комментарий от Radius

Таки да, берет из пула. getnewaddress не увеличивает счетчик в getwalletinfo. Возможно, генерируется новый при использовании всех адресов пула.

YAR ★★★★★
()
Ответ на: комментарий от YAR

С другой стороны, listaddressgroupings вроде как выдает все адреса в кошельке. Но тот, что был создан по getnewaddress, там не присутствует. А число адресов меньше, чем в пуле.

YAR ★★★★★
()
Ответ на: комментарий от YAR

Как добиваются уникальности генерации пары ключей - не знаю.

ЕМНИП, там генерируется пара закрытый-открытый ключ, обычная ассиметричная криптография (как в SSH или GPG). Вероятность генерации идентичной пары - ничтожна, иначе бы это не считалось криптостойким алгоритмом.

Chaser_Andrey ★★★★★
()
Ответ на: комментарий от APPLE_OS_XX_OS_XY

Не знаю, не слежу подробно за внутренним устройством.

YAR ★★★★★
()
Ответ на: комментарий от Chaser_Andrey

Вероятность генерации идентичной пары - ничтожна, иначе бы это не считалось криптостойким алгоритмом.

все зависит от источника энтропии. Уже были случаи, самый что помню — история с Bitcoin Wallet for Android.

APPLE_OS_XX_OS_XY
()
Ответ на: комментарий от APPLE_OS_XX_OS_XY

Это зависит от многих вещей. Любой косяк - и криптография скомпроментирована.

Chaser_Andrey ★★★★★
()
Ответ на: комментарий от YAR

Блин, так как узнать адрес своего кошелька?

Getinfo и getwalletinfo ни до ни после генерации адреса не показывают никакого адреса.

Xintrea ★★★★★
() автор топика
Последнее исправление: Xintrea (всего исправлений: 1)

При первом запуске bitcoin-qt или bitcoind создаётся ~/.bitcoin, в котором лежит wallet.dat. Это твой кошелёк.

// «bit» заменить на название форка.

ZenitharChampion ★★★★★
()
Ответ на: комментарий от Xintrea

Можно через listaccounts -> getaddressesbyaccount - это те адреса, что есть в графическом клиенте на вкладке «Получить». Но там могут не присутствовать адреса, на которые кидалась сдача. Их, по-идее, можно увидеть по listaddressgroupings

YAR ★★★★★
()
Ответ на: комментарий от YAR

У меня все показывает по нулям:

$ ./litecoin-cli getinfo
{
    "version" : 100202,
    "protocolversion" : 70003,
    "walletversion" : 60000,
    "balance" : 0.00000000,
    "blocks" : 842388,
    "timeoffset" : 252,
    "connections" : 8,
    "proxy" : "",
    "difficulty" : 41781.63861704,
    "testnet" : false,
    "keypoololdest" : 1447756675,
    "keypoolsize" : 101,
    "paytxfee" : 0.00000000,
    "relayfee" : 0.00100000,
    "errors" : ""
}

$ ./litecoin-cli getwalletinfo
{
    "walletversion" : 60000,
    "balance" : 0.00000000,
    "txcount" : 0,
    "keypoololdest" : 1447756675,
    "keypoolsize" : 101
}

$ ./litecoin-cli listaccounts
{
    "" : 0.00000000
}

$ ./litecoin-cli listaddressgroupings
[
]

Опцией getaddressesbyaccount воспользоваться не могу, потому что ей нужен адрес кошелька, а я его не знаю.

Xintrea ★★★★★
() автор топика
Последнее исправление: Xintrea (всего исправлений: 1)
Ответ на: комментарий от Xintrea

А там есть принципиальные отличия от биткойна? Пару лет назад клиентский «апи» у них совпадал процентов на 95, не думаю что сейчас ситуация изменилась. По битку документации полно.

orm-i-auga ★★★★★
()
Ответ на: комментарий от orm-i-auga

Мда, какая-то жесть. Никто не знает, как пользоваться консольными командами. Все что нашел - это только как куды мышкой тыкать.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Я когда делал java-интерфейс к *койнам, все делал по докам битка. После тестирования на других койнах пришлось отказаться от нескольких неважных функций, в которых они не пересекались, в остальном они совпадают. Поэтому и не сделали видимо отдельную доку, т.к. тоже самое.

https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list

orm-i-auga ★★★★★
()
Последнее исправление: orm-i-auga (всего исправлений: 1)
Ответ на: комментарий от Xintrea

Не знаю, не интересовался.

Читай доки биткоина и в чём отличия форка.

В остальном - всё то же самое.

Chaser_Andrey ★★★★★
()
Ответ на: комментарий от Xintrea

Там же первое предложение

Listing the bitcoin addresses in your wallet is easily done via listreceivedbyaddress. It normally lists only addresses which already have received transactions, however you can list all the addresses by setting the first argument to 0, and the second one to true.

orm-i-auga ★★★★★
()
Ответ на: комментарий от orm-i-auga

Ну это я само собой делал. Результат - болт:

$ ./litecoin-cli listreceivedbyaddress
[
]

$ ./litecoin-cli listreceivedbyaddress 0
[
]


Какие еще варианты будут?

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от orm-i-auga

А, понял. Правильная команда будет:

$ ./litecoin-cli listreceivedbyaddress 0 true


Все никак не мог понять, что имеют в виду под «and the second one to true».

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от YAR

По результатам обсуждения запилил статью:

Как работать с Litecoin в консоли под Linux - создание кошелька

Дальше буду разбираться как майнить. Пока еще не понял, возможен ли майнинг в одно рыло, или обязательно надо подключаться к какой-нибудь бирже.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Майнить лайты сейчас только ASIC'ами можно. Соло - можно, если у тебя есть много ASIC'ов :). Подключаются не к бирже, а к пулу.

YAR ★★★★★
()
Ответ на: комментарий от YAR

Майнить лайты сейчас только ASIC'ами можно.

Можно Асиками потому что на Цпу не будешь успевать находить хеши даже по заданию пула? И вообще ничего не заработаешь?

Или можно Асиками потому что на Цпу будет просто медленно? И потому заработаешь мало?

Вроде бы Лайткоин и создавался чтобы его только на Цпу считали.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Второе - заработаешь очень мало из-за малой скорости.

Вроде бы Лайткоин и создавался чтобы его только на Цпу считали.

ASIC при желании можно сделать под все. Да, сначала был CPU, потом сделали софт под GPU. Из-за популярности со временем появились и ASIC'и. Да, разница в скорости между поколениями устройств не такая большая, как это было на биткоине, но с появлением нового поколения старое становится неэффективным.

YAR ★★★★★
()
Ответ на: комментарий от Xintrea

потому что ей нужен адрес кошелька, а я его не знаю.

Нет:

getaddressesbyaccount
byaccount

который ты получил по listaccounts

YAR ★★★★★
()
Ответ на: комментарий от YAR

Так и не понял, что должен показывать listaccounts.

listreceivedbyaddress 0 true сейчас показывает три моих адреса. А listaccounts показывает нулл.

В общем, по результатам обсуждений, запилил еще одну статью про майнинг на CPU:

Как работать с Litecoin в консоли под Linux - майнинг на CPU.

Теперь у меня третий этап исследования по передаче и получения лайткоинов откладывается минимум на 3 года.

Xintrea ★★★★★
() автор топика
Последнее исправление: Xintrea (всего исправлений: 1)
Ответ на: комментарий от Xintrea

Так и не понял, что должен показывать listaccounts.

Как я понимаю, то, что в графическом клиенте у тебя на вкладке «Получить»

listreceivedbyaddress 0 true сейчас показывает три моих адреса.

У меня он показывает множество адресов, в том числе много записей касательно совершенных когда-либо транзакций.

А listaccounts показывает нулл.

Он (судя по тому, что ты показывал выше) показывает единственную запись, которая светилась бы у тебя как один адрес в «Получить» в графическом клиенте, которая была бы без метки (имя аккаунта в данном случае)

YAR ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.