@puaro1900 партнерская программа была предусмотрена в whitepaper для игровых ресурсов и других заинтересованных, но её реализация запланирована после внедрения основных технологий. Вероятно вы говорите о партнерской программе.
TechnoL0g
Posts
-
-
В обновление включены:
- улучшенная работа с сокетами, теперь требуется меньше итераций на установку соединений, потребляет меньше памяти (socket.io v2.1.1)
- обновленный сервер express (4.16.3)
- крипто по элептичеким кривым secp256k1 (до v3.5.0)
- ускорена работа с командной строкой (через vorpal v1.12.0)
- улучшения по передачи сжимаемых данных между узлами
- обновлен основной модуль sthjs API SmartHoldem, теперь подключается через npm менеджер пакетов
- обновлен модуль взаимодействия с массивами (lodash)
Обновления не критичны, но желательны
Тестирования проводились в стабильных версиях nodejs: 6.14.1 (20 test-servers) и 8.11.1 (15 test-servers)
Для обновления возможны следующие последовательности команд:
sudo apt-get update && sudo apt-get dist-upgrade -y cd smartholdem-node-a git pull npm install -g npm forever grunt-cli npm install sh update.sh
Если не срабатывает обновление, выполняем патч и повторяем список команд:
git checkout -p git pull
Если проблема с компиляцией secp256k1, одна из причин локаль:
sudo locale-gen en_US.UTF-82я причина, gyp:
npm install -g node-gyp@latest npm rebuild -
Проведен рефакторинг sthjs-wrapper
соотвественно обновлены
модуль также доступен в npm https://www.npmjs.com/package/sthjs-wrapper
установка
npm install --save sthjs-wrapperинициализация перед использованием
// init var smartholdemApi = require("sthjs-wrapper"); var network = "main" //or "dev" smartholdemApi.init(network);использование
var smartholdemApi = require("sthjs-wrapper") smartholdemApi.getBalance("Address of the account", (error, success, response) => { console.log(response); }); -
Trusted Execution Environment SmartHoldem (TEESH) набор программных компонентов, поддерживающих на устройстве безопасную среду выполнения операций экосистемы SmartHoldem.
Состоит из:
- Операционной системы (SH Trusty ОС), работающей на процессоре, поддерживающем TEE
- Драйверов для ядра Linux, обеспечивающих взаимодействие с приложениями, работающими под SH Trusty OS
- Набора библиотек для взаимодействия с доверенными приложениями, выполняемыми внутри SH Trusty OS, использующего драйверы ядра
- API для взаимодействия с распределенными узлами SmartHoldem из внешнего небезопасного мира
Обычно TEESH процессор — это отдельный микропроцессор в системе или виртуальный экземпляр основного процессора. TEESH процессор изолирован от остальной системы механизмами защиты памяти и операций ввода-вывода, реализованными на аппаратном уровне.
Основной процессор устройства считается «не доверенным» и не может получать доступ к определённым областям ОЗУ, аппаратным регистрам и безопасным зонам, в которых хранятся секретные данные (например — криптоключи)
Для любых операций, требующих эти секретные данные, ПО обращается к TEESH (защищенному) процессору.Самый популярный пример всего этого в экосистеме Android — это DRM framework, используемый для защиты контента. ПО, работающее в Trusted Execution Environment процессоре, может получать доступ к специфичным для этого устройства ключам, которые нужны для расшифровки защищённого контента. При хорошо организованной защите от программных атак, основной процессор видит только зашифрованный контент.
Другие примеры использования Trusted Execution Environment: полнодисковое шифрование, многофакторная аутентификация, защита от сброса устройства, защита карт памяти, беспроводная трансляция защищённого контента, безопасная обработка PIN кодов и отпечатков пальцев.
Trusty предоставляет API для разработчиков двух классов приложений:
- Доверенные приложения или сервисы, работающие на TEE процессоре
- Обычные/не доверенные приложения, которые работают на основном процессоре и используют сервисы, предоставляемые доверенными приложениями
ПО, работающее на основном процессоре, может использовать Trusty API для подключения к доверенным приложениям и обмениваться с ними различными сообщениями, подобно тому, как работают сетевые сервисы через IP. Используя определённый протокол, приложения определяют формат данных и семантики этих сообщений. Надёжность доставки этих сообщений гарантируется инфраструктурой, лежащей в основе Trusty (в виде драйверов, работающих на основном процессоре). Все сообщения асинхронны.
Доверенные сервисы
Доверенные приложения работают как изолированные процессы под ядром ОС Trusty. Каждый процесс работает в песочнице с собственной виртуальной памятью, которая управляется средствами MMU. Ядро распланировывает эти процессы на основе приоритетов; цикличность планирования задаётся защищённым синхронизатором тактов, все Trusty приложения имеют одинаковый приоритет.
Приложения для ОС Trusty могут быть написаны на C/C++.
Структура приложений
Приложения Trusty инициализируются один раз в процессе загрузки и размещаются в памяти до тех пока, пока защищенный процессор не будет сброшен. На данный момент не поддерживает динамическую загрузку и выгрузку приложений.
Доверенные приложения написаны как сервисы, управляемые событиями и ожидающие команды от других приложений или от приложений, работающих в основном процессоре. Доверенные приложения могут быть клиентами других доверенных приложений-сервисов.
Одним из видов подтверждения доверия является цифровая подпись, производителю которой пользователь доверяет или хэш сверки подписи в блокчейн.
Интересно использование чипов SoC (систем на кристалле). Подробная статья тут. это и есть ASIC с спец функциями. К примеру в устройствах Android используется этот чип для обеспечения безопасной среды и хранения ключей.
Пример системы на процессоре A9
Внешние доверенные устройства
Идея вынести выполнение критических операций на отдельное специализированное устройство не нова. К критическим операциям в данном случае стоит отнести работу с ключами и контроль обрабатываемой информации, в нашем варианте это RNG. То есть в этих устройствах необходимо обеспечить генерацию ключей, выполнение криптографических операций и контроль поступаемых на обработку данных. Так же необходимо обеспечить механизм разграничения прав доступа к устройству и обеспечить неизменность исполняемого кода.
Задачу по безопасной работе с ключами достаточно давно и весьма эффективно решают смарткарты и токены с криптографией на борту. Ключи генерируются аппаратно в устройствах, криптографические операции выполняются в устройствах, ключи никогда не покидают устройств. Разграничение прав доступа наиболее часто осуществляется с помощью PIN кода. Защита исполняемой программы от модификации обеспечивается производителем чипов на аппаратном уровне. Для борьбы с атаками направленными на несанкционированное использование криптографических возможностей, развитие данных устройств идет по пути добавления функциональности контроля достоверности/целостности данных.
Реализация контроля достоверности данных, поступаемых на обработку, в доверенных устройствах может быть различной. Существует три основных механизма контроля:Доверенный механизм ввода данных. Реализуется с помощью клавиатур ввода данных физически располагаемых на устройстве. Характерным примером являются так называемые «криптокалькуляторы», к примеру Ledger Nano S, на клавиатуре которых производится набор платежных реквизитов и затем на основе секрета устройства (или секрета платежной карты) формируется код подтверждения платежа. Основным недостатком решения является необходимость ввода данных вручную. В банковской сфере, для устранения этого неудобства, в устройство может быть добавлена функциональность хранения списка контрагентов.
Визуальный контроль данных, осуществляемый с помощью дисплея доверенного устройства. В отличии от первого способа, данные формируются в недоверенной среде, а затем отображаются на экране доверенного устройства. Корректность данных проверяет пользователь устройства. В случае подтверждения пользователем корректности данных, формируется код подтверждения.Устройства могут иметь различный форм фактор и иметь различные интерфейсы обмена данными. В настоящее время являются самыми удобными для пользователя решениями по созданию доверенной среды.
Получение данных из доверенного источника с криптографической проверкой авторства. Получение данных от доверенного сервера приложений и расшифровка (проверка подписи) в доверенном устройстве. Может сочетается с визуальным контролем данных.По своей сути все внешние доверенные устройства являются миникомпьютерами с ограниченными функциональными и вычислительными возможностями. Аутентичность данных обеспечивается наличием собственных интерфейсов ввода-вывода.
Перспективы
- Использование в генерации RNG SmartHoldem на стороне пользователя
- Эффективно решить поставленную задачу без некого, отдельного от основного компьютера, устройства не удается.
- При использовании загрузки с доверенного носителя для обеспечения безопасности ограничивается функциональность загружаемой ОС.
- Внешние подключаемые устройства наращивают свою функциональность.
Механизм TEE в мобильных устройствах:

-
Отдельная карта также доступна тут https://smartholdem.io/nodesmap.html
-
@mkbeh Один из методов упакованный снапшот, регулярно обновляемый, через некоторое время будет переведен в p2p режим, как торрент протокол. Сама структура данных имеет высокую энтропию и предсказуемость, что способствует созданию направленных методов сжатия, сократив объем в сотни и возможно в тысячи раз (зачастую в монетах 1.0 данные между пирами передаются не упакованными, по блочно, почему бы не хэшировать по 10800 блоков (24 час) за 1 раз? при синхронизации...).
-
@patinity да эта библиотека создана для упрощения взаимодействия с API SmartHoldem и дочерними blockchain. Библиотека постоянно дорабатывается и доабвляются новые функции.
-
Обновления Node-A
-
Секретный ключ вынесен в отдельный файл secret.json (для совместимости также работает старый вариант с файлом config.smartholdem.json). При сохранении первой секретной фразы адреса делегата в secret.json теперь нет необходимости указывать ее заново во время обновлений.
-
Добавлена быстрая синхронизация блокчейн с помощью скрипта
sh firststart.shтестирование проводилось на заведомо слабом VPS-сервере с параметрами 2x2.2ГГц, 1Гб RAM, 20Гб HDD. Время полной синхронизации блокчейн SmartHoldem с нуля занимает не более 2х минут.
- Обновлены некоторые библиотеки связанные с лучшей безопасностью и стабильностью.
Для гарантированного обновления Node-A до последней версии используйте следующие команды:
!Внимание! Вероятнее всего секретная фраза из файла config.smartholdem.json >> secret["ваша фраза"] будет удалена, не забудьте ее записать.
cd smartholdem-node-a forever stop app.jsздесь будет задан вопрос о перезаписи некоторых файлов, пишите y <ENTER>
git checkout -p git pullРезультат выполнения примерно следующий:

Обновляем модули
npm installЕсли давно не обновлялись, секретная фраза будет удалена, вам необходимо ее указать заново, рекомендуется указывать в файле secret.json
nano secret.jsonФайл
{ "secret": ["здесь ваша секретная фраза"] }CTRL+o, CTRL+x
sh update.shПо завершении всех операций вы увидите лог работы вашей обновленной ноды.
P.S. Также в Node-А SmartHoldem успешно работают исключения - это одна из будущих функций монеты EOS, которая на данный момент лишь анонсирована.
-
-
Блок 1401917
-
Разработчикам создана раздача тестовых (DEV) монет, необходимых в тестировании API SmartHoldem без затрат настоящих монет.
-
Обозреватель блоков тестовой сети DEV Explorer
-
Делегатам - улучшенная безопасность нод А. Вы можете сгенерировать вторую парольную фразу к своему адресу, но на сервере использовать первую, что гарантирует полную безопасность в случае компроментации первой фразы. После активации Все дальнейшие исходящие операции адреса необходимо проводить при использовании двух фраз. Протестировано в DevNet. Комиссия включения второй фразы 5 STH.
Помните! В случае утери парольной фразы вы не сможете получить доступ к вашим активам! -
Обновлен SmartHoldem API Wrapper при работе с транзакциями, идентификацией типа сети, подбор случайных нод.
-
Обновлен API JS в ветках mainnet & desktop wallet, исправления в валидации адреса и типов сетей (sidechains)
-
Обновлены скрипты faucet
-
Добавлены локальные версии Windows генератора "бумажных" кошельков, работает без подключения к сети.
-
Обновлен обозреватель блоков. Переводы, поддержка альтернативных сетей, блокчейнов, добавлен функционал графиков и мониторинга будущих курсов STH & Связываемых токенчейн.
-
Обновлена документация API SmartHoldem по API Wrapper и примерам использования.
-
-
@djvovik в версии 1.0.3 возможно выбрать путь к установке
-
@crazy_miner необходимо открыть порт 6100
-
@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
2 уровня рефералов в блокчейне
Обновление Node-A v.0.1.3
Рефакторинг sthjs-wrapper
Заметки по доверенной среде выполнения (TEESH)
География Нод платформы SmartHoldem
Обновление FullNode-A v0.1.2
Добавлена документация API JS Wrapper
Обновление FullNode-A v0.1.2
Итоги на 28/04/2018
Desktop Wallet 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