код инвойса lightning где взять
Как работает Lightning Network и в чем преимущества протокола
Lightning Network — это сеть вне цепи, которая дает биткоину новые преимущества. Сеть Lightning запущена и набирает обороты с начала 2018 года, а разработка велась с 2016 компанией Blockstream.
Читайте в статье
Транзакция вне цепи — любая транзакция биткоина, которая не использует
основную сеть и, таким образом, не платит комиссию за транзакции майнерам. Покупка и продажа на биржах, например, происходит вне блокчейна. Однако вывод с биржи на биткоин-адрес происходит уже в блокчейне.
Все транзакции, которые происходят в сети Lightning, будут оффчейн-транзакциями, транзакциями вне цепи.
Как работает Lightning Network
У молниеносных транзакций есть три составляющие:
Вход в сеть Lightning осуществляется через открытие платежного канала. Для этого требуется транзакция в блокчейне (тот, в который всегда записываются транзакции). Канал оплаты позволяет отправлять биткоины между двумя сторонами (это не новая разработка). Говоря еще проще, представьте, что вы пользуетесь Яндекс.Деньгами или Paypal. Вы можете отправить деньги на другой аккаунт внутри системы быстро и без комиссий. Ограничение только в том, сколько денег у вас на счету. Чтобы войти или выйти в платежный сервис, тоже нужно совершить банковскую транзакцию (со своей карты или банкомата вносите деньги на аккаунт). Аналогично, для Lightning — чтобы открыть или закрыть платежный канал, нужно выполнить транзакцию биткоинов.
Хэш-контракты временной блокировки (HTLC) — это смарт-контракты, которые гарантируют, что получателю переведут средства при выполнении некоторых криптографических условий. Это делается для безопасности.
Сеть Lightning использует серию HTLC с одним и тем же секретным хэшем. Этот процесс можно повторять столько раз, сколько необходимо.
Ниже шаг за шагом отражается, как HTLC работает с четырьмя сторонами: A (покупатель), B, C (пиры между сторонами) и D (торговец):
Простыми словами, пиры передают деньги последовательно, от А к D. Посредники получают небольшое вознаграждение.
Если все участники связаны, эти транзакции происходят за пределами блокчейна биткоина. В идеале, программное обеспечение пользователей будет отслеживать каждый шаг автоматически. Все получают деньги автоматически. Сеть Lightning является почти атомной по своей природе, а это означает, что либо каждый получает деньги, либо никто не получает деньги.
В Lightning Network используется токен?
В отличие от RSK, Lightning Network использует реальные биткоины и смарт-контракты, чтобы участники могли собирать множество транзакций в одну, окончательную, которая и отправится в блокчейн. Lightning — это протокол «второго уровня», который работает поверх сети Bitcoin.
Пример: A и B часто обедают вместе. A и B по очереди платят за обед долларами. Тот, кто не платит за обед, возвращает долг в биткоинах. За несколько недель они осуществили много переводов друг другу. Lightning позволяет не платить транзакционные сборы каждую неделю. Вместо этого A и B оплачивают сбор только за свой первый и последний обед — открывают и закрывают канал, а транзакции между копятся, чтобы затем сразу общей транзакцией попасть в сеть.
Обычная биткоин-транзакция транслируется во все фулноды в мире. Майнеры берут эти транзакции и соединяют их в блоки. Каждая транзакция записывается в блокчейн. А транзакции Lightning не транслируются на каждую ноду. Вместо этого ноды лайтининг сохраняют транзакции секретными (не записывают на блокчейн), за исключением трех случаев:
Это анонимно?
Сеть Lightning будет, вероятно, иметь первоклассную конфиденциальность.
Это более анонимно, чем стандартные биткоин-транзакции.
Преимущества Lightning
Сеть будет платить пользователям за обеспечение ликвидности. Это будет как банковский счет, который выплачивает проценты по депозиту.
Вы можете зарабатывать деньги, запустив Lightning Node! Некоторые люди предсказывают, что прибыль будет высокой, пока Lightning Network находится в зачаточном состоянии. Обратите внимание, что прибыль операторов равна комиссионным вознаграждениям за использование сети Lightning.
Чтобы использовать сеть, вы должны забирать серию «микрозаймов» от каждого «хопа» (промежуточного пира, через которого проходят платежи). Чем больше связей и ликвидности в сети Lightning, тем меньше требуется хопов.
Стоимость транзакции Lightning — это функция нескольких переменных:
Чтобы использовать Lightning Network, нужно загрузите кошелек Lightning. В январе 2018 года большинство действий проводится на Testnet (копии основной сети биткоина, которая используется для тестирования новых разработок и кода).
Через какое-то время все больше и больше кошельков будут интегрировать Lightning. Даже кошельки, которые вы используете сейчас, должны в конечном счете реализовать технологию.
Пока есть проект «Zap» — это название кошелька Lightning, который почти готов для использования в сети. Его код на Github.
Такая транзакция всегда будет значительно дешевле, чем обычная биткоин-транзакция. Некоторые Lightning-транзакции имеют даже отрицательные сборы, платят за использование новой технологии!
Вознаграждение не выплачивается майнерам. Вместо этого плата уходит другим пользователям в сети Lightning, которые временно дают свои средства в заем, как микрокредит на несколько дней. Гонорары устанавливаются пользователями сети. Программное обеспечение будет автоматически искать самый дешевый маршрут через сеть Lightning. Если маршрута не существует, программное обеспечение создаст маршрут, открыв новый платежный канал (который требует платы за транзакцию в блокчейн биткоина).
Чем больше биткоинов в Lightning Network, тем ниже будет плата (поскольку реже придется открывать платежный канал). Фактически, самыми большими расходами сети Lightning являются транзакционные сборы за вход и выход из сети.
Биржи, скорее всего, будут централизованными операторами Lightning Node. Также ПО позволит выбирать настраиваемые маршруты через сеть. Это позволит пользователям выбирать больше приватных маршрутов и частные ноды, которые могут быть дороже.
Наименьшая часть биткоина — сатоши (0,00000001 BTC). Сеть Lightning позволяет осуществлять платежи даже меньше, чем сатоши. Микроплатежи в перспективе позволят платить за видео в секунду, новость на сайте, работу в минуту и т. д.
Lightning Network позволит людям совершать транзакции за один раз.
Существует компромисс между децентрализацией и пропускной способностью (количеством транзакций, которые обрабатываются на блокчейне).
Как правило, блокчейну трудно масштабироваться, то есть увеличивать обработку данных о пользователях и транзакциях. Дебаты об этом идут уже много лет, и многие согласны, что в настоящее время Lightning — одно из оптимальных решений.
Надстройки сети, такие как Lightning Network, позволяют пользоваться безопасностью децентрализованного блокчейна без необходимости увеличивать размер блока.
Как и в любой экспериментальной технологии, только время покажет все
уязвимости. В настоящий момент сеть теоретически безопасна в использовании.
Белая бумага Lightning Network содержит прочную теоретическую основу. Иногда, однако, в коде находятся ошибки.
Но все равно, храните небольшие суммы в платежном канале. Если вы запускаете ноду, лучше разместить несколько разных каналов с небольшим количеством биткоинов. Дело в том, что за ошибки ПО и попытку опубликовать старую транзакцию, подозрение в мошенничестве сеть забирает всю сумму в качестве штрафа.
Кошельки Lightning для биткоина
Lightning Wallet
Это приложение имеет автономный кошелек SPV Bitcoin с полностью функциональным встроенным узлом Lightning. Он позволяет отправлять и получать регулярные транзакции в сети, а также оффчейн-платежи.
Lightning Wallet — полностью автономное приложение, то есть ключи не передаются на сервер, а хранятся на устройстве.
Это первый кошелек Lightning, который предлагает защиту от потери данных вне сети: в случае чрезвычайных ситуаций, таких как потеря телефона, вам понадобится только мнемоническая фраза, чтобы восстановить как биткоин-баланс, так и баланс на цепи Lightning.
Обязательно сохраните мнемоническую фразу, когда создаете новый кошелек.
После создания кошелька на блокчейне можно открывать каналы оплаты вне сети и использовать их для отправки платежей через сеть Lightning.
При принудительном закрытии платежного канала (без разрешения другой стороны) баланс вернется на кошелек через 144 блока (примерно сутки).
Также через кошелек можно получать комиссии за обработку транзакций.
Официальный сайт: http://lightning-wallet.com/
Кошелек Zap
Zap — бесплатный кошелек Lightning Network, с понятным и удобным интерфейсом на Electron + React + Redux. Разрабатывался при консультациях с Lightning Labs. Автор кошелька распространяет его с открытым исходным кодом.
Сегодня доступен для macOS, Windows и Linux. В разработке приложение для мобильных.
Через Zap можно подключаться к пирам, открывать каналы, проводить платежи. Инструкция от создателя на видео:
Официальный сайт: https://zap.jackmallers.com/
Eclair Wallet
Eclair Wallet создан специально для поддержки Lightning. Он может использоваться как обычный кошелек для хранения биткоинов и подключаться к сети Lightning для дешевых и мгновенных платежей.
Это программное обеспечение основано на eclair и соответствует стандарту Lightning Network.
Доступен на Google Play только для Android-устройств. Доступны только исходящие каналы: вы можете оплачивать LN, но не можете получать или пересылать платежи. Для полного функционала LN нужна полная нода — Eclair Node.
Официальный сайт: https://acinq.co/
HTLC.me
Это сайт, фактически не является кошельком, хотя иногда продвигается под таким названием.
При использовании этого сайта вы обращаетесь на горячий кошелек создателей, то есть они имеют доступ ко всем средствам. Правда, при переходе используются BTC из тестнета (недействительные на бирже или при покупках).
Через интерфейс приложения можно создать свой «узел» и «магазин».
Как установить, настроить ноду Lightning Network и начать зарабатывать на этом
Сеть Lightning Network (LN) на данный момент – это самое перспективное решение для масштабирования в сети биткоина. Сторонники LN говорят, что скорость сети биткоинов может вырасти с нынешних семи транзакций в секунду (TPS) до нескольких миллионов.
Это астрономическая масштабируемость в наше время, и, возможно, криптоиндустрии потребуются ещё десятилетия, чтобы достичь такой пропускной способности. Однако создать и настроить собственную ноду (узел) Lightning Network каждый может уже сегодня.
Ранее мы представляли вашему вниманию подробное объяснение того, как работает сеть Lightning Network, а в этой статье вы увидите пошаговое руководство по установке и развертыванию собственной ноды Lightning Network.
Для чего нужна нода Lightning Network
Вот для чего вам стоит создать и настроить собственный узел Lightning Network:
Как установить и настроить ноду Lightning Network
Есть несколько реализаций Lightning Network, однако это руководство будет охватывать только Eclair как наиболее удобную и понятную для пользователя.
Скачать и настроить блокчейн биткоина: Прежде всего, вам следует скачать Bitcoin Core (это кошелёк биткоина и его блокчейн) и запустить его.
Блокчейн биткоина занимает более 200 ГБ, и у вас должно быть достаточно места на жёстком диске для его размещения. Пока загружается блокчейн, можно отредактировать файла конфигурации, внеся в него требуемые настройки.
Откройте файл bitcoin.conf в приложении – выберите Settings →Options → Open Configuration File. (Альтернатива – переход в вашей файловой системе по пути C: \ Users \ [user] \ AppData \ Roaming \ Bitcoin).
rpcuser=username [имя пользователя]
Скачать и настроить Eclair. Вы должны скачать реализацию ноды LN под названием Eclair. Далее откройте файл clair.conf в директории C: \ Users \ [user] \ eclair. Обязательно нужно нажать «Просмотр скрытых файлов» в настройках «Проводника» вашего компьютера на вкладке «Просмотр». Введите в файле clair.conf следующие строки:
eclair.bitcoind.rpcuser=username [имя пользователя]
Это подключит Eclair к основной сети Bitcoin Core. «Имя пользователя» и «пароль» точно должны соответствовать тому, что было введено в файле bitcoin.conf.
Eclair и Bitcoin Core должны работать одновременно. Если всё работает нормально, то нода Eclair должна открываться в виде интерфейса, а не сообщения об ошибке. В нижнем ряду вы увидите ваш личный публичный ключ LN. В правом нижнем углу вы можете подтвердить своё подключение к сети.
Открытие канала
Наконец, пришло время открыть каналы и начать отправку / получение транзакций Lightning Network. Вы можете воспользоваться специальным поисковиком для LN – сайтом 1ml.com, который позволяет найти требуемые ноды, изучить важную статистику и даже предоставить снимок сети.
Когда вы найдёте ноду, с которой хотите быть связаны, нажмите Channels →Open Channel, затем скопируйте адрес ноды и вставьте его в Target Node URI. Ваша Capacity (пропускная способность) не может превышать доступный баланс вашего биткоин-кошелька.
Fee rate – это комиссия вашей ноды, которую устанавливаете вы сами, чтобы разрешить тот или иной платёж через ваш узел. Комиссия должна быть справедливой. Не ставьте слишком высокую комиссию, иначе никто не захочет совершать платежи через ваш узел. Вы также можете использовать стандартную ставку, которую рекомендует ПО Eclair.
Если вы хотите, чтобы другие пользователи сети нашли ваш узел, нужно поставить галочку в строке Public Channel.
Нажмите Connect, чтобы создать свой первый платёжный канал. В разделе State будет указано WAITING_FOR_FUNDING _CONFIRMED – до тех пор, пока транзакция не будет полностью подтверждена в блокчейне; после этого надпись переключится на NORMAL.
Ваш узел может отправлять и получать платежи только в Lightning Network. Поэтому вам нужно отправить платёж себе с другого кошелька Lightning Network или попросить друга сделать платёж из его кошелька, чтобы вы могли открыть канал приёма. Когда вы проделаете это, вы сможете легко отправлять и получать платежи Lightning Network.
Хотя система LN позволяет вам получать мгновенные платежи с небольшими комиссиями, она всё ещё находится на стадии бета-тестирования (сеть разработана не полностью). Не храните свои инвестиционные средства в кошельках Lightning Network; а главное – не отправляйте крупные платежи в этой сети. Всегда существует небольшая вероятность того, что вы можете потерять свои средства. В любом случае, следует проявлять осторожность при обращении со своими денежными средствами.
Однако, вероятно, вы можете найти сотни интернет-магазинов, которые принимают платежи LN, и покупки в них также могут принести вам практическую пользу.
Процесс настройки Lightning Network кажется немного трудным, но это дело в итоге может оказаться весьма полезным для вас, учитывая низкие комиссии и мгновенные транзакции этой биткоин-сети.
Как запустить микро-платежи в своем приложении
Прошлую неделю я провёл разрабатывая свою первую публичную программку — Telegram-бота который работает в качестве Bitcoin-кошелька и позволяет «бросать монетки» другим участникам групповых чатов а так же совершать внешние Bitcoin-платежи себе или другим т.н. “Lightning Apps”. Подразумеваю, что в целом читатель знаком c Bitcoin и Telegram, т.к. буду стараться писать кратко, не вникая в детали. Выборка ресурсов о Bitcoin доступна по этой ссылке, ну а Телеграм это средство мгновенного обмена сообщениями на мобильных устройства и пк, позволяющее на их платформе создавать свои небольшие приложения (чат-ботов).
Какие ключевые функции этого приложения?
И как это применить в деле?
Может возникнуть вопрос, как пользоваться таким приложением если биткойнов нет. Их легко можно приобрести в небольшом количестве на одной из многих бирж или обменнике, а можно у друга-биткойнера или даже получить монеток от текущих пользователей бота. Многие кошельки на телефон предлагают купить биткойны прямо «не отходя от кассы».
Когда разжились биткойнами (а скорее сатош-ами(?)) — запускаем @atomic_tipbot и делаем /deposit.
Бот в ответ спросит сколько сатоши внести на баланс и пришлет к оплате счёт, который можно оплатить мобильным кошельком отсканировав QR-код или нажав кнопку («открыть в кошельке») на странице инвойса.
Подтвердив платёж на своем кошельке, практически сразу подтверждение об оплате вышлет бот и это будет визуально отображено во фрейме счёта.
До этого момента мы затронули две компоненты приложения — back-end telegram-бота и систему процессинга платежей криптовалютой (скорее ее front-end).
Для создания Telegram-бота я использовал Python Telegram Bot. Ну и конечно, сам бот с открытым исходным кодом.
В качестве системы процессинга платежей и решения UX-задач выбор пал (на самом деле, выбора почти нет) на BTCPayServer, на который документация по этой ссылке.
Если искать решения обработки событий платежей напрямую, то стоит обратить внимание на Electrum CLI manual pages для т.н. on-chain платажей, а для мгновенных микро-платежей (Lightning) решения вроде Lightning-charge или Sparko.
Так оно self-hosted или нет!?
500GB доступные на ЖД для хранения блокчейнов Bitcoin (и Litecoin). Так же потребуются вычислительные и сетевые ресурсы на время синхронизации и в зависимости от ваших нужд необходимые «обёртки» для блокчейнов, что бы было с ними удобно взаимодействовать. BTCPayServer не содержит by-design приватных ключей или любой другой информации, позволяющей контролировать ваш кошелек.
Для on-chain (обычных) платежей необходимо добавить т.н. xpub-ключ кошелька в BTCPayServer для генерации адресов на получение (публичных ключей). Это делает возможным и безопасным использовать BTCPayServer даже в «расшареном» виде. Все эти xpub-ключи и адреса можно легко получить в хороших кошельках вроде Electrum, для дальнейшей настройки процессинга.
Все кто сталкивался с Bitcoin слышали про то, что биткойн медленный и тразакции дорогие, особенно когда хайп, поэтому для мгновенных микро-платежей стоит использовать (off-chain) транзакции Lightning Network.
Что это за Lightning Network?
Это что-то вроде плагина к биткойну, который надстраивает дополнительный слой абстракции и позволяет совершать мгновенные и практически бесплатные транзакции в сети Bitcoin. Всё это возможно благодаря криптографической магии с мульти-подписями, чаще называемой смарт-контракт. Есть несколько реализаций протокола Lightning Network, я использую c-lightning реализацию на C.
Основное различие между on-chain и off-chain (Lightning) платежами в том, как они хранятся. Все on-chain транзакции ретранслируются по всем узлам сети, пока одна из нод биткойна нод не анонсирует новый намайненый блок с включенными в него транзакциями. (На хабре даже есть BitFury, они как раз производят железо для майнинга). Именно по этой причине мы называем такие транзакции on-chain. Такие транзакции буду записаны в общий блокчейн и сохранятся в нём до конца его существования. Так же такие транзакции находятся в общем доступе и их возможно мониторить, отслеживать и анализировать.
В случае off-chain (Lightning) транзакций все происходит иначе. Каждая нода Lightning-сети имее один (или более) on-chain адресов — это те самые обычные адреса биткойна, с которых все и начинается. Когда появляются биткойны на таком адресе возможно открыть т.н. lightning канал к другой ноде, что значит, что при помощи криптографических техник эти две ноды договорились о доступности средств между собой. Позже, все транзакции (как свои, так и транзакции посторонних нод) что проходят через такой канал сохраняются только на нодах участников транзакции (и нодах-посредниках). Единственные транзакции, которые записываются в блокчейн — это транзакции об открытии или закрытии канала. В более полном масштабе получается такая сеть взаимо-подключенных нод которая строит между участниками тысячи различных путей для «переливания» средств из одной ноды в другую по определенным жестким правилам. Практически все такие транзакции хранятся только в файле БД самих нод. Именно по этой причине мы их называем off-chain.
На диаграме видна визуализация всех компонент приложения
1) Пользователь отправляет комунду боту в Telegram
2) Telegram отправляет сообщение о событии python приложению бота
3) python-приложение отправляет запрос на BTCPayServer
4) BTCPayServer генерирует входящие адреса BTC и LTC, а так же отправляет запрос на инвойс к lightning-charge, который в свою очередь общается с демоном c-lightning. На выходе мы получаем красивую HTML-форму обработки платежа
5) Пользователь оплачивает инвойс и видит подтверждение
6) BTCPayServer отправляет уведомление оплаты инвойса (IPN) на указанный callback_url, в нашем случае callbacks.py (еще одно python приложении для получения уведомлений)
7) Согласно полученным данным баланс пользователя изменяется
… и если пользователь захотел вывести средства (монетки что получил от других) …
8) Python-приложение бота ждет текста или картинки QR-кода, и когда валидные данные получены то совершается платёж утилитойpaylightning.py*, которая инициализирует транзакцию посредством c-lightning RPC.
*Справедливости ради, стоит отметить что моя обертка paylightning.py не совсем закончена и может вернуть ложно-отрицательный результат в специфических сценариях. Рекомендую к использованию хорошо отлаженную обертку в случаях приближенных к продакшену
Что мы имеем? Пользователи нашего бота могут внутри группового чата или напрямую могут передавать материальную ценность без ограничений. И это еще не все — благодаря протоколу Lightning Network, который в некотором смысле является унифицированной и упрощенной платежной сетью, появляется возможность отправлять те же деньги что получены в чате совершенно сторонним приложениям. Например, в Telegram уже был первый бот для биткойн-платежей — @lntxbot. «Единый баланс» позволяет использовать любого из ботов в зависимости от предпочтений конкретного группового чата (да, проблема абсолютно надуманна и решение весьма бесполезно, но дело в сути). Перекинуть баланс с одного бота на другой ничего не стоит и занимает секунды! Важно заметить, что создатели этих ботов вообще никогда не связывались между собой.
Достаточно просто переправить сообщение с запросом на депозит от @lntxbot к @atomic_tipbot и voul’a!
Это уже не просто «перебрасывание чисел в БД» а платёж между двумя разными, не связанными между собой БД. Таким образом в бот интегрировано уже несколько «LApps», среди них: sat2.io и lnsms.world.
Что значит интеграция LApp?
Каждая Lightning Network нода это по своей сути биткойн-кошелек. У нее два баланса: on-chain и off-chain. On-chain баланс необходим для открытия новых каналов и хранения средств с закрытых каналов. А вот off-chain баланс как раз то, что ходит между нодами. Основные требования к ноде это получение и отправка платежей, поэтому каждая нода как ПО имеет функции pay и invoice. Я продемонстрирую как это происходит:
Мы получаем «инвойс» спецификации BOLT11 в этом случае, которая является форматом платёжек в сети Bitcoin (и Litecoin, к слову, тоже). Это строка, содержащая в себе информацию о получателе, сумме транзакции, время истечения запроса итп., подробную информацию можно получить запустив decodepay в отношении данной строки:
А вот для оплаты такого «инвойса» нам необходима функция pay от c-lightning:
Все состояния транзакций обрабатывает вся сеть и ваша собственная нода в частности. Нет необходимости (но есть такая возможность) взаимодействовать с авторами приложения-получателя платежа или каким либо их API для получения информации о состоянии платежа. Нет нужды проверять состояние платежа в системе процессинга-посредника. Не нужно ожидать одобрения вашей транзакции со стороны банка или государственного учреждения. В конце концов тут нет чардж-бэков и других внешних факторов, которые могут повлиять на остаток на вашем счету. Это решение для перемещения ценности посредством сети Интернет, без необходимости стороннего арбитра, который решает соответсвует транзакция правилам (порой даже внутренним правилам, о которых не все участники проинформированы заранее) или нет. В биткойне нет «внутренних правил». Единственные правила которым нужно следовать это правила сети — открытые и всем известные.
Это делает реальными прямые, практически бесплатные и мгновенные денежные транзакции между людьми или программами в полностью автономном режиме.
Если у вас есть возможность получить данные оплаты от стороннего приложения, то появляется возможность взаимодействовать в финансовом смысле с этим приложением. В качестве примера можно рассмотреть сервис lnsms.world, который позволяет отправить SMS-сообщение на произвольный номер, оплатив его биткойнами. Для интеграции этого приложения нам нужно всего лишь передать данные из веб-формы напрямую скрипту отправки смс — эмулировать действия пользователя на веб-сайте:
Не знаю по какой причине, но lnsms отвечает 201 HTTP status-кодом и возвращает инвойс формата BOLT11. Что ж, этого достаточно что бы пользователи бота могли произвести оплату за отправку смс со своего баланса, полученного в чатиках. Пользователь даже не знает что там происходит, он просто заплатил пару центов за отправку смс. И я, как разработчки не вдаюсь в подробности работы смс-сервисов. Просто переправил платеж и получил услугу. Можно сверху наценку сделать, а можно и не делать — это мой свободный выбор. Никаких аккаунтов, соглашений и очередного API для пустяковых задач вроде отправки смс.
А теперь давайте на момент представим, что наше приложении является чем-то более полезным чем чат-бот и совершает платеж не другому боту, а другому приложению или устройству, подключенному к Интернет. Или же это десятки или даже сотни ничтожных платежей каждую секунду между устройствами, сервисами, магазинами или какими то поставщиками услуг. Это и есть мощь микро-платежей, так должен выглядеть Интернет вещей. Уже существуют проекты вроде Althea которые воплащают эти идеи в жизнь и в скором будущем мы увидим большие, на мой взгляд, перемены в области, которую мы сейчас называет электронная коммерция.
Если Вам понравился пост и Вы хотите попробовать биткойны в действии — зашлите мне на кружку пива, да мягких французских булочек.