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

OSCHINA-MIRROR/xujf-fcc

Клонировать/Скачать
README.md 8.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 02.12.2024 08:19 1d9c14d

Использование суперкниги для построения прототипа блокчейна на примере регистрации недвижимости

О бизнес-процессе

Сеть на основе сертификатов доступа к альянсу блоков.

Схема топологии сети

График бизнес-процессов:

График бизнес-процессов

О суперкниге

Концепции блокчейна, суперкниги и смарт-контрактов можно найти в документации официального сайта https://hyperledger-fabric.readthedocs.io/en/release-1.4/.

Об этом примере

  • Этот пример предназначен только для проверки технической осуществимости и не достигает уровня готовности продукта;
  • В этом примере используются три организации, по два узла в каждой, для нотариального заверения, налогообложения и управления недвижимостью в качестве узлов поддержки; три смарт-контракта (контракт на подпись, налоговая декларация, свидетельство о праве собственности) выполняются в одном канале; база данных состояний использует CouchDB;
  • Пример DEMO: http://xujf000.tk:28888/ (VPS, 1CPU 1G MEM).

Как построить блокчейн и развернуть смарт-контракт

В этом примере используется версия 1.4.3. Следующие шаги выполняются на centos7 и применимы к ubuntu/MACOS/WINDOWS и т.д.:

  1. Установите среду (go1.3 или выше, docker-ce,docker-compose,git):
cd /opt
wget https://dl.google.com/go/go1.13.4.linux-amd64.tar.gz
tar zxvf go*.gz
yum install -y yum-utils   device-mapper-persistent-data   lvm2
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-compose git
  1. Загрузите официальный образец суперкниги:

Если у вас есть лестница, загрузите официальный скрипт и выполните его:

curl -sSL http://bit.ly/2ysbOFE | bash -s -- 1.4.3 1.4.3 0.4.15

Если лестницы нет, запустите уже загруженный скрипт:

./1-1.hy-sample.sh -- 1.4.3 1.4.3 0.4.15 

Он создаст каталог fabric-samples в текущем каталоге /opt и автоматически загрузит инструменты командной строки и образы.

  1. Добавьте fabric-samples/bin и /opt/go/bin в локальный PATH.

  2. Загрузите этот пример:

Перейдите в каталог /opt/fabric-samples и клонируйте репозиторий:

git clone https://gitee.com/xujf/fcc.git
cd fcc
  1. Запустите пример сети и создайте сеть блокчейна (две организации, два узла в каждой):
chmod +x *.sh
./1-2.startNetwork.sh

После завершения выполнения отобразится следующее сообщение:

========= All GOOD, BYFN execution completed =========== 
  1. Добавьте третью организацию с двумя узлами:
./2.addOrg3.sh

После выполнения отобразится следующее сообщение:

========= Org3 is now halfway onto your first network =========
  1. Разверните государственные смарт-контракты и создайте экземпляры:
./3-1.installNetcon.sh   #контракт: контракт на подпись
./3-2.installEstateBook.sh   #контракт: свидетельство о праве собственности
./3-3.installEstateTax.sh    #контракт: налоговая декларация

После выполнения отобразится следующее сообщение:

Get instantiated chaincodes on channel mychannel:
Name: estatebook, Version: 1.0, Path: github.com/chaincode/estatebook, Escc: escc, Vscc: vscc
Name: estatetax, Version: 1.0, Path: github.com/chaincode/estatetax, Escc: escc, Vscc: vscc
Name: netcon, Version: 1.0, Path: github.com/chaincode/netcon, Escc: escc, Vscc: vscc
  1. Скомпилируйте серверную часть. Код находится в appcode/fccserver/src, вы можете скомпилировать его самостоятельно или использовать готовый исполняемый файл.
chmod +x appcode/fccserver/src/fccserver

Запустите фоновый контейнер:

./4.startAppcli.sh
docker logs -f appcli

При успешном запуске отобразится следующее сообщение:

[fcc-server] 2019/12/12 03:03:55 system db initiated successfully.
[fcc-server] 2019/12/12 03:03:56 Chaincode client initialed successfully.
[fcc-server] 2019/12/12 03:03:56 Server started on  :1206
  1. Скомпилируйте и разверните интерфейс. Интерфейс использует VUE, но вы также можете использовать другие интерфейсные фреймворки или HTML. Используйте GINNIX или другой веб-сервер для развертывания скомпилированного кода интерфейса. Обратите внимание, что в настоящее время не используются функции входа и разрешений.

Первая операция с данными в цепочке потребует от серверной части блокчейна создать образ и запустить контейнеры в соответствии с количеством нотариальных узлов и контрактов (в данном случае 3 * 2), что займёт около 30–60 секунд. После этого каждая последующая операция в цепочке будет занимать менее 1 секунды, а запрос — менее 1 секунды.

  1. Перестройте фоновый контейнер или перестройте всю сеть блокчейна:
./4-0.stopAppcli.sh         #перестроить фоновый контейнер
./0.stopNetwork.sh        #перестроить всю сеть блокчейна

Проблемы, которые необходимо учитывать при переходе к продукту

  • Нотариальные узлы и узлы запросов: операции изменения данных контракта (создание, изменение, удаление) требуют нескольких нотариальных узлов (стратегия AND или OR), а узлы запросов могут находиться в том же канале или другом канале;
  • Консенсус: требуется KAFKA+ZK кластер или ETCD кластер;
  • Сертификаты и разрешения: управление выдачей сертификатов с различными разрешениями через CA кластеры и MSP, рассмотрите возможность использования сертификатов или других методов для реализации контроля доступа на основе RBAC;
  • Если возможно, используйте отечественные алгоритмы шифрования.

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

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

1
https://api.gitlife.ru/oschina-mirror/xujf-fcc.git
git@api.gitlife.ru:oschina-mirror/xujf-fcc.git
oschina-mirror
xujf-fcc
xujf-fcc
master