Блокчейн-оракулы решают проблему доставки в блокчейн информации из внешнего мира. Но нам важно знать, каким из них мы можем доверять.Читать полностью »
Рубрика «Блог компании Waves»
Оракулы приходят на помощь
2019-10-17 в 15:08, admin, рубрики: Waves, waves platform, Блог компании Waves, блокчейн, децентрализация, децентрализованные сети, консенсус, Криптовалюты, оракулыBlockchain RSA-based random
2019-08-20 в 12:07, admin, рубрики: Блог компании Waves, блокчейн, децентрализованные сети, игры, Криптовалюты, криптография, случайные числаThere’s a problem we needed to address in the course of developing our games. It’s complicated to generate a random number in a distributed network. Almost all blockchains have already faced this issue. Indeed, in networks where there is no trust between anyone, the creation of a random number solves a wide range of problems.
In this article, we explain how we solved this problem for our games. The first of these was Waves Xmas Tree.
How to Catch a Cat with TLA+
2019-08-14 в 12:16, admin, рубрики: formal methods, puzzle, TLA+, Анализ и проектирование систем, Блог компании Waves, логические игры, математика, ПрограммированиеMany programmers struggle when using formal methods to solve problems within their programs, as those methods, while effective, can be unreasonably complex. To understand why this happens, let’s use the model checking method to solve a relatively easy puzzle:
Conditions
You’re in a hallway with seven doors on one side leading to seven rooms. A cat is hiding in one of these rooms. Your task is to catch the cat. Opening a door takes one step. If you guess the correct door, you catch the cat. If you do not guess the correct door, the cat runs to the next room.
Читать полностью »
Ловим кота с TLA+
2019-08-14 в 10:39, admin, рубрики: TLA+, Анализ и проектирование систем, Блог компании Waves, головоломки, логические игры, математика, Программирование, формальные методы Формальные методы считаются эффективным, но неоправданно сложным способом обеспечения надежности программного обеспечения. Используемые при этом инструменты существенно отличаются от привычных программисту. Эта статья написана с целью снизить порог вхождения в этот инструментарий. Я применю систему model checking не для решения сложно формулируемых задач спецификации ПО, а для решения понятной даже школьникам головоломки.
Вы находитесь в прямом коридоре с семью комнатами по одну сторону. В одной из них находится кот. За один шаг можно заглянуть в одну из комнат, если там есть кот, он пойман. Как только дверь закроется, кот перейдет в одну из соседних комнат к той, в которой находился. Задача — поймать кота.
Читать полностью »
Работа с Worker “как хочется“, а не “как можно”
2019-08-01 в 12:14, admin, рубрики: javascript, TypeScript, web-разработка, worker, Блог компании WavesВ этой статье будет использоваться ГРЯЗНЫЙ, небезопасный, "костыльный", страшный и т. д. метод eval
. Слабонервным не читать!
Сразу скажу, что некоторые проблемы удобства использования решить не удалось: в коде, который будет передан в worker, нельзя использовать замыкание.
Как строить, развертывать и тестировать Waves RIDE dApp
2019-07-12 в 11:45, admin, рубрики: blockchain, RIDE, Блог компании Waves, блокчейн, децентрализованные сети, Криптовалюты, ПрограммированиеЗдравствуйте! В статье я покажу, как написать и запустить на ноде Waves обычный dApp. Рассмотрим необходимые инструменты, методы и пример разработки.
Схема разработки dApps и обычных приложений почти не отличается:
- Пишем код
- Пишем автоматизированное тестирование
- Запускаем приложение
- Тестируем
Инструменты
1. docker
для запуска ноды и Waves Explorer
Если не хотите запускать ноду, можете пропустить этот шаг. Ведь есть тестовая и экспериментальная сеть. Но без развертывания своей ноды процесс тестирования может затянуться.
- Вам постоянно будут нужны новые аккаунты с тестовыми токенами. Кран тестовой сети переводит по 10 WAVES каждые 10 минут.
- Среднее время блоков в тестовой сети – 1 минута, в ноде – 15 секунд. Это особенно ощутимо, когда транзакция требует нескольких подтверждений.
- В общедоступных тестовых нодах возможно агрессивное кэширование.
- Еще они могут быть временно недоступны из-за технического обслуживания.
Далее буду считать, что вы работаете со своей нодой.
2. Инструмент командной строки Surfboard
- Скачайте и установите Node.js с помощью ppa, homebrew или exe здесь: https://nodejs.org/en/download/.
- Установите Surfboard – инструмент, который позволит запустить тесты на существующей ноде.
npm install -g @waves/surfboard
3. Плагин Visual Studio Code
Шаг необязателен, если вы – не фанат IDE и предпочитаете текстовые редакторы. Все необходимые инструменты – это утилиты командной строки. Если используете vim, обратите внимание на плагин vim-ride.
Читать полностью »
Протокол для общения между iframe и основным окном браузера
2019-06-13 в 8:42, admin, рубрики: iframe, javascript, promise, TypeScript, window.open, window.opener, Блог компании Waves, Разработка веб-сайтовМногим разработчикам периодически требуется наладить общение между несколькими вкладками браузера: возможность посылать сообщения из одной в другую и получать ответ. Такая задача встала и перед нами.
Существуют стандартные решения вроде BroadcastChannel, однако поддержка в браузерах сейчас оставляет желать лучшего, поэтому мы решили реализовать свою библиотеку. Когда библиотека была готова, выяснилось, что такая функциональность уже не нужна, зато появилась другая задача: нужно было общаться между iframe и основным окном.
При ближайшем рассмотрении выяснилось, что две трети библиотеки при этом можно не менять, необходимо только немного порефакторить код. Библиотека представляет из себя скорей ПРОТОКОЛ общения, который может работать с текстовыми данными. Его можно применять во всех случаях, если есть возможность передавать текст (iframe, window.open, worker, вкладки браузера, WebSocket).
Как это работает
На данный момент в протоколе есть две функциональности: отправка сообщения и подписка на события. Любое сообщение в протоколе — это объект с данными. Главное поле этого объекта — поле type, которое говорит нам, что это за сообщение. Поле type — это enum со значениями:
«Игры на деньги вне блокчейна должны умереть»
2019-03-26 в 12:50, admin, рубрики: blockchain, Блог компании Waves, блокчейн, децентрализованные сети, игры для программистов, Криптовалюты, Программирование, разработка игрДмитрий Пичулин, известный под ником «deemru», стал победителем игры Fhloston Paradise, разработанной Tradisys на блокчейне Waves.
Чтобы победить в игре, игрок должен был сделать самую последнюю ставку во время периода из 60 блоков — до того, как ставку сделает другой игрок, обнулив тем самым счетчик. Победителю доставались все деньги, поставленные другими игроками.
Победу Дмитрию принес созданный им бот Patrollo. Дмитрий сделал всего восемь ставок по одному WAVES и в итоге выиграл 4700 WAVES (836300 руб.). В интервью Дмитрий рассказал о своем боте и перспективах игр на блокчейне.Читать полностью »
«Non-Blockchain Games Involving Money Must Die»
2019-03-26 в 12:50, admin, рубрики: blockchain, Блог компании Waves, блокчейн, децентрализованные сети, игры для программистов, Криптовалюты, Программирование, разработка игрDmitry Pichulin, known under the nick «deemru», won the game Fhloston Paradise, developed by Tradisys on the Waves blockchain. Dmitry's winning recipe was the bot Patrollo, which he created. The bot paid just eight 1 WAVES stakes for Dmitry and eventually won him 4,700 WAVES ($13,100). In this interview, Dmitry discusses his bot and prospects of blockchain games.
Читать полностью »
Смарт-ассеты Waves: «черные» и «белые» списки, интервальный трейдинг
2019-03-21 в 11:29, admin, рубрики: blockchain, RIDE, Блог компании Waves, блокчейн, децентрализованные сети, Криптовалюты, криптография, ПрограммированиеВ двух предыдущих статьях мы рассказали о смарт-аккаунтах и о том, как они могут использоваться для проведения аукционов и создания программ лояльности, а также помогают обеспечить прозрачность финансовых инструментов.
Сейчас мы рассмотрим смарт-ассеты и несколько кейсов их применения, включая замораживание активов и создание ограничений на транзакции по заданным адресам.
Читать полностью »