Это доказательство концепции построен прочь работы в незавершенном libbitcoin.
Subvertx представляет собой набор из 4 инструментов:
- голосующий, загружает blockchain из bitcoind в базу данных PostgreSQL.
- баланс, запрашивает базу данных PostgreSQL, загруженные с Poller найти баланс адреса Bitcoin.
- собств, создать новый секретный ключ, подписи данных, проверки данных или показать Bitcoin адрес этого ключа.
- mktx, подключается к bitcoind и посылает деньги с выхода на новый адрес. Вы можете использовать это в сочетании с сайтом, как blockexplorer.com в качестве инструмента для выполнения операций очень просто. Или даже сделать автономные транзакции или использовать его как супер легкий клиент, который может работать на встроенных устройствах.
- txrad, как веб-сайт http://www.transactionradar.com/. Он подключается к 100 случайных узлов, а затем следит за сообщениями транзакций. Просто запустите txrad.
Показать помощь:
Код:
genjix @ случайно: ~ / subvertx $ собств
Использование: собств [COMMAND] [ARGS] ...
В Priv команды:
новый Сформировать новый секретный ключ и вывод на STDOUT
знак Подписать следующий аргумент с помощью секретного ключа в STDIN
проверить Проверьте следующий параметр с помощью закрытого ключа в STDIN
адрес показать соответствующий Bitcoin адрес
genjix @ случайно: ~ / subvertx $ mktx
Использование: mktx COMMAND [ARGS] ...
Команды:
создать Создать новую транзакцию и вывод двоичных данных
отправить отправить сделку по сети, чтение из STDIN
Опции:
-р, --previous-выход Предыдущий выход в виде NAME @ OUT: INDEX
-к, --keypair Загрузка ключей с идентификатором ИМЯ ФАЙЛА @
Одна черта - для FILE загрузит из STDIN
-г, --recipient указать адрес получателя: СУММА
СУММА использует внутренние значения Bitcoin
0,1 BTC = 0,1 * 10 ^ 8 = 1000000
-Н, --host Ведущий Bitcoin узла
-P, --port Порт для Bitcoin узла
-ч, --help Этот текст справки
Пожалуйста, напишите предложения и вопросы,
Создайте новый секретный ключ, подписать и проверить хэш транзакции:
Код:
genjix @ случайно: ~ / subvertx $ собств новый > / TMP / private_key
genjix @ случайно: ~ / subvertx $ собств знак f5cffc95a4a83c23cb9f666c7cf552f27d9845778bb09a98d5169c461483ba41 < / TMP / private_key > signed_data
genjix @ случайно: ~ / subvertx $ собств проверить f5cffc95a4a83c23cb9f666c7cf552f27d9845778bb09a98d5169c461483ba41 "`Кот signed_data`" < / TMP / private_key
1
Покажите свой адрес Bitcoin:
Код:
genjix @ случайно: ~ / subvertx $ собств адрес < / TMP / private_key
14DDgj2r8WQEwfTDEjJFBn3wRnHmXzgB3z
Отправить биткойнов (оффлайн & мухи сделки возможно)
Это делается в 2 этапа: создание сделки, то обжигающе это послать сделку где-нибудь. Трубы позволяют сделать действительно умные вещи, как отправить на несколько узлов, отправить его на общий файловый сетевой буфер для отправки позже (как на флешку с другой машиной, которая не имеет закрытого ключа).
Код:
$ mktx
Использование: mktx COMMAND [ARGS] ...
Команды:
создать Создать новую транзакцию и вывод двоичных данных
отправить отправить сделку по сети, чтение из STDIN
Опции:
-р, --previous-выход Предыдущий выход в виде NAME @ OUT: INDEX
-к, --keypair Загрузка ключей с идентификатором ИМЯ ФАЙЛА @
Одна черта - для FILE загрузит из STDIN
-г, --recipient указать адрес получателя: СУММА
СУММА использует внутренние значения Bitcoin
0,1 BTC = 0,1 * 10 ^ 8 = 1000000
-Н, --host Ведущий Bitcoin узла
-P, --port Порт для Bitcoin узла
-ч, --help Этот текст справки
Пожалуйста, напишите предложения и вопросы,
Есть 2 команды там. «Создать» на самом деле создает транзакцию, а затем сбрасывает свой бинарный формат сети в STDOUT. «Отправить» читает из STDIN и посылает его в сеть. По умолчанию он отправляет на локальный: 8333, но вы можете изменить его с помощью --host и --port варианты.
Транзакция состоит из входов. Вы можете использовать blockexplorer искать их. Вот несколько примеров.
1. Мы хотим послать от сделки c524c555aad1932c24c26ec20439a9caefc49f7c0df6d6bccced890ef980b45c«С 0-й выход (который был направлен в адрес мы собственный) 2 адресам: 0.02 BTC до 12oabCifvHuxzXtYVGhkxVfWZDvKcU743s и 0,58 BTC до 14DDgj2r8WQEwfTDEjJFBn3wRnHmXzgB3z
Существует 1 предыдущий выход:
00535291532821f2e4879cf670f61396be32b9579400ae1119497f36f268eb40: 1
Есть 2 получатели:
12oabCifvHuxzXtYVGhkxVfWZDvKcU743s: 2000000
14DDgj2r8WQEwfTDEjJFBn3wRnHmXzgB3z: 58000000
Обратите внимание, что мы используем внутреннюю BTC сумму (десятичное значение * 10 ^ 8 - см текста справки).
Теперь, чтобы провести этот вывод, он должен быть отправлен на адрес, который вы владеете, надеюсь, генерируется с помощью инструмента Priv ранее
Код:
$ Mktx создать -p собств @ c524c555aad1932c24c26ec20439a9caefc49f7c0df6d6bccced890ef980b45c: 0 -k Priv @ ключи / privkey -r 12oabCifvHuxzXtYVGhkxVfWZDvKcU743s: 2000000 -r 14DDgj2r8WQEwfTDEjJFBn3wRnHmXzgB3z: 58000000
... смешно двоичный выход здесь ...
Если мы хотим сохранить этот вывод мы можем использовать перенаправление > чтобы сохранить его. Может хранить его на USB и перенесите его на другой компьютер. Или мы можем по конвейеру прямо в команду отправки.
Код:
$ Mktx создать -p собств @ c524c555aad1932c24c26ec20439a9caefc49f7c0df6d6bccced890ef980b45c: 0 -k Priv @ ключи / privkey -r 12oabCifvHuxzXtYVGhkxVfWZDvKcU743s: 2000000 -r 14DDgj2r8WQEwfTDEjJFBn3wRnHmXzgB3z: 58000000 | mktx отправить
1 коллеги подключены.
s: версия (85 байт)
Г: версия (85 байт)
s: verack (0 байт)
г: verack (0 байт)
Связанный
s: ТХ (258 байт)
с5 3e а3 b4, d4 4c ср 67 31 73 17 б2 шд 8d 0a 99 46 D8 2d 67 6c 02 d0 d1 13 2b 11 8f 95 d0 7f 57
Хэш в конце концов, это ваша транзакция хэш. Если вы делаете: хвост -f .bitcoin / debug.log, или посмотреть его на bitcoincharts.com/bitcoin вы увидите, что хэш без пробелов (т.е. CTRL-F для c53ea3, чтобы увидеть вашу сделку).
Если вы заметили, я загрузил несколько закрытых ключей там, используя -k (или --keypair) KeyPair-NAME @ FILENAME. Затем можно обращаться к которой принадлежит паре ключей к какому входу этого пути.
2. Отправка из три, другой выходы к 14DDgj2r8WQEwfTDEjJFBn3wRnHmXzgB3z.
Предыдущие результаты:
00535291532821f2e4879cf670f61396be32b9579400ae1119497f36f268eb40: 1
637f001eb4cbe165946c02a56bcb73822610f5886516169f98da6252266b7d8a: 1
85b423b9c8c5c5277575b87d94dbcd4f87c1be578756eff6a9fde8b7d55749fb: 1
Все выходы (в данном случае) использовать другой закрытый ключ: ./keys/foo, ./keys/bar и ./keys/abc.
Мы можем загрузить ключи и назовите их (чтобы иметь возможность ссылаться на них) с помощью:
-K @ Foo ключи / Foo
-к бару @ ключи / бар
-к а @ ключи / а
А затем указать mktx какого ключ принадлежит с какими входами сверху:
Foo @ 00535291532821f2e4879cf670f61396be32b9579400ae1119497f36f268eb40: 1
бар @ 637f001eb4cbe165946c02a56bcb73822610f5886516169f98da6252266b7d8a: 1
абв @ 85b423b9c8c5c5277575b87d94dbcd4f87c1be578756eff6a9fde8b7d55749fb: 1
1 получатель:
14DDgj2r8WQEwfTDEjJFBn3wRnHmXzgB3z: 60000000
Код:
$ Mktx создать -p Foo @ 00535291532821f2e4879cf670f61396be32b9579400ae1119497f36f268eb40: 1 -p бара @ 637f001eb4cbe165946c02a56bcb73822610f5886516169f98da6252266b7d8a: 1 -p а @ 85b423b9c8c5c5277575b87d94dbcd4f87c1be578756eff6a9fde8b7d55749fb: 1 -k Foo @ ключей / Foo -k бара @ ключи / бар -k а @ ключи / а -r 14DDgj2r8WQEwfTDEjJFBn3wRnHmXzgB3z: 60000000 | mktx отправить
1 коллеги подключены.
s: версия (85 байт)
Г: версия (85 байт)
s: verack (0 байт)
г: verack (0 байт)
Связанный
s: ТХ (581 байт)
с5 24 с5 55 аа d1 93 2c 24 с2 с2 6e 04 39 а9 ча эф с4 9f 7с 0D d6 F6 до н.э. куб.см ред 89 0e f9 80 b4 5с
голосующий
Для того, чтобы использовать Poller сначала необходимо импортировать схему, которую можно найти в /usr/share/libbitcoin/bitcoin.sql (предварительно загруженный blockchain является Вот).
Код:
# Сделать все вещи Postgres, чтобы сделать новую базу данных
$ Судо су Postgres
# CreateUser genjix
...
# PSQL
> CREATE DATABASE Bitcoin;
> уволиться
# Выход
$ PSQL Bitcoin < /usr/share/libbitcoin/bitcoin.sql
# Это хорошая идея, чтобы запустить это в экране
$ Экран -S Poller
$ Голосующий Bitcoin genjix psqlpassword локальный
... начинает загрузку blockchain в PostgreSQL
# Теперь закрыть терминал. Вы можете повторно открыть терминал с экраном -x Poller
Poller делает полную проверку blockchain. Это займет много времени, так как это база данных SQL, и это проверка всех блоков.
Баланс необходим полный blockchain иначе вы не могли бы получить уточненный баланс отчитался. Это довольно простая в использовании:
Код:
$ Баланс PostgreSQL: база данных: имя пользователя: пароль 1jkjsjkdskjb2kkjbkjdsk
пакеты Ubuntu
PPA можно посмотреть на Launchpad.
Добавьте эти 2 строки в конец вашего /etc/apt/sources.list
Код:
Деб http://ppa.launchpad.net/genjix/libbitcoin/ubuntu Грез магистраль
Deb-SRC http://ppa.launchpad.net/genjix/libbitcoin/ubuntu Oneiric Главный
Код:
$ Wget -q "http://keyserver.ubuntu.com:11371/pks/lookup?op=get&поиск = 0x3D1978972EC26E7B" -O- | Sudo APT-ключ добавить -
$ Суды обновление APT-получить
$ Sudo APT-получить установку subvertx
Это PPA также имеет пакет для libbitcoin-разработчика, хотя API не документирован в данный момент.
Gentoo Ебилд
Камиль Domański сделал папуасские Ebuild.
Код:
мирянин -a Bitcoin
всплывать subvertx
Инструкции по установке Источник
Исходный код для убогих, не Ubuntu:
https://gitorious.org/libbitcoin/libbitcoin
https://gitorious.org/libbitcoin/subvertx
Тебе понадобится:
- г ++ 4.6
- cppdb
- увеличение
- libpq-DEV
- PostgreSQL
Построить cppdb, используя инструкции на их сайте.
$ СВН со http://cppcms.svn.sourceforge.net/svnroot/cppcms/cppdb/trunk cppdb-ствол
$ Кд cppdb-ствол
$ MkDir сборки
$ Кд сборки
Вы можете использовать -DCMAKE_INSTALL_PREFIX, если вы хотите установить в нестандартном месте, например, локальный каталог.
$ CMake -DCMAKE_INSTALL_PREFIX = / TMP / cppdb / .. -DPQ_BACKEND_INTERNAL = 1
$ делают
# Сделать установку
Клон репо и строить.
$ Мерзавец клон мерзавец: //gitorious.org/libbitcoin/libbitcoin.git
$ Кд libbitcoin
$ AUTORECONF -i
$ ./configure
$ делают
# Сделать установку
Не забудьте инициализировать и создать базу данных (см первый пост выше для более подробной информации, как).
$ PSQL Bitcoin < bitcoin.sql
То же самое для subvertx люкс
$ Мерзавец клон мерзавец: //gitorious.org/libbitcoin/subvertx.git
$ Кд subvertx
$ AUTORECONF -i
$ ./configure
$ делают
# Сделать установку
Я не могу подчеркнуть достаточно для людей, чтобы использовать это на свой страх и риск, как это альфа-версия.
Спасибо идет к,
Камил Domański (kdomanski)
Ян Энгельгардт (SE7) <jengelh@medozas.de>
Патрик Strateman (phantomcircuit)
Denis Roio (Яромил)
Амир Таки (genjix) <genjix@riseup.net>