• Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Flatly)
  • No Skin
Collapse
SmartHoldem Community

Community

TechnoL0gT

TechnoL0g

@TechnoL0g
About
Posts
269
Topics
115
Groups
8
Followers
11
Following
4

Posts

Recent Best Controversial

    Децентрализованный интернет. Часть 2.
  • TechnoL0gT TechnoL0g

    Проблемы распространения децентрализованных сетей

    Несмотря на преимущества 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.

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


  • Децентрализованный интернет. Часть 1.
  • TechnoL0gT TechnoL0g

    Децентрализованная платформа не может полноценно существовать в обычном централизованном интернете, из-за ограниченной архитектуры и ручного управления.

    Мы делаем все, что в наших силах, чтобы 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
    0_1523113444730_ipfs.jpg

    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
  • TechnoL0gT TechnoL0g

    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.


  • Обновление легкого онлайн-кошелька
  • TechnoL0gT TechnoL0g

    Версия 0.0.3

    • Добавлена функция отправки транзакций с примечанием (сообщением)
    • Добавлены ссылки на скачивание легкого кошелька (скачать, распаковать. запустить index.html)

    https://onlinewallet.smartholdem.io/


  • Организация приёма платежей v1
  • TechnoL0gT TechnoL0g

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

    В данном руководстве рассматривается метод приема платежей с примечанием к платежу (сообщением) в экосистеме SmartHoldem. Сервис использует 1 адрес, но для каждого пользователя генерируется уникальная строка.

    Для простоты понимания в качестве бэкенда используется язык PHP.

    В процессе участвуют: сервис (обменник) и пользователь (клиент).

    Клиент

    Со стороны клиента некий сервис - обменник, генерирует для клиента исходные данные.

    0_1522740861038_service1.jpg

    • сумма к получению в меняемой монете (задаваемая клиентом)
    • расчетный результат к получению по текущему курсу STH > COIN
    • адрес для отправки STH (для всех один)
    • уникальная строка сообщения (идентифицирует отправителя)

    Здесь на стороне сервиса в backend генерируется уникальная строка для каждого пользователя и сохраняется в базу данных, к примеру таблица вида:
    userid(int), msg(string)

    <?php
    $msg = substr(md5(uniqid(microtime(), 1)) . getmypid(), 1, 8);
    
    // результат уникальная строка:  561559b2
    

    Клиент, зная исходные данные, отправляет соответствующую сумму с примечанием на указанный адрес с помощью своего кошелька.

    0_1522742749392_wallet_v1.jpg

    Сервис

    Теперь в работу вступает 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 в ближайшие дни/неделю, с сотнями других дополнений и исправлений.


  • О разделе
  • TechnoL0gT TechnoL0g

    Здесь формируется список тем о расширении и развитии дополнительных протоколов SmartHoldem https://github.com/smartholdem/SHIPs


  • Итоги 27/03/2018
  • TechnoL0gT TechnoL0g

    Блок 1055908

    • Разработан новый официальный сайт SmartHoldem

    • Дополнена дорожная карта

    • Проведены запланированные встречи, переговоры (Blockchain Summit 2018)


  • Переполнение диска
  • TechnoL0gT TechnoL0g

    На обычных VPS зачастую выделяется небольшой объем пространства HDD.
    К примеру VPS с 20 Гб, если ваша нода была включена с самого старта сети, вероятнее всего диск забит на 99%, так происходит из-за логов forever.

    для просмотра доступного объема используется команда

    df -h
    

    Для освобождения диска рекомендуется периодически очищать логи из скрытой папки .forever, еще лучше прописать очистку в crontab

    rm /home/ваш_пользователь/.forever/*.log
    
    • ваш_пользователь - имя пользователя под которым работает нода, пример smartholdem

    после выполнения команды проверяем доступный объем диска


  • VR в сообществе?
  • TechnoL0gT TechnoL0g

    @xinorbis VR дешевеет с каждым годом и становится доступнее, не говоря о картонных cardboard.

    VR предоставляет абсолютно новое видение как в игровом так и бизнес сегменте.

    Несомненно вся конструкция до сих пор тяжела, некий скафандр с проводами (пока ничего не поделаешь с этой кремниевой эпохой), недостаточно хорошее позиционирование, надеюсь скоро станет всё легче с меньшим числом артефактов.

    В идеале объединить VR + Нейроинтерфейс к примеру с Emotiv Epoc, у них также множество недостатков на данный момент, хотя Нейро SDK под Unity 3D имеется.
    И самое удивительное оно работает.☝

    !В случае успеха связки девайсов VR+Нейро их смогут использовать полностью обездвиженные люди на равне с обычными пользователями.


  • Stealth-адреса, транзакции и сообщения
  • TechnoL0gT TechnoL0g

    Обычные адреса Bitcoin-платформ не могут публиковаться публично, без потери конфиденциальности, поскольку все транзакции по этому адресу могут быть отслежены кем угодно. Адреса Stealth (скрытые адреса) позволяют публиковать общедоступный адрес, который может использоваться отправителями для получения нового адреса, к которому имеет доступ получатель, но никто другой не знает, связан ли он с Stealth-адресом.

    Хитрость заключается в том, что отправитель должен использовать nonce для получения адреса платежа, и этот nonce должен быть доставлен получателю, чтобы они знали, как восстановить средства. Nonce может быть передано в транзакции, так что отдельный канал не требуется для связи с nonce.

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

    Обсудим четыре метода:

    1. Простейшая форма скрытых адресов, которая имеет некоторые недостатки.
    2. Адреса Stealth для максимальной конфиденциальности.
    3. Адреса Stealth для максимальной конфиденциальности плательщика от получателя.
    4. Адреса Stealth для отправки сообщений за пределами blockchain.

    Простые скрытые адреса

    Получатель имеет keypair A = aG. Получатель делает публичный ключ общедоступным (это stealth адрес).

    Отправитель имеет keypair B = bG.
    B - это nonce.

    У них есть общий secret S = bA = baG = abG = aB, хотя получатель еще не знает, как вычислить это, так как у них еще нет B.

    Плательщик строит kdf (S) = d и D = dG и E = A + D = aG + dG = (a + d) G = eG.

    Плательщик строит транзакцию, оплачивающую E, содержащую B, в OP_RETURN и транслирует ее, и она включена в блок.

    Получатель сканирует блок-цепочку для операторов OP_RETURN.
    Для всех операторов OP_RETURN, содержащих возможный открытый ключ, они вычисляют S = aB, затем вычисляют kdf (S) = d и D = dG и E = A + D и видят, что одна и та же транзакция, содержащая OP_RETURN, также оплачивает E.
    Если это так, тогда у получателя есть закрытый ключ для этого вывода, e, который можно использовать для расходования денег.

    Этот метод имеет некоторые недостатки:

    1. Закрытый ключ получателя a должен быть онлайн на компьютере, который сканирует blockchain, увеличивая вероятность компроментации безопасности.

    2. Любой может видеть, что инструкция OP_RETURN содержит возможный открытый ключ и, скорее всего Stealth-транзакцию, что увеличивает вероятность нарушения конфиденциальности.

    Оба этих недостатка решаются в следующем методе.

    Stealth-адреса для максимальной конфиденциальности публичных данных

    Получатель имеет две пары ключей, A = aG, для получения платежей и A'=a'G, для вычисления общего секрета. Оба открытых ключа становятся общедоступными (пара A, A' - стелс адрес).

    Отправитель имеет keypair B = bG. Они ранее получали платежи по этому адресу, поэтому хэш открытого ключа является общедоступным.

    У них есть общий секрет S=bA'=ba'G=a'bG=a'B, хотя получатель еще не знает, как вычислить это, так как они еще не имеют B.

    Отправитель строит kdf (S) = d и D = dG и E = A + D = aG + dG = (a + d) G = eG.

    Отправитель строит транзакцию, выплачивающую к E, где B является открытым ключом на одном из входов, передает его и он включен в блок.

    Получатель сканирует каждую транзакцию в blockchain. Для каждого открытого ключа на входе они вычисляют S = a'B, затем вычисляют kdf (S) = d и D = dG и E = A + D и смотрят, оплата по одной и той же транзакции, содержащей B, E. Если это так , они могут потратить эти деньги с помощью keypair A = aG.

    Обратите внимание: главный секретный ключ a не обязательно должен быть онлайн в сети при сканировании блоков, только a'. Также обратите внимание, поскольку OP_RETURN не используется, эта транзакция неотличима от большинства обычных транзакций pubkeyhash в blockchain.

    Поскольку этот метод создает транзакции, которые не отличимы от стандартных транзакций, он обладает максимальной публичной конфиденциальностью. Тем не менее, он медленный, поскольку каждая транзакция в blockchain должна сканироваться с вычисляемой сложностью O (nm), где n - число входов, а m - число выходов, который определенно медлены. Это можно преодолеть, всегда помещая B в первый вход, а также сканировать blockchain только во время, когда ожидается платеж.

    Одна из последних проблем заключается в том, что получатель может видеть вход, используемый отправителем, то есть он несовместим с нашими требованиями, то есть у отправителя не может быть конфиденциальности со стороны получателя. Это можно устранить, возвращаясь к OP_RETURN, разъясняемому в следующем разделе, хотя это связано с тем, что публичная конфиденциальность уменьшается.

    Stealth-адреса для максимальной конфиденциальности отправителя со стороны получателя платежей.

    Это то же самое, что и выше, когда у получателя есть две пары ключей A = aG и A '= a'G, а у плательщика есть пара ключей B = bG, за исключением того, что B помещается в оператор OP_RETURN, а не на ввод, тем самым делая эти транзакции совместимый с нашими требованиями, поэтому плательщик может иметь конфиденциальность у получателя.

    Следствием этого является то, что B содержится в OP_RETURN, и это доступно любому ☹ , кто анализирует blockchain, поэтому публичная конфиденциальность уменьшается.

    Stealth-адреса для отправки сообщений за пределами BlockChain

    Стелс-адреса также могут использоваться для обмена сообщениями.

    Получатель имеет пары ключей A = aG и A '= a'G.
    Публичные ключи делаются общедоступными (публичными).

    Отправитель имеет пары ключей B = bG и B '= b'G. Первый открытый ключ является общедоступным и повторно используется, последний открытый ключ является приватным и используется только один раз, чтобы отправить сообщение-подсказку получателю.

    Они имеют общий секрет S = bA '= ba'G = a'bG = a'B, хотя получатель еще не знает, как вычислить это, так как они еще не имеют B.

    Отправитель строит kdf (S) = d и D = dG и E = A + D = aG + dG = (a + d) G = eG, а затем шифрует сообщение, используя открытый ключ E с алгоритмом ECIES.

    Отправитель посылает B, E (или хэш E) и зашифрованное сообщение публично. Получатель ищет публичное место для всех потенциальных зашифрованных сообщений. Любой потенциальный В проверяется на Е или его хэш, так как приемник может вычислить

    S = a'B и d = kdf (s) и E = A + D = A + dG = aG + d = (a + d) G = Eq.

    Приемник может расшифровать сообщение с помощью закрытого ключа e (который имеет только получатель, а не отправитель).

    Второй секретный ключ получателя a' должен быть «онлайн», чтобы найти сообщение, но приватный ключ нужно использовать только для фактического расшифровки зашифрованного сообщения.

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

    Все перечисленные методы доступны для понимания и имеют смысл быть, предлагаю добавить в протокол SmartHoldem Improvement Proposals подобный вид адресов и сообщений.

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

    Эти методы возможно использовать для создания действительно анонимных мессенжеров в отличии от псевдоанонимного telegram.


  • Итоги 25/02/2018
  • TechnoL0gT TechnoL0g

    @mkbeh без rpc все работает, гдето ошибка

    еще один вариант отправки:

    curl -k -H "Content-Type: application/json" -X PUT -d '{"secret":"this is a test","amount":10000000,"recipientId":"Sa9JKodiNeM7tbYjxwEhvvG1kBczhQxTN3"}' http://127.0.0.1:6100/api/transactions
    

    В примере отправляется 0.10 STH

    !Вместо 127.0.0.1 реальный ip адрес вашей ноды

    Результат тестирования curl этой транзакции тут все как видите работает


  • Итоги 20/03/2018
  • TechnoL0gT TechnoL0g

    Блок 978512

    1. Опубликован код одной из первых версий обозревателя блоков https://github.com/smartholdem/explorer-v1

    2. Изменен DEV Address Fund с SUeGCt31AHwTZVcfZQwpPVL4jEUCtMMDTg на STQK9x2xzfM54n3cACrNahiq5CaWB2HwqR в связи с изменением форматов новых адресов и поддержкой второй парольной фразы, мультиподписей. Подписан в новом обозревателе.

    3. Добавлена виртульная машина vagrant smartholdem-node-a, инструкция по использованию тут

    4. Созданы дополнительные тесты smartholdem-node-a + весь testnet в тестах

    5. Добавлена ветка для разработчиков node-a

    6. Некоторые дополнения по примерам api

    7. Разработка экспериментальных функций слушателей адресов в dev ветке https://github.com/smartholdem/smartholdem-rpc

    8. Добавлены сертификаты https для первого обозревателя блоков https://explorer.smartholdem.io/


  • Итоги 25/02/2018
  • TechnoL0gT TechnoL0g

    @mkbeh отправка должна проводиться в одну строку либо с стандартными разделителями / и пропишите порт после ip:6100

    если в windows тогда использовать двойные кавычки везде и экранирующий символ \

    т.е.

    curl -k -X PUT "http://127.0.0.1:6100/api/transactions"
    -d '{"secret":"one two three four five six seven eith night ten eleven twelve","amount":100000000,"recipientId":"SaAsydf6342ryuewrtuwerfwer"}' -H "accept: application/json" -H "nethash: fc46bfaf9379121dd6b09f5014595c7b7bd52a0a6d57c5aff790b42a73c76da7" -H "version: 0.0.2" -H "port: 6100"
    

    в целях безопасности подобные операции необходимо выполнять с своей нодой


  • Код 1й версии обозревателя блоков
  • TechnoL0gT TechnoL0g

    Опубликован код первой версии обозревателя блоков тут
    https://github.com/smartholdem/explorer-v1

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

    Добавлены https/ssl сертификаты для explorer-v1
    https://explorer.smartholdem.io/


  • Установка Node-A Vagrant Windows
  • TechnoL0gT TechnoL0g

    Гайд по установке Ноды на виртуальную машину для разработки и отладки, вместо docker используется vagrant.

    1. Установка virtualbox
    2. Устанвока vagrant
    3. Запуск smartholdem-node-a vagrant

    1. Качаем и ставим virtualbox

    1. Качаем и ставим vagrant с официального сайта
    • После установки, нужно проверить или vagrant попал в переменную пути (Path), чтобы нам не пришлось полностью прописывать путь. Для этого, правой кнопкой мишки на Мой компьютер > Свойства и выбираем Дополнительные параметры системы. Там есть пункт Дополнительно, где нужно выбрать Переменные среды. И находим переменную Path, где должна быть строка с путем к Vagrant bin.

    !Если глючит и не запускается витуальная машина и выдает синий экран, выполняем команду в cmd

    dism.exe /Online /Disable-Feature:Microsoft-Hyper-V-All
    

    1. Установка ноды
    • качаем и ставим гит для windows
    • качаем офиц ветку testnet реп SmartHoldem. Выполяем cmd
    git clone -b testnet https://github.com/smartholdem/smartholdem-node-a.git
    

    !удобно выполнять в total commander для пользователей win

    Затем в папке smartholdem-node-a в консоле windows выполняем команду

    vagrant up
    

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

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

    vagrant destroy
    

    или удалить образ из графичекой оболочки virtualbox - smartholdem_vm

    Или остановить выполнение

    vagrant halt
    

    После успешного выполнения начнется загрузка блокчейн и активируется лог в командной строке


    Вы также можете подключиться к виртуальной машине через putty по адресу 127.0.0.1:2222
    имя пользователя vagrant

    предварительно конвертировав приватный ключ из папки

    ~/smartholdem-node-a/.vagrant/machines/default/virtualbox/private_key

    с помощью программы входящей в набор утилит putty - > PuTTY Gen

    load - показать все файлы - выбрать ..private_key
    type of generate: RSA, указать 2048 в поле nubmer of bits in a generated key
    Жмем Save private key (пароль нет необходимости указывать для ключа в дев)

    далее с утилитой pageant загружаем наш конвертированный ключ. открыть, загрузить

    Теперь открываем putty и в строке подключения указываем

    ip:127.0.0.1, port: 2222

    user: vagrant
    подключиться.. Вот и все.


    *Vagrant также хорош для отладки/разработки аппаратных ключей типа ledger nano, документации smartholdem-api на ruby, blockexplorer и многих других приложений без необходимости вручную устанавливать всю среду *nix или другую os.

    В процессе разработки на nodejs обычно сочетается webstorm+vagrant.*
    В C++: Clion + vagrant если не используете nix

    upd: доступен vagrant для mainnet.

    git clone -b master https://github.com/smartholdem/smartholdem-node-a.git
    

  • Мультфильм на движке Counter-Strike: Source
  • TechnoL0gT TechnoL0g

    Элитный мир - это самый громкий и успешный проект коллектива режиссёров машинимы Smooth Few Films, уже известного вам благодаря их шикарным короткометражкам «Облом», «Один день из жизни турелей», «Половое созревание» и «Стволторг». В этот раз вашему вниманию предлагается интригующее и уморительное реалити-шоу на движке Counter-Strike: Source. Опытный спецназовец Вестхаймер и некогда успешный террорист Кортез должны воспитать настоящих мастеров своего дела из шестерых идиотов и нубов.

    • Весь 1 сезон

    Интересно, что возможно создать на современных игровых движках? 🙂


  • Итоги 13/03/2018
  • TechnoL0gT TechnoL0g

    Блок: 908765

    1. Разработана новая система документации SmartHoldem API Добавляются описания моделей данных.

    2. Создается отдельная группа репозиториев для open-source игр платформы SmartHoldem

    3. Отправлены повторные заявки на откликнувшиеся биржи с учетом всех технических требований.

    4. Добавлен автоматизированный анализатор кода
      Code Climate.

    Весь процесс разработки ведется в github public/private reps.
    Более 1100 коммитов с начала 2018 года

    0_1520951834423_git.jpg


  • VR в сообществе?
  • TechnoL0gT TechnoL0g

    0_1520751809864_HTC-Vive_2-1280x656.jpg

    Многие игры платформы SmartHoldem разрабатываются в 3D с поддержкой VR и начата разработка, отрисовка для VR персональных комнат пользователей в стиле SmartHoldem.

    Вопрос: в сообществе кто-нибудь использует VR к примеру HTC Vive или Oculusы?

    и если имеются пожелания по VR окружению, просьба отписаться в теме.


  • Музыка для работы
  • TechnoL0gT TechnoL0g

    То, что ты не успел.
    https://www.youtube.com/watch?v=Xvk_Te7LPFk

  • 1 / 1
  • Login

  • Login or register to search.
  • First post
    Last post
0
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search