Одно репо, чтобы править ими всеми, одно репо Rust, чтобы их найти

Holochain Dev Pulse 04

Резюме

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

Особенности

1. Одно репо: мы консолидировали исходный код; это упростит вам работу и тестирование.
2. Проверка ссылок: это дает вам возможность решить, кто на что ссылается в вашем приложении.
3. Интерфейс приложения: серверная часть и интерфейс приложения теперь могут взаимодействовать друг с другом.
4. Holochain-nodejs: новый выпуск
5. Начало работы: напишите свое первое приложение Holochain Rust!

Подробности

Что нас ждет? Предварительный выпуск Holochain Developer Rust для DevCamp # 2 выйдет 29 ноября.

1. Одно репо: мы консолидировали исходный код; это упростит вам работу и тестирование.

Если вы смотрели наши репозитории Git, вы, вероятно, заметили, что многие из них теперь устарели / доступны только для чтения, а их код перемещен в репозиторий Holochain-rust.

Когда мы начали рефакторинг Holochain в Rust, мы знали, что будет несколько отдельных, но связанных проектов, которые составляют то, что разработчики и пользователи испытывают как Holochain - основная библиотека, инструменты разработчика, исполняемые файлы, слои пользовательского интерфейса и т. Д. , чтобы разделить несвязанные беседы и явно управлять зависимостями через подмодули, имело смысл поместить каждый проект в отдельный репозиторий Git.

По мере развития нашей кодовой базы мы обнаружили, что разделение репозиториев вызывает проблемы с нашими инструментами. Наш конвейер Travis CI дважды создавал некоторые кодовые базы, что привело к длительному времени сборки. Изменения в основной библиотеке могут привести к сбою тестов в репозитории app-spec-rust, но их нельзя будет заметить сразу. Улучшения, внесенные в один скрипт сборки, не коснутся других скриптов сборки. И, наконец, это означало, что нам пришлось добавить теги выпуска во многих разных местах.

Мы решили, что выгода от проведения одного крупного репо перевешивает затраты. Вы увидите, что эти репозитории теперь переместились в Holochain-rust:

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

2. Проверка ссылок: это дает вам возможность решить, кто на что ссылается в вашем приложении.

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

3. Интерфейс приложения: серверная часть и интерфейс приложения теперь могут взаимодействовать друг с другом.

Консолидация контейнеров и интерфейс WebSocket (реализация интерфейса позволяет локальным агентам общаться с запущенным экземпляром через WebSocket)

Как мы упоминали в Dev Pulse 02, мы работаем над отказом от реализации контейнера, hcshell, и переносом выполнения скриптов в Holochain-nodejs и интерфейса WebSocket в контейнер Rust. Мы разработали спецификацию API контейнера, которая позволяет создавать, уничтожать, запускать и останавливать экземпляры приложений.

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

Наша первая реализация интерфейса - это канал WebSocket. Самое интересное в этой реализации заключается в том, что она демонстрирует возможность запускать и разговаривать с несколькими приложениями на одном запущенном экземпляре Holochain. В версии-прототипе для каждого приложения нужно было запускать новый экземпляр (со своим собственным HTTP-портом). Новый интерфейс - ожидает рассмотрения; мы поговорим об этом подробнее в будущих выпусках Dev Pulse!

4. Holochain-nodejs: новый выпуск (0.1.22)

Теперь вы можете общаться со своими функциями zome, когда используете библиотеку node.js с реальными объектами JavaScript, вместо того, чтобы выполнять свою собственную (де) сериализацию JSON. Это упрощает ваши тесты, потому что вы не тратите символы на шаблон. Это может показаться мелочью, но мы стремимся облегчить жизнь разработчикам.

Теперь, когда весь наш код находится под одной крышей, мы отметили и опубликовали новую версию. Вы можете найти его на GitHub или NPM.

5. Приступайте к работе: Напишите свое первое приложение Holochain Rust!

Вы еще не читали эту статью?

Виллем Олдинг, один из наших разработчиков hApp, недавно опубликовал статью с практическими рекомендациями, которая поможет вам от установки нового Holochain Rust до написания ДНК для базового приложения для выполнения заданий.

Если вы нервничали по поводу перехода на Rust, вот вам руководство!

Мы ищем разработчиков на Rust!

Вы заинтересованы в том, чтобы помочь нам изменить среду распределенных вычислений и разработки приложений? Мы активно ищем опытных разработчиков на Rust. Ознакомьтесь с подробностями о Позиции разработчика Rust или Подать заявку здесь, чтобы присоединиться к нашей глобальной команде!

Внести вклад в документацию

Команда разработчиков Holochain глубоко привержена развитию культуры вклада и тому, чтобы участие было относительно простым. Мы хотели бы пригласить разработчиков внести свой вклад в документацию.

Книжные ссылки Holochain

HDK: https://holochain.github.io/rust-api/0.0.1/hdk/

Zomes: https://holochain.github.io/rust-api/0.0.1/hdk/macro.define_zome.html

Ржавчина: https://holochain.github.io/holochain-rust/

Вопросы разработчика?

Найдите ответы на часто задаваемые вопросы

Свяжитесь с сообществом разработчиков. Нам нужны ваши отзывы.

Думаете, мы можем улучшить наш контент? Дайте нам знать! Мы открыты для запросов и предложений по содержанию - публикуйте их в нашем Mattermost Chat, канале Holochain / Tech Q&A.