@crazy_miner необходимо открыть порт 6100

TechnoL0g
Posts
-
-
@puaro1900 Синхронизируйте время на PC
-
@patinity в настоящее время ведется работа/иссследования по созданию виртуальной машины (vm) выполнения контрактов.
в качестве кандидатов языки: lua, node vm, c++ (ciyam) + пару эксзотических.
нам необходим на входе простой для понимания разработчиков язык контрактов, к примеру в lua возможно в формате js записать контракт (в отличии от солидити более понятен людям) и на выходе получить выполняемый в vm байткод.
Haskell достаточно тепизирован, что исключает лишние ошибки при создании контрактов и может выступать как один из кандидатов на реализацию виртуальной контрактной машины в SmartHoldem (это по вопросу использования в крипте).
К примеру EOS используют WASM на clang, напоминает vm nodejs, который слегка не безопасен в стандартной реализации (мое субъективное мнение).
-
API JS Wrapper это дополнительный слой API SmartHoldem
добавлен в документацию https://api.smartholdem.io/#js-api-wrapper
-
Подпись сообщений может потребоваться при подтверждении владения конкретным адресом SmartHoldem без раскрытия самого приватного ключа. Результат проверки подписи имеет одно из значений: проверка пройдена, не пройдена.
К примеру при участии в ico вам может потребоваться подтверждение владения адресом, подпись контента в p2p сетях, авторство (в сочетании с хэшированием) или при авторизации на сайте поддерживающем API SmartHoldem. Либо при других операция где необходимо подтвердить владение адресом.
Подписание сообщения:
- откройте SmartHoldem приложение
- выберите свой адрес > подпись сообщения
- нажмите ПОДПИСЬ
- укажите секретную фразу и сообщения
- вы получите запись с подписанным сообщением
- нажмите скопировать
пример результата
{"publickey":"03675c61dcc23eab75f9948c6510b54d34fced4a73d3c9f2132c76a29750e7a614","signature":"304402207d067ac09b1462289e43e701e43933580b195f40b643188e8e6330424db680de022027dff63053337a428cd8f04de675efb9aad57236c5acfad3c2b85ea7bf51efd3","message":"hello community"}
Теперь возможно проверить действительность подписавшего сообщение:
Проверка сообщения:
- нажмите ПРОВЕРИТЬ
- укажите открытый ключ, подпись и сообщение
- появится сообщение о подтверждении подписи, если сообщение прошло проверку
Как вы можете видеть, с помощью открытого ключа легко возможно доказать - сообщение действительно написано тем, кто контролирует эту кодовую фразу. Это доказывает то, что я действительно написал сообщение.
Важным является то, что это работает без того, чтобы кто-либо из получателей знал кодовую фразу.
-
@xoz9in said in Итоги 16/04/2018:
Не хватает реферальной сылки на кран что бы ребя раскидывали по всему интернету наш проект))) Это одна из самых действующих реклам))) Добавьте пожалуйста реферальную сылочку
Уточнение: указавший свою уник ссылку получает часть монеты от реферала? или какое другое вознаграждение?
-
Блок 1267623
Версия кошелька SmartHoldem v1.0
Много bug fix и технических доработок
некоторые дополнения запланированы в ближайших версиях 1.0.1, 0.2 итд..
SmartHoldem API Wrapper
Дополнительный слой взаимодействия с API SmartHoldem
https://github.com/smartholdem/sthjs-wrapperдокументация тут
Скрипт SmartHoldem крана Alpha
https://faucet.smartholdem.io/
Говорили некотрое время назад о скрипте крана SmartHoldem,
Как всегда весь код открыт на git
Alpha версия тут
Срипт представляет собой полноценное приложение взаимодействия с экосистемой SmartHoldem, возможно использовать как шаблон для других приложений и обучения работы с экосистемой.Содержит:
- работу с базой данный mysql
- конфигурирование с config.json
- аналог задачника crontab
- примечание к выплате
- frontend собран с стандартным bootstrap + jquery
- backend на nodejs с собственным api, роутерами, контроллерами итд
- поддержка google recaptcha
- настройка минимальной суммы для отправки
- настройка комиссий
- для лучшего взаимодействия с экосистемой SmartHoldem опубликован слой между API SmartHoldem и приложением API Wrapper, через него работает кран.
Логика крана:
- Каждые 30 минут, посетитель указывает свой адрес, подтверждает, что он не бот, жмет submit. В бд записывается транзакция на отправку 0.15 STH.
- Для получения платежа посетителю необходимо набрать минимальную сумму 1 STH, (т.е. зайти на кран как минимум 2 раза 0.30 STH в alpha).
- Автоматические платежи запланированы 1 раз в сутки для сокращения комиссий (в alpha 1 раз в час).
Фонд крана невелик,т.к. для тестов
Версия крана рабочая, но возможны баги.
!Кран как и другие наработки никогда не были включены в дорожную карту, продолжая следовать правилу - мы просто делаем более возможного, не устанавливая сроков.Простой мониторинг сети
Добавлен простейший мониторинг сети html+js на git
Обновление API
-
Work on the official SmartHoldem Wallet continues. With each release, the functionality of the wallet is getting better and more usability for users. In this update SmartHoldem Wallet added +10 000 new lines of code.New version of SmartHoldem Wallet 1.0.0 available https://github.com/smartholdem/smartholdem-wallet/releases
-
Added languages: Arabic, Korean, Serbian, Chinese (Taiwan), Japanese, Portuguese (Brazil).
-
Option - bind a purse to the trusted node ip.
-
Sending payment function with a message.
-
The experimental function of multi payments from a csv-file, up to 20 (the idea is taken from the old service webmoney - experimentally).
-
Customizable design of the user interface.
-
Management of networks and sidechains (experimentally, in progress).
-
Exporting Address Transactions to a File.
-
Updated version of electron to 1.8.4.
-
Updating the engine framework.
-
Fixed qr-code recognition (ntegration with uri apps is being developed SHIP-001).
-
The voting system is simplified (now it looks more convenient).
-
The function of recording into blockchain the second secret phrase to the address is added (use with caution, since after activation it is necessary to know 2 phrases).
-
The field for displaying a note in the table has been added to the transaction list.
-
The main Internet resources of the ecosystem have been added to the help menu.
-
Corrected shutdown screenshots work.
-
Improved application setup for windows (now a normal installer with a choice of installation path).
-
Update MacOs Installer.
-
Update Linux Installer.
-
More than minor 96 fixes.
Additional functionality and decentralized applications are planned in the next versions.
-
-
Простой пример отправки транзакции через PHP Curl с примечанием к платежу:
!Важно отправлять данные на доверенную ноду, т.е. на вашу.
<?php $url = 'http://node_ip:6100/api/transactions'; $data = json_encode((object) array( "secret" => "секретная фраза адреса отправителя", "amount" => 10000000, //0.1 STH в Satoshi "recipientId" => "Sa9JKodiNeM7tbYjxwEhvvG1kBczhQxTN3", //адрес получателя "vendorField" => "any message" // опциональное поле 64 байт )); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json', 'Content-Type: application/json')); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); $response = curl_exec($ch); curl_close($ch); $result = json_decode($response, true); //convert to array print_r($result); //show result
Результат выполнения при успехе примерно следующий:
Array ( [success] => 1 [transactionId] => 97fc4c43279a27e7c28a4058ce06219434a0b4f97e6bf5a12f9ebb41a739652a )
*При использовании двух парольных фраз добавьте поле secondSecret
Пример добавлен в документацию
-
@nrz самая важная функция в версии 1.0 примечание к платежу, таким образом мы упростили в N-раз прием платежей, без необходимости отслеживать тысячи адресов, т.е. любой новичек сможет организовать прием на своем ресурсе или в приложении, не говоря про биржи.
Простейший пример добавлен в документацию API
-
@ozik Друзья для гурманов добавлена unpacked/portable версия под win64 тут
результат проверки неупакованного файла
-
@ozik да это простой упаковщик. Когда новый антивирус с малой базой не понимает что это - по умолчанию прописывают разное.
bkav ругается, странный сервис, вероятно из новых, скорее всего с сигнатурами ребята намудрили.
В одной из версий была проблема с авастом, так мы с ними связались и все разрешилось.
Эта проблема была у gamenet https://forums.comodo.com/av-false-positivenegative-detection-reporting-b154.0/-t112601.0.html с комодо. Свяжемся с этим странным сервисом bkav.
-
Проблемы распространения децентрализованных сетей
Несмотря на преимущества p2p сетей, на текущий год они имеют малое распространение среди простых законопослушных пользователей интернета.
Проблема кроется в отсутствии мотивации. Никому не интересно участвовать в раздачи контента p2p сетей. Эта давняя проблема существовала с самого основания bittorrent протокола, когда новые пользователя не могли получать контент, из-за оффлайн его раздающего. Некоторые трекеры устраняли проблему рейтингом, т.е. чтобы скачать контент, пиру необходимо также участвовать в раздаче другого контента трекера, некий трафиковый бартер.
Варианты мотивации:
1. вознаграждение за поддержку сетей
К примеру проекты storj, sia используют финансовую мотивацию участия в поддержке сети, это логичное решение имеет смысл при создании децентрализованных облачных хранилищ, до децентрализованного интернета далеко.2. интерес к контенту
Если сайт интересен в p2p сети, его посещают тысячи пиров, распространяя контент ресурса и поднимая скорость отдачи материалов. При росте сети, контент станет избыточен, для сокращения избыточности используем формулу m < N, где m - max число пиров для одинакового контента, N - всего пиров в сети. Дополнительно сократить дедубликацию контента возможно с помощью хэширования в ipfs, к примеру библиотека jquery.js отправленая в сеть ipfs будет доступна по ранее загруженному хэшу.3. анонимность, безопасность, отсутствие цензурирования
В обычном интернете все ваши письма, переписка и личные данные доступны провайдерам.
В p2p сетях защищенных криптографией и дополнительными протоколами (tor, vpn, tls) данная проблема отсутствует, являясь мотивацией использования.
Исходя из некоторых исследований, понимание свободного интернета для большинства пользователей сводится к тому, что участники сети ощущая полную анонимность и безопасность ведут себя недостойно и неуважительно по отношению к другим участникам. Т.е. обычное дело написать "все кАзлы..", не используя действительный потенциал сети на 0.0001% и новых возможностей, однако адекватному человеку подобный контент неинтересно воспринимать. Соответственно необходимы новые методы взаимодействия с троллинг-контентом при отсутствии злого центрального админа.
Один из вариантов решения - сообщество сети, предполагается - большая часть участников являются адекватными людьми, способными выбирать контент, если это не так, общество увидит свое настоящее лицо.
Приватное облачное хранилище
Всем нам известно, централизованные облачные системы dropbox, google, apple и подобные имеют доступ к всем вашим данным в облаке, не мало известны факты о взломах подобных систем со всеми вытекающими последствиями.
Приватное децентрализованное облачное хранилище исключает недостатки систем на ручном управлении.
Входные параметры хранилища:
- минимальное число поддерживающих пиров (5-10-15-100-N пиров)
- время хранения (1-3-6-12-24-240-N месяцев)
- объем (1-3-5-N Tb)
соответственно в зависимости от параметров изменяется стоимость приватного хранилища. Вознаграждение - необходимая мотивация узлов.
Для предоствращения роста цен на хранилища (инфляция), предполагается допополнительная аукционная система в сочетании с фиксированными стартовыми параметрами.Умные контракты в децентрализованных сетях
Умный контракт - автоматизированная программа, выполняющая заранее запрограммированные условия. С важным свойством: для всех пользователей каждая такая программа будет работать по известным принципам, предсказуемо, одинаково, прозрачно, и ее никто не может изменить.
В простых блокчейн-системах имеются следующие недостатки: контракты навсегда записываются в базу данных, а стоимость поддержки подобных контрактов растет с каждым блоком. Каждый блок ограничен объемом принимаемого контракта.
Децентрализованная сеть может выступить как sidechain умным контрактам, неограничиваясь объемом выполняемой программы, неважно 1кб или сотни мегабайт ваш контракт, он будет выполняться и храниться.
В качестве доказательства детерминичности возможно использовать ссылку-указатель в формате хэша контракта. Т.е. все, что необходимо записать в блокчейн - специальную транзакцию в несколько байт связанную с контрактом p2p сети. Это существенно сократит издержки на поддержание контрактных систем в blockchain. Один из вариантов использование принципа приватного облачного хранилища.К примеру контракт на проведение ICO не нуждается в вечном хранении, а лишь до его завершения и выполнения конечных автоматизированных условий - Temporary Smart Contracts.
Сами контракты выполняются специализированной виртуальной машиной. Если контракт изменен, его хэш-адрес также изменится и никогда не будет выполнен.
-
Децентрализованная платформа не может полноценно существовать в обычном централизованном интернете, из-за ограниченной архитектуры и ручного управления.
Мы делаем все, что в наших силах, чтобы WEB был быстрым, высокодоступным и полезным, но, кажется, становится только хуже. Кто-то может назвать это нормальным, сославшись на растущее количество пользователей сети, нагрузки, объемы и тяжесть контента, но корень проблемы заключается в ущербности самого HTTP как средства для отдачи огромных объемов трафика. Он просто для этого не предназначен. Система, построенная по принципу «один провайдер — миллионы потребителей», во все времена будет страдать от всех перечисленных проблем со все большим усложнением инфраструктуры провайдеров, постоянно возрастающими расходами на ее содержание и опасениями, что в любой момент придет Надзиратель и выключит доступ к сервису одним нажатием кнопки.
Первые создатели Peer-2-Peer сетей осознавали это, разрабатывая торрент протокол, когда контент отдается ни 1 сервером, а другими участниками сети. Эта технология быстро завоевала популярность.
Также стоит упомянуть о давно забытой разработке первого программиста Apple - Била Аткинсона - HyperCard. В этой системе удачно совмещены средства предстваления данных и система динамической интерпретации скриптов, что позволяет ее использовать как внешнюю оболочку-интерфейс к p2p сетям и нейронным моделям. Архитектура системы HyperCard во многом послужила прототипом для веб-страниц, однако его возможности до сих пор во многих отношениях превосходят средства динамического программирования DHTML.
К сожалению в 90-х годах система HyperCard была заморожена и в настоящее время практически прекратила свое существование. Причина в том, что руководство Apple не смогли понять и оценить ее стратегическое значение. В своем интервью в 2003 году, Джон Скали, бывший в 80х президентом компании Apple, рассказал об этом так:
Если я обращусь назад, на то, что бы я хотел сделать по другому тогда, когдя я был в Apple, я думаю что самая большая упущенная возможность - это система HyperCard. Она была создана в 1987 году первым программистом Apple - Билом Аткинсоном. Мы никак не могли понять, что же она из себя представляет на самом деле. Мы думали, что это была система создания прототипов. Мы думали, что это была база данных. Был пример, когда она использовалась как интерфейс с протоколом TCP/IP для работы с суперкомпьютером Cray.
У нас не хватило проницательности ,чтобы понять, что все, что было внутри HyperCard, было на самом деле то, что позднее будет успешно разработано Тимом Бернес-Ли, с протоколоами HTTP и HTML.Времена «один сервер — один веб-сайт» давно прошли. Но, как и раньше, мы продолжаем использовать все те же web-технологии, что и старик Тим Бернерс-Ли.
- Мы изобрели HTTP 2+, но все ещё не придумали способа отвязать сервис от единой точки входа;
- у нас есть огромное количество технологий оптимизации выдачи контента, но мы до сих пор страдаем от DDoS-атак;
- мы платим копейки за мегабайт трафика, но отдаем огромные суммы за то, чтобы наш сервис оставался онлайн;
- любой популярный сервис может быть заблокирован, даже если он имеет большую культурную ценность для всего сообщества.
Как применить принцип P2P сетей для построения динамичных приложений и web-сайтов?
Задачу построения одноранговых сетей предлагается разрешить стеком протоколов IPFS + BitTorrent (проверенная временем технoлогия, которая прекрасно работает) + BlockChain + SideChains SmartHoldem.
IPFS (InterPlanetary File System) — это набор протоколов и технологий, позволяющий создать нечто в виде глобальной распределенной файловой системы, построенной по принципу P2P-сети. В такой сети все ноды равны и могут выступать как потребителями, так и провайдерами контента. Поиск информации ведется с помощью распределенной хеш-таблицы (DHT), а адресация контента, с помощью контрольных хеш-сумм файлов.
Для получения файла клиенту нужно знать только хеш, все остальное сеть сделает сама: найдет узел, у которого есть копия файла, запросит у него файл и отдаст его нам. При этом сеть не имеет пределов горизонтального роста.Примечание: в настоящее время в экосистему SmartHoldem интегрирован специальный тип транзакций взаимодействия с IPFS-сетями под id: 5.
Локальный интерфейс IPFS
IPFS имеет некоторые недостатки, но решает следующие проблемы:
-
Доступность: Веб-сайт, размещенный с помощью IPFS, не имеет точек отказа (спорно в альфе). При достаточно большом количестве узлов, реплицирующих веб-сайт или его части (или даже части файлов) у себя, выход одного, нескольких или даже большинства из них никак не повлияет на доступность веб-сайта. Более того, нагрузка на узлы, распространяющие контент веб-сайта, будет равномерно распределена между ними, что защитит от резких наплывов посетителей и DDoS-атак.
-
Параллельная загрузка. Клиент может загрузить части веб-сайта и отдельных файлов с разных узлов одновременно, равномерно распределяя нагрузку на них и увеличивая общую скорость загрузки.
-
Решение проблемы мертвых ссылок. Все файлы в IPFS адресуются с помощью хеш-сумм, так что, если один или несколько узлов перестанут хранить у себя файл, он все равно будет найден.
-
Версионность подобная GIT. IPFS — версионная файловая система. При модификации файла старая версия остается неизменной и может быть адресована и найдена. Это позволяет из коробки получить wayback machine, которая будет работать до тех пор, пока хоть один узел будет хранить старую копию файла.
-
Обход цензуры. В IPFS нет единой точки входа и единого сервера, отвечающего за обслуживание веб-сайта или сервиса. Чтобы «выключить» сайт в IPFS, придется выключать все узлы, ответственные за хранение его частей. При достаточных размерах сети это нереализуемая задача.
-
Экономия на трафике. Благодаря равномерному распределению нагрузки на узлы можно существенно сократить расходы на трафик.
В рамках экосистемы SmartHoldem предполагается использование IPFS в качестве транспортного протокола, а BitTorrent в качестве хранения файлов. Т.к. в настоящее время IPFS имеет недостатки:
- потребление всей памяти и ресурсов при трансляции больших файлов 1-2 Тб с одного устройства;
- необходимость нахождения источника файлов постоянно в онлайн;
- отказ в обслуживании узла при прямом взаимодействии с торрент протоколом при N подключениях;
- файлы делятся на блоки которые мало пригодны для повторного использования (решается экспериментальной функцией --nocopy. Опция --nocopy очень помогает когда вы хотите поделиться с миром например дампом WikiLeaks );
- при обновлении сайта его хэш изменяется и это плохо, хотя и необходимо
- отсутствует поддержка баз данных
Для того, чтобы избавиться от необходимости постоянного подключения устройства трансляции в сеть файлов, используем torrent + ipfs
к примеру каталог
https://gateway.ipfs.io/ipfs/QmQq4AoQiXBc3Gi5VnvbPUV8yPNhrkSPeYcmccu7MxWft7/
создаем magnet seed и далее наши файлы раздаются из IPFS по Torrent протоколу.
Соответственно все эти опции нуждаются в автоматизации.
При использовании системы имен IPNS, возможно переключить обычное доменное имя на децентрализованное хранилище.
Предполагаемые стартовые функции децентрализованной сети SmartHoldem
- SmartIDS - специальное приложение генератор/регистратор имен с парами открытый-закрытый ключ, необходимыми для взаимодействия с сетью (подпись, публикация сообщений, сайтов, приложений в сети). Открытый ключ - это адрес SmartHoldem.
Для каждого приложения/сайта генерируется своя пара открытых и закрытых ключей, необходимых для подписи контента при обновлениях.
-
Локальный прокси - необходим для постоянной доступности к контенту сети, в том числе при отключении интернета.
-
Сайты хранятся посетителями, это фактически бесплатный хостинг. !Посетители не хранят все сайты подряд, лишь те, которые им интересны и которые они посещают.
-
Адрес сайта/приложения сети это публичный адрес SmartHoldem
-
Сервис имен - система регистрации доменных и других уникальных имен. К примеру длинный публичный ключ возможно заменить на децентрализованное доменное имя, улучшая человекочитаемость.
-
Поисковая система - это большая проблема децентрализованных сетей, мы работаем над решением.
-
Streaming медиа на BitTorrent протоколе и элементах IPFS (Вещание аудио и видео контента)
-
Отсутствие центрального регулятора цензуры, сообщество сами управляют цензурированием контента
-
Быстрая загрузка страниц не зависящая от скорости соединения, за счет выдачи с многих пиров
-
Динамические приложения и многопользовательские веб-сайты, обновляемые в реальном времени
-
Совместимость с любыми браузерами
-
За счет отсутствия точек отказа, отсутствие DDOS атак
-
Защита криптографией на основе экосистемы SmartHoldem
-
Работа на мобильных устройствах, в связи с их растущим распространением
-
Новые протоколы сжатия информации
-
Безтрекерный торрент протокол на основе DHT Kademlia
-
Быстрые децентрализованные блоги и форумы
-
Децентрализованная социальная сеть
-
Обеспечение дополнительной безопасности и анонимности с помощью tor-сетей
-
Децентрализованный мессенжер на основе стелс-технологии, описанной мной в более ранних публикациях. С поддержкой приватных сообщений и возможно pgp ключей + peerjs
-
Оплачиваемое распределенной защищенное хранилище больших объемов конфиденциальных данных (proof-of-capacity).
-
Каталог и Хранилище приложений разработчиков (некий децентрализованный гугл маркет)
-
Безпарольная авторизация bip39, bip44 (приватный ключ хранится у вас и этого достаточно). Больше никаких email для подтверждения на сайтах..
-
Почтовый сервис (думаю еще многие пользуются почтами, но в этом случае ваши письма никто кроме вас не прочитает)
-
Шифрование соединений
-
Совместимость на стартовом этапе с обычным интернетом через proxy gates
-
API взаимодействия с базами данных в динамических приложениях
Подобный подход предоставляет решения реализации умных контрактов за пределами BlockChain
Экономика распределенной сети SmartHoldem
В текущее время экономика, есть развитие и движение, с экономикой сеть обречена на широкое распространение. К абсолютно всем бесплатным сервисам общество не готово психологически. Надеюсь, в определенном будущем мы научимся оценивать труд наших собратьев в других не экономических единицах.
Продолжение следует...
-
This is a Civilized Place for Public Discussion
Please treat this discussion forum with the same respect you would a public park. We, too, are a shared community resource — a place to share skills, knowledge and interests through ongoing conversation.These are not hard and fast rules, merely aids to the human judgment of our community. Use these guidelines to keep this a clean, well-lighted place for civilized public discourse.
Improve the Discussion
Help us make this a great place for discussion by always working to improve the discussion in some way, however small. If you are not sure your post adds to the conversation, think over what you want to say and try again later.The topics discussed here matter to us, and we want you to act as if they matter to you, too. Be respectful of the topics and the people discussing them, even if you disagree with some of what is being said.
One way to improve the discussion is by discovering ones that are already happening. Please spend some time browsing the topics here before replying or starting your own, and you’ll have a better chance of meeting others who share your interests.
Be Agreeable, Even When You Disagree
You may wish to respond to something by disagreeing with it. That’s fine. But, remember to criticize ideas, not people. Please avoid:Name-calling.
Ad hominem attacks.
Responding to a post’s tone instead of its actual content.
Knee-jerk contradiction.
Instead, provide reasoned counter-arguments that improve the conversation.Your Participation Counts
The conversations we have here set the tone for everyone. Help us influence the future of this community by choosing to engage in discussions that make this forum an interesting place to be — and avoiding those that do not.Discourse provides tools that enable the community to collectively identify the best (and worst) contributions: favorites, bookmarks, likes, flags, replies, edits, and so forth. Use these tools to improve your own experience, and everyone else’s, too.
Let’s try to leave our park better than we found it.
If You See a Problem, Flag It
Moderators have special authority; they are responsible for this forum. But so are you. With your help, moderators can be community facilitators, not just janitors or police.When you see bad behavior, don’t reply. It encourages the bad behavior by acknowledging it, consumes your energy, and wastes everyone’s time. Just flag it. If enough flags accrue, action will be taken, either automatically or by moderator intervention.
In order to maintain our community, moderators reserve the right to remove any content and any user account for any reason at any time. Moderators do not preview new posts in any way; the moderators and site operators take no responsibility for any content posted by the community.
Always Be Civil
Nothing sabotages a healthy conversation like rudeness:Be civil. Don’t post anything that a reasonable person would consider offensive, abusive, or hate speech.
Keep it clean. Don’t post anything obscene or sexually explicit.
Respect each other. Don’t harass or grief anyone, impersonate people, or expose their private information.
Respect our forum. Don’t post spam or otherwise vandalize the forum.
These are not concrete terms with precise definitions — avoid even the appearance of any of these things. If you’re unsure, ask yourself how you would feel if your post was featured on the front page of the New York Times.This is a public forum, and search engines index these discussions. Keep the language, links, and images safe for family and friends.
Keep It Tidy
Make the effort to put things in the right place, so that we can spend more time discussing and less cleaning up. So:Don’t start a topic in the wrong category.
Don’t cross-post the same thing in multiple topics.
Don’t post no-content replies.
Don’t divert a topic by changing it midstream.
Don’t sign your posts — every post has your profile information attached to it.
Rather than posting “+1” or “Agreed”, use the Like button. Rather than taking an existing topic in a radically different direction, use Reply as a Linked Topic.Post Only Your Own Stuff
You may not post anything digital that belongs to someone else without permission. You may not post descriptions of, links to, or methods for stealing someone’s intellectual property (software, video, audio, images), or for breaking any other law.Powered by You
This site is operated by your friendly local staff and you, the community. If you have any further questions about how things should work here, open a new topic in the site feedback category and let's discuss! If there's a critical or urgent issue that can't be handled by a meta topic or flag, contact us via the staff page.Terms of Service
Yes, legalese is boring, but we must protect ourselves – and by extension, you and your data – against unfriendly folks. We have a Terms of Service describing your (and our) behavior and rights related to content, privacy, and laws. To use this service, you must agree to abide by our TOS. -
Версия 0.0.3
- Добавлена функция отправки транзакций с примечанием (сообщением)
- Добавлены ссылки на скачивание легкого кошелька (скачать, распаковать. запустить index.html)
-
На заре Биткоин 1.0, во время разработки платежных шлюзов для некоторых централизованных систем столкнулся с следующей проблемой - отсутствие примечания к платежу, в любой из биткоин подобных монет. И это была проблема, которая как известно решается методом выдачи каждому пользователю уникального адреса.
В данном руководстве рассматривается метод приема платежей с примечанием к платежу (сообщением) в экосистеме SmartHoldem. Сервис использует 1 адрес, но для каждого пользователя генерируется уникальная строка.
Для простоты понимания в качестве бэкенда используется язык PHP.
В процессе участвуют: сервис (обменник) и пользователь (клиент).
Клиент
Со стороны клиента некий сервис - обменник, генерирует для клиента исходные данные.
- сумма к получению в меняемой монете (задаваемая клиентом)
- расчетный результат к получению по текущему курсу STH > COIN
- адрес для отправки STH (для всех один)
- уникальная строка сообщения (идентифицирует отправителя)
Здесь на стороне сервиса в backend генерируется уникальная строка для каждого пользователя и сохраняется в базу данных, к примеру таблица вида:
userid(int), msg(string)<?php $msg = substr(md5(uniqid(microtime(), 1)) . getmypid(), 1, 8); // результат уникальная строка: 561559b2
Клиент, зная исходные данные, отправляет соответствующую сумму с примечанием на указанный адрес с помощью своего кошелька.
Сервис
Теперь в работу вступает backend сервиса, обработчик транзакций. Для простоты понимания будем использовать выполнения скрипта по crontab.
Создаем на стороне сервера php-файл, далее пропишем его на выполнение cron каждую минуту.
<?php $addr = 'Sg13BhANeairfS3o3w8N9sKaFrsht2bt4V'; //адрес проверки транзакций $limit = 25; //лимит выдачи транзакций $offset = 0; // смещение //сортируем выдачу транзакций по timestamp с помощью orderBy $url = 'http://your_node_ip:6100/api/transactions?recipientId='.$addr.'&orderBy=timestamp&offset=0'; //получаем данные и преобразуем в массив $tx = json_decode(file_get_contents($url),true); /* если транзакций более лимита, смещаем offset указатель выдачи транзакций и получаем последние $limit транзакций, т.к. транзакций может быть сотни тысяч */ if ($tx['count'] > $limit) { $offset = $tx['count'] - $limit; // расчет смещения $url = 'http://your_node_ip:6100/api/transactions?recipientId=Sg13BhANeairfS3o3w8N9sKaFrsht2bt4V&orderBy=timestamp&offset='.$offset; $tx = json_decode(file_get_contents($url),true); } // обрабатываем данные for ($i = 0; $i < count($tx['transactions']); $i++) { print "<br>amount:".$tx['transactions'][$i]['amount']. " timestamp:".$tx['transactions'][$i]['timestamp']. " msg:".$tx['transactions'][$i]['vendorField']. " senderId:".$tx['transactions'][$i]['senderId']. " Txid:".$tx['transactions'][$i]['id']; /* здесь выполняем необходимые проверки и операции записи в базу данных, к примеру добавляем баланс сохраняем в таблицу транзакций уникальные транзакции, которые и проверям при получении, к примеру txid, userid, timestamp, sum_sth, sum_coin */ /* помним, баланс выдается в сатоши, не забываем его преобразовать точными функциями */ $sumCOIN = bcdiv($tx['transactions'][$i]['amount'],100000000,8); $set['btc_sth'] = 1; //курс по отношению к STH $sumBTC = bcdiv($sumCOIN, $set['btc_sth'], 8); //расчитываем курс монеты }
Вот и все, транзакция обработана, операция выполнена.
Новые операции
+BTC за STH
1.28 BTC / 0.32000000 STH
03.04.18 09:59
пример не претендует на качество кода, он предназначен для базового понимания приема платежей.
Возможно в свою ноду интегрировать событийный скрипт с колбаками, к примеру считывать получение нового блока, затем находить транзакции предназначенные для вашего адреса, но это более сложный подход к простому приему транзакций, хотя и более элегантный.
P.S. Событийный подход мы рассмотрим в следующих публикациях.
P.P.S. Функция отправки сообщений будет доступна в версии кошелька 1.0 в ближайшие дни/неделю, с сотнями других дополнений и исправлений.
-
Здесь формируется список тем о расширении и развитии дополнительных протоколов SmartHoldem https://github.com/smartholdem/SHIPs
-
Блок 1055908
-
Разработан новый официальный сайт SmartHoldem
-
Дополнена дорожная карта
-
Проведены запланированные встречи, переговоры (Blockchain Summit 2018)
-
-
На обычных VPS зачастую выделяется небольшой объем пространства HDD.
К примеру VPS с 20 Гб, если ваша нода была включена с самого старта сети, вероятнее всего диск забит на 99%, так происходит из-за логов forever.для просмотра доступного объема используется команда
df -h
Для освобождения диска рекомендуется периодически очищать логи из скрытой папки .forever, еще лучше прописать очистку в crontab
rm /home/ваш_пользователь/.forever/*.log
- ваш_пользователь - имя пользователя под которым работает нода, пример smartholdem
после выполнения команды проверяем доступный объем диска
Full Node Level A Delegate. Тех. вопросы, ответы.
Вопросы от чайника
Итоги 16/04/2018
Добавлена документация API JS Wrapper
Подпись сообщений с помощью ключа SmartHoldem
Итоги 16/04/2018
Итоги 16/04/2018
Improved version of wallet v1.0.0
Простой пример отправки транзакции PHP Curl
Новая версия SmartHoldem Wallet 1.0.0
Новая версия SmartHoldem Wallet 1.0.0
Новая версия SmartHoldem Wallet 1.0.0
Децентрализованный интернет. Часть 2.
Децентрализованный интернет. Часть 1.
This is a Civilized Place for Public Discussion
Обновление легкого онлайн-кошелька
Организация приёма платежей v1
О разделе
Итоги 27/03/2018
Переполнение диска