1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/hyperledger-cactus

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
BUILD.md 17 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 10.03.2025 23:00 649ad0f

Инструкции сборки Hyperledger Cacti

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

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

Проект использует TypeScript для backend и frontend компонентов.

Быстрый рабочий процесс разработчика / Итерации кода

Мы приложили много усилий, чтобы обеспечить быстрые итерации разработки (если вы считаете иначе, пожалуйста, сообщите об ошибке). При работе внутри фреймворка.Если вы замечаете, что слишком долго ждете завершения сборки, большую часть времени это можно исправить с помощью скрипта npm run watch, который автоматически пересобирает пакеты при их модификации (только те пакеты, которые были изменены, а не все сразу).Он также поддерживает повторное выполнение генератора OpenAPI при обновлении любых файлов спецификаций openapi.json, которые мы используем для описания наших конечных точек.

Скрипт npm run watch в действии:

Быстрый рабочий процесс разработчика / Итерации кода

Начало работы

macOS_Каждое отдельное условие применимо и к Intel, и к ARM Macs, если явно не указано иное. В случаях, где есть различия в процессе установки, они будут отмечены._*

Используйте заранее настроенную среду:

  • [Контейнер VSCode Docker](. /.devcontainer)

Или установите зависимости уровня ОС вручную:

Случайные проблемы, специфичные для Windows, не охваченные здесь

Мы рекомендуем использовать WSL2 или любую виртуальную машину с Linux (или реальный сервер). Мы наиболее часто тестируем на Ubuntu 20.04 LTS.

Настройка Cacti

  • Клонируйте репозиторий
git clone https://github.com/hyperledger/cactus.git

Специфика для Windows: ошибка "слишком длинный путь к файлу" при клонировании. Для исправления откройте PowerShell с правами администратора и выполните следующее:

git config --system core.longpaths true
  • Измените директорию до корневого проекта
cd cactus
  • Выполните эту команду для включения Corepack (Corepack включен по умолчанию со всеми установками Node.js, но пока является опциональной функцией).
npm run enable-corepack
  • Выполните начальную конфигурационную команду (может занять длительное время, более 10 минут на низкоспецифичном ноутбуке)
yarn run configure

На этом этапе все пакеты должны быть собраны для разработки.

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

Например, вы можете запустить тест конечной точки состояния через REST API с помощью этой команды:

npx tap --ts --timeout=600 packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/get-single-status-endpoint.test.ts
```*Вы также можете запустить сервер API* и проверить более сложные сценарии с произвольным списком плагинов, загруженных в Cactus. Это полезно, если вы намерены разрабатывать свой плагин либо как плагин, поддерживаемый Cactus, либо самостоятельно.

```sh
npm run generate-api-server-config

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

Самым интересным аспектом файла .config.json является массив плагинов, который принимает список имен пакетов плагинов и их опций (что может быть любым объектом JSON).

Обратите внимание, что для включения плагина достаточно указать его имя пакета npm. Это важно, так как это позволяет вам иметь свои собственные плагины в соответствующих, независимых репозиториях GitHub и пакетах npm, где вам не требуется получать явного одобрения от поддерживателей Cactus для создания/поддержки вашего плагина. При удовлетворении содержанием файла .config.json вы можете выполнить следующее:

npm run start:api-server
```После запуска сервера API в логах будет указано, что плагины были загружены,
и что API доступен по порту, который вы указали (по умолчанию 4000). Веб-интерфейс (Cockpit) деактивирован по умолчанию, 
но может быть активирован путём изменения значения свойства `cockpitEnabled` на `true`; 
он становится доступен через порт, указанный в вашем конфигурационном файле (по умолчанию 3000).> Возможно, вам потребуется вручную активировать паттерны CORS в конфигурационном файле.
Это может быть немного неудобно, но это то, с чем мы не можем пойти на компромиссы, хотя очень ценим опыт разработчиков.
Мы решили, что программное обеспечение должно быть "безопасным по умолчанию" во главу угла, а возможность кастомизации/уменьшения безопасности должна предоставляться как опциональная функция, а не начинаться с этого состояния.

На данном этапе, при запущенном сервере API, вы можете:
* Тестировать REST API непосредственно с помощью таких инструментов, как cURL или Postman
* Разрабатывать свои собственные приложения против него с использованием `Cactus API Client(s)`
* Создавать и тестировать свои собственные плагины

## Дерево решений скриптов сборки

Скрипт `npm run watch` должен покрывать 99% случаев работы над кодом Cactus и его повторной компиляции, но для оставшихся 1% вам придется работать с другими скриптами сборки. Обычно это требуется только тогда, когда вы добавляете новые зависимости (npm пакеты) как часть чего-то, что вы реализуете.

В Cactus существует множество различных скриптов сборки для предоставления участникам более детального контроля над теми частями фреймворка, которые они хотят собирать.> Вопрос: Почему такая сложность множества скриптов сборки?

> Ответ: Мы могли бы просто использовать один скрипт сборки, который будет собирать всё всегда, но это было бы кошмаром ждать после того, как вы изменили всего одну строку кода, например.Чтобы понять, какой скрипт можно использовать для повторной сборки Cactus, пройдите по следующему дереву решений (и помните, что у нас есть `npm run watch`):

![Дерево решений скриптов сборки](./docs/images/build-script-decision-tree-2021-03-06.png)

## Настройка SSH для использования upterm
Загрузите ваш открытый ключ на GitHub, если это ещё не сделано. Открытый ключ необходим для присоединения SSH-соединения для использования upterm. Для подробной инструкции см. [Создание нового SSH-ключа и его добавление в ssh-agent](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent).

Найдите файл `ci.yml` в папке `.github/workflows` и добавьте следующий код в этот файл:

```yaml
  - name: Настройка сессии upterm
    uses: lhotari/action-upterm@v1
    with:
      repo-token: ${{ secrets.GITHUB_TOKEN }}

Помните, что SSH-сессия upterm должна располагаться после шага проверки исходного кода (uses: actions/checkout@v4.1.1), чтобы гарантировать, что процесс CI не будет зависеть до выполнения шага отладки. Изменение файла ci.yml создаст новый шаг сборки в .github/workflows, который запустит новую сессию upterm. Для получения более подробной информации см. Отладка действий GitHub с помощью SSH.

Создание pull request для изменённого файла ci.yml позволит запустить тесты CI. Есть два способа перехода к CI.

  1. Перейдите к pull request и нажмите на вкладку checks.
  2. Перейдите к вкладке Actions внутри основного репозитория Hyperledger Cactus.Щелкните по CI Cactus workflow. В списке должны быть указаны новые задачи, которые вы создали под задачами build (ubuntu-22.04). Щелкните по новой задаче (так называемому вашему шагу сборки) и найдите SSH-сеанс в выпадающем меню Session setup upterm. Скопируйте команду SSH, которая начинается со слова ssh и заканчивается .dev (например, ssh **********:***********@uptermd.upterm.dev). Откройте вашу операционную систему и вставьте скопированную команду SSH, чтобы начать сессию upterm.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/hyperledger-cactus.git
git@api.gitlife.ru:oschina-mirror/hyperledger-cactus.git
oschina-mirror
hyperledger-cactus
hyperledger-cactus
main