Как запустить bitcoin daemon

Как настроить bitcoind в Arch Linux

Хорошо, я наблюдал за тенденцией Биткойна с некоторым интересом в течение нескольких лет. И я наконец решил заняться собой. Поэтому вчера и сегодня я читал несколько часов из многих ресурсов в этом вопросе и этот отличный ответ . Я прочитал этот пост в блоге целиком и думаю, что понял это полностью. Я понимаю, что для того, чтобы заплатить кому-то или заплатить в BTC, мне нужен биткойн ID, и это идет рука об руку с получением кошелька BTC. Я понимаю, что для моего кошелька BTC существуют два разных варианта:

  1. локально хранящаяся (на моем компьютере) копия всей цепочки блоков
  2. удаленно хранящаяся (на чужом компьютере) копия всего блочную цепочку, которая зашифровывается с учетными данными, так что только у меня есть доступ к нему (хотя неудача Mt. Gox и многие другие, похоже, показать, что это менее безопасно, чем первое)

Я думаю, что синоним для варианта 1 выше — «холодное хранение», хотя я не уверен в этом.

Я понимаю, что добыча для BTC — это совсем другое дело, что действительно стоит с ASIC или аналогичным оборудованием, поэтому я пока не интересуюсь разработкой полезных ископаемых. Я просто хочу получить идентификатор и кошелек и понять Bitcoin достаточно хорошо, чтобы иметь возможность хранить свою собственную копию цепочки блоков на моей локальной машине и поддерживать ее в актуальном состоянии. Может быть, в конце концов я посмотрю на майнинг, но сейчас меня это не интересует.

Из сообщения блога Erik Voorhees, я думаю, что я понимаю, что если я хочу вариант 1 выше (что я делаю, как мне кажется более безопасным для меня, и удобство для меня вообще не важно), тогда мне нужно установить либо биткойн или биткойн-qt. (Я полагаю, что оба они считаются частью «Биткойн Core» ниже?) Это подкрепляется моим обзором программных средств, которые я вижу на bitcoin.org:

  • Контроль над деньгами
  • Полная проверка
  • Полная прозрачность
  • Уязвимая среда
  • Улучшенная конфиденциальность

, тогда как лучшее, что любой из других для Linux там:

может предлагать относительно прозрачности — «Основная прозрачность».

Я понимаю из этого ответа , что, хотя возможно, что они оба установлены в одной и той же системе, нельзя одновременно работают биткойны и биткойн-qt, работающие в одной и той же системе. Поэтому мой вопрос в том, как настроить и начать работу с bitcoind в Arch Linux; но есть несколько конкретных проблем, которые мне кажутся мне лучше понять.

Используя биткойн, в какой именно точке я буду генерировать свой ID? Я предполагаю, что это должно быть после того, как я завершил загрузку всей цепочки блоков?

bitcoind.conf хочет, чтобы я вставлял в него встроенное, незашифрованное, незашифрованное имя пользователя и пароль, которые, как я думаю, биткойн будет читать при запуске. Что именно эти учетные данные будут использоваться биткойном? Я знаю, что параметры называются довольно прозрачно (rpcuser и rpcpassword), а справочная страница объясняет, что они предназначены для соединений JSON-RPC. Но у меня есть только один бинарный файл в моем пакете bitcoin-daemon (/usr /bin /bitcoind), поэтому какой клиент подключается к моему запущенному экземпляру bitcoind с помощью соединений JSON-RPC?

Использование bitcoind, в какой именно момент программное обеспечение начнет загружать копию всей цепочки блоков? Я знаю, что это большой файл и может занять несколько часов или дней.

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

. но какой будет самый простой файл bitcoin.conf, который мне нужен? Например, мне нужно будет отключить настройки для любого из них:

Что другие люди используют для paytxfee, и помимо того, чтоbitcoin.conf говорит: «« Сделки с комиссионными более вероятны, чем свободные транзакции, которые должны быть включены в сгенерированные блоки, поэтому могут быть утверждены раньше ».), почему я должен установить это значение на что-то иное, чем 0,00 (и то, что это номер в любом случае «процент», поэтому, если я установил его 1,00, что составляет 1,00%)?

Читайте также:  Tp link groovi ripple

Моя основная проблема в понимании сейчас — это просто подключение конкретных настроек в bitcoin.conf к моему абстрактному пониманию того, как функционирует сеть Bitcoin. Я думаю, что у меня общее понимание последнего, но как реализовать конкретные понятия последнего, используя настройки первого, для меня совершенно не очевидно, и после многих часов обучения я не вижу ясного объяснения это где угодно.

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

Я решил разбить этот пост на 5 или около того отдельных сообщений, и я надеюсь, что сообщество помиловал бы мое решение не делать этого. Я рассматриваю все вышеперечисленные вопросы как существенные фрагменты предметного вопроса: «Как настроить bitcoind в Arch Linux». Вот почему я оставил его как один длинный пост. Опять же, я прошу прощения у сообщества, если это считается прискорбным решением.

1 ответ

Хотя я думаю, что еще слишком рано говорить наверняка, похоже, что у меня теперь есть более информативное чтение, которое я нашел . Я подозреваю, что эти документы в конечном итоге помогут мне понять правильные ответы на все мои вопросы выше. Я не понял, что до сих пор мои вопросы были по сути вопросами разработчиков.

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

Эти слова (хотя в настоящее время не совсем полные, поскольку они не упоминают bitcoin-cli): «Доступны две версии исходной программы биткойнов: одна с графическим интерфейсом пользователя (обычно называемая только« биткойн »[или bitcoin-qt]) и «безголовую» версию (называемую биткойндом). Они полностью совместимы друг с другом и принимают те же аргументы командной строки, читают один и тот же файл конфигурации и читают и записывают одни и те же данные файлы. Вы можете запустить одну копию Bitcoin [aka bitcoin-qt] или биткойн в вашей системе за раз (если вы случайно попытаетесь запустить другую, копия сообщит вам, что биткойн или биткойн уже запущены и выйдет). от этой страницы также были полезны чрезвычайно . Они помогли мне понять, что для начала работы мне даже не нужно беспокоиться о настройках в файле конфигурации bitcoin.conf. Я могу установить биткойн-qt и биткойн, сначала запустить биткойн-qt, а затем закрыть его позже в пользу биткойна.

Итак, для Arch Linux, по крайней мере, теперь я думаю, что лучше всего установить все три пакета:

И все это часть программного обеспечения вверх, называемого Bitcoin Core, используемого для полной прозрачности и кошелька, хранящегося локально (возможно, лучшей безопасности) на моем компьютере , а не на чужой компьютер.

Но один действительно ценный совет, который я только что обнаружил несколько минут назад, это то, что есть довольно недавняя копия цельной цепочки блоков (21 ГБ), доступная как торрент-файл . И в свете этого открытия мне ясно, что для того, чтобы как можно быстрее начать с локального кошелька, я должен полностью загрузить этот поток блок-цепочки. И затем, и только THEN , я должен запустить биткойн или биткойн-qt, чтобы проверять или проверять эту цепочку блоков на 21 ГБ или что бы то ни было, правильный термин для этого. Это экономит время загрузки и экономит пропускную способность сети Bitcoin от прямых загрузок через биткойн или биткойн-qt.

Я написал подробную процедуру для этого в Arch Linux странице вики-биткойны которые я воспроизвел ниже, чтобы улучшить этот ответ.

Убедитесь, что доступно свободное место на диске размером не менее 80 ГБ (22 ГБ * 3 копии + 14 ГБ с использованием биткойна /биткойна-qt).

Читайте также:  Инвестировать пенсию что это такое

Установите gnupg, deluge, bitcoin-qt, bitcoin-daemon и bitcoin-cli из официальных репозиториев

Используя браузер, загрузите README.txt, bootstrap.dat.torrent, bootstrap.dat.torrent.gpg и bootstrap.txt

Используя gnupg, проверьте загруженные файлы как имеющие хорошие подписи (вам нужно сначала импортировать идентификатор открытого ключа подписчика A2DB9CCA)

Используя потоп, загрузите 22GB bootstrap.dat (возможно, часы в зависимости от скорости загрузки данных)

Когда загрузка bootstrap.dat завершена:

оставлять потоки до тех пор, пока(необязательно, но оно помогает сообществу, может потребоваться несколько часов или дней в зависимости от скорости передачи данных)

скопируйте (не перемещайте или не прерывайте посев) bootstrap.dat на

/.bitcoin (не используйте символическую ссылку, так как этот файл будет переименован bitcoin-qt после полного импорта , и это тоже прервет посев)

запустить биткойн для импорта фона или биткойн-qt для импорта с обратной связью о ходе

bitcoin-qt начинает импортировать цепочку блоков из bootstrap.dat, предоставляя визуальную и текстовую обратную связь в отношении прогресса импорта («Импорт из диска . » и, например, «4 года и 24 недели позади» и т. д. ., этот импорт с диска может потребовать более одного часа)

процесс импорта дублирует 22-разрядный файл bootstrap.dat в

/.bitcoin /blocks /, что примерно удваивает размер

/.bitcoin от 22 ГБ до запуска Bitcoin Core до 44 ГБ после завершения импорта.

После завершения импорта с диска

bitcoin-qt отобразит «Синхронизация с сетью . » и, например. «22 недели позади . » (проводное сетевое соединение здесь ускорит эту часть процесса, но несколько часов, чтобы завершить синхронизацию с сетью, типично)

файл bootstrap.dat переименовывается в bootstrap.dat.old

теперь должно быть безопасно удалить bootstrap.dat.old из

/.bitcoin, но осторожным подходом было бы подождать, пока ваша локально сохраненная цепочка блоков будет полностью синхронизирована с сетью.

После того, как биткойн-qt указывает, что локальная копия цепочки блоков полностью синхронизирована с сетью (

/.bitcoin /blocks заполнено 34 ГБ в феврале 02015, тогда рассмотрите вопрос о выходе из биткойна-qt и выполните одно из следующих действий:

запустить биткойн, чтобы синхронизировать цепочку блоков; обратная связь о статусе цепочки блоков может быть выполнена с использованием биткойн-cli без дополнительной памяти, необходимой для биткойна-qt.

перезапустить биткойн-qt, работающий как свернутое окно ($ bitcoin-qt -min). Обратите внимание, однако, что некоторые люди обнаружили, что этот аргумент командной строки не работает, как рекламируется.

Рассмотрите возможность создания резервной копии вашего файла wallet.dat с помощью bitcoin-qt.

Дополнительную информацию см. в официальной викторине Биткойн.

Источник

Работа с bitcoin из под Node.js (Делаем Online Bitcoin Wallet) habrahabr.ru

Встала как-то перед мной задача подключить оплату на сайте с помощью биткоина, я конечно слышал про биткоин, но в руках не держал, статей по этому делу мало, под Node.js тем более, пришлось потратить денек и разбираться. Ничего сложного, но думаю смогу сократить ваши пару часов, если вы никогда не работали с биткоином через консоль и не подключали таким образом платежи.

У меня сервер крутится на Ubuntu, соответственно буду рассказывать под нее, разница лишь в установке клиента bitcoind в систему.

1. Как это будет работать.

Соответственно единственное, что нам нужно, чтоб принимать биткоины, это биткоин клиент на сервере. Называется он bitcoind, это всего-лишь консольный вариант клиента, со всем тем же привычным функционалом.
Работает все это чудо через протокол JSON-RPC, висит под портом 8332. Все, что нам останется после установки, просто наладить работу клиента и Node.js.

2. Установка bitcoind.

Для установки нам понадобится выполнить всего пару команд: добавить репозиторий биткоина, установить обновления, установить клиент и создать директорию в домашнем каталоге:

sudo aptitude install python-software-properties
sudo add-apt-repository ppa:bitcoin/bitcoin
sudo aptitude update
sudo aptitude install bitcoind
mkdir

Дальше мы выполним конфигурацию клиента, создадим daemon, дабы запускать bitcoind в фоновом режиме. Конфигурационный файл клиент нужно поместить в домашней категории,

/.bitcoind, файл сам называется bitcoin.conf. Так что продолжим:

Устанавливаем логи и пароль на месте USERNAME и PASSWORD соответственно. Теперь создадим daemon для работы в фоновом режиме:
sudo nano /etc/init/bitcoind.conf

start on filesystem
stop on runlevel [!2345]
oom never
expect daemon
respawn
respawn limit 10 60 # 10 times in 60 seconds

Читайте также:  Оптимальное распределение инвестиций между проектами

script
user=USER
home=/home/$user
cmd=DIR
pidfile=$home/.bitcoin/bitcoind.pid
# Don’t change anything below here unless you know what you’re doing
[[ -e $pidfile &&! -d «/proc/$(cat $pidfile)» ]] && rm $pidfile
[[ -e $pidfile && «$(cat /proc/$(cat $pidfile)/cmdline)» != $cmd* ]] && rm $pidfile
exec start-stop-daemon —start -c $user —chdir $home —pidfile $pidfile —startas $cmd -b -m
end script

Авторство скрипта не за мной. USER нужно заменить на имя пользователя, под которым будем запускаться bitcoind и DIRнужно заменить расположением самого бинарика, он у меня находится по следующему пути — /usr/bin/bitcoind. У вас должен находится так же, если следовать этому туториалу.

Выполнял перезагрузку конфигурации daemon:
sudo initctl reload-configuration

Выполняем запуск:
sudo start bitcoind

У меня заработало, надеюсь, у вас тоже.

3. Подключаем оплату к сайту.

Теперь мы можем работать с биткоином через консоль, список команд клиента можно получить так:
sudo bitcoind help

Выпадет обширный список, к каждой команде можно найти описание, например, здесь. Нас интересуют лишь некоторые команды:
getnewaddress (account) — для создания нового адреса и аккаунта.
getbalance (account) — для получения баланса.
listtransactions (account) (count) (from) — для получения списка транзакций.

В принципе это и все, что нам сейчас понадобится. Я буду делать так, нажимаем на кнопочку, получаем адрес, по адресу можем пройти в свой кошелек.

Я набросал немного верстки на скорую руку, выглядит не очень, но статья эта не о верстке вовсе. Все это выглядит до внедрения функционала так.

И сам кошелек:

А дальше мы подружим сайт и биткоин клиент. Я не буду рассказывать о том, как писал ajax методы и тому подобное, это все и так знают.

Чтоб работать с bitcoind из под node.js и не писать собственный врапер уже предусмотрено несколько библиотек, я использую просто модуль bitcoin, который можно найти здесь. Так вот, приступим.

Я уже установил модуль bitcoin командой:
npm install bitcoin

Теперь осталось создать подключение в коде и написать первый функционал. Работать с модулем просто, вот пример инициализации клиента:
var client = new bitcoin.Client(< host: 'localhost', port: 8332, user: 'user', pass: 'pass' >);

Мы используем метод cmd для доступа к функциям API биткоин клиента, первым аргументом идет названия функции, дальше идут аргументы, в данном случае случайно генерированный id аккаунта, на выходе мы получаем callback с ошибкой, если она есть, и с новым адресом.

Теперь займемся личным кабинетом. Давайте попробуем выводить баланс, заодно и проверим существует ли такой кошелек при переходе по нашему url. Баланс мы узнать можем только по аккаунту, либо же получить общий баланс кошелька, это нам не подходит, потому сперва мы получим аккаунт по адресу, а затем получим баланс, ну и выведем все это на экран.

Для получения аккаунта используем метод getaccount (address), который вернет нам аккаунт по адресу:
client.cmd(‘getaccount’, wallet, function (err, acc) < . >);

Ну и теперь мы можем получить баланс:
client.cmd(‘getbalance’, acc, function (err, balance) < . >);

Перед получение баланса я обрабатываю и перекидываю на главную, если вместо существующего кошелька ввели какой-нибудь крези код:
if (err || !acc) < if (err) < console.log(err); >return res.redirect(‘/’); >

Теперь займемся транзакциями. Все точно так же, только метод меняется на listtransactions, стоит заметить, что данный метод вернет лишь 10 последних транзакций, для большего числа, просто укажите 2-ым аргументом количество.
client.cmd(‘listtransactions’, acc, function (err, transactions) < . >);

Ну и осталось самое интересное, вывод денег 🙂
Стоит сказать, чтоб перевести деньги, есть два варианта.
— move (fromaccount) (toaccount) (amount) — переводит деньги между вашими аккаунтами.
— sendfrom (fromaccount) (tobitcoinaddress) (amount) — переводит с вашего аккаунта на указанный адрес.

Мы будем использовать sendfrom, дабы получить уже полноценный онлайн кошелек. Собственно код отправки выглядит так:
client.cmd(‘sendfrom’, acc, addr, amount, function (err, tid) <… >);

В ответ мы получим ID транзакции, если все прошло хорошо. Я обычно на всякий случай проверяю, есть ли возможность сделать перевод (просто сравниваю балансы) и т.п., что и вам советую.

Источник

Оцените статью