CXO - система обмена объектами на основе блокчейн

April 16, 2018 · View on GitHub

cxo logo

中文文档 | English

CXO - система обмена объектами на основе блокчейн

Build Status GoReportCard Telegram group link Google Groups

CXO - это система объектов, цель которой - обмен любыми объектами (включая дерево объектов, и обновления в этих деревьях и так далее). CXO - это библиотека низкого уровня разработаная для построения приложения поверх.

Быстрый старт и API документация

Смотри CXO wiki (рус.)

API документация

Смотри CXO wiki (англ.)

Установка и версии

Используйте dep для выбора версии CXO. Мастер ветка репозитория указывает на последний стабильный релиз.

Установить библиотеку

go get -u -t github.com/skycoin/cxo/...

И протестировать

go test -cover -race github.com/skycoin/cxo/...

Docker

docker run -ti --rm -p 8870:8870 -p 8871:8871 skycoin/cxo

Разработка

Модули

  • cmd - приложения
    • cxocli - CLI для администрирования CXO-ноды основаное на RPC (wiki/CLI (англ.)).
    • cxod - CXO-демон который принимает все подписки
  • cxoutils - базовые утилиты
  • data - интерфейсы базы данных, объекты и ошибки связанные с базой данных
    • data/cxds - хранилище типа ключ-значени для объектов, хранилище типа хэш -> данные, с некоторыми дополнениями
    • data/idxdb - хранилище для корнеывых объектов, подписок и так далее
    • data/tests - наборы тестов для интерфейсов бах данных
  • node - TCP-транспорт с функциями подписки и для получения объектов и обмена ими
    • node/log - логгер
    • node/msg - протокол (поверх протокола github.com/skycoin/net)
  • skyobject - ядро CXO
    • registry - схемы, регистры типов, типы данных CXO и так далее

И

Форматирование и стиль

Смотри CONTRIBUTING.md (англ.)

Что значит номер версии

Испоьзуется MAJOR.MINOR версии. Где MAJOR

  • API изменения
  • изменения протокола
  • изменения в базах данных (другой формат храниния)

и MINOR это

  • небольшие измениния API
  • поправки, исправления
  • улучшения

Таким образом файлы баз данных от разных MAJOR версий не совместимы. И ноды различных версий не могут коммуницировать.

Версии
1.0

не определена

2.1
  • git тэг: v2.1
  • коммит: d4e4ab573c438a965588a651ee1b76b8acbb3724

Gopkg.toml

[[constraint]]
name = "github.com/skycoin/cxo"
revision = "d4e4ab573c438a965588a651ee1b76b8acbb3724"

или

[[constraint]]
name = "github.com/skycoin/cxo"
version = "v2.1"
3.0
  • git тэг: v3.0
  • коммит: 8bc2f995634cd46d1266e2120795b04b025e0d62

Gopkg.toml

[[constraint]]
name = "github.com/skycoin/cxo"
revision = "8bc2f995634cd46d1266e2120795b04b025e0d62"

или

[[constraint]]
name = "github.com/skycoin/cxo"
version = "v3.0"

Зависимости

Для контроля версий и зависимостей используется dep. Dep помещает все зависимости в подпапку vendor/. Установите dep используя ссфлку выше и запустите

dep ensure

если возникли каки-то проблемы с компиляцией CXO.