Как установить только двоичные файлы Hyperledger Fabric? - PullRequest
0 голосов
/ 24 апреля 2019

Я хотел бы установить / загрузить двоичные файлы HLF без изображений и образцов тканей. Как мне это сделать?

Это то, что я пробовал до сих пор:

  1. Я следовал инструкции на https://hyperledger -fabric.readthedocs.io / en / release-1.4 / install.html , но при этом также устанавливаются образы (что нежелательно).
  2. Я заглянул в репозиторий hlf, но там отсутствует каталог / bin /, и поиск имени для 'contigtxgen' и других результатов не дал ничего, кроме того, что он использовался в других скриптах в репозитории
  3. гуглил при любом упоминании установки hlf только для двоичных файлов, без положительных результатов

Желаемым результатом будет команда cli, с помощью которой я могу запретить установку образов, или что-то подобное.

Ответы [ 2 ]

1 голос
/ 25 апреля 2019

Я также нахожусь в процессе настройки ткани без изображений докера.Эта ссылка очень мне помогла.Хотя он не показывает, как настроить orderer и узел на хост-компьютере.

Ниже приведены мои настройки и шаги, которые я выполнил, чтобы запустить orderer и peer на хост-компьютере (убедитесь, что вы установили все предварительные условия для hyperledger).Fabric): -

Сначала клонируйте хранилище Fabric и запустите make.

git clone https://github.com/hyperledger/fabric.git

//cd into fabric folder and run
make release

Приведенное выше сгенерирует двоичные файлы в папке release для вашего хост-компьютера.

fabric
 |
  -- release
    |
     -- linux-amd64
       |
        -- bin

Скопируйте эту папку bin в новую папку mynetwork и создайте следующие файлы конфигурации.

mynetwork
 |
  -- bin
  -- crypto-config.yaml
  -- configtx.yaml
  -- order.yaml
  -- core.yaml

Ниже приведены конфигурации, которые я использую.

crypto-config.yaml

OrdererOrgs:
  - Name: Orderer
    Domain: example.com
    Specs:
      - Hostname: orderer
        SANS:
          - "localhost"
          - "127.0.0.1"

PeerOrgs:
  - Name: Org1
    Domain: org1.example.com
    EnableNodeOUs: true
    Template:
      Count: 1
      SANS:
        - "localhost"
        - "127.0.0.1"
    Users:
      Count: 1

Затем откройте терминал (давайте назовем его терминал-1) и перейдите в папку mynetwork и запустите криптоген для генерации ресурсов и ключей.

./bin/cryptogen generate --config=./crypto-config.yaml

Приведенное выше создаст папку crypto-configв mynetwork, содержащем все сетевые активы, в данном случае для ordererOrganization и peerOrganization.

mynetwork
 |
  -- crypto-config
   |
    -- ordererOrganizations
    -- peerOrganizations

Далее необходимо создать configtx.yaml

Organizations:
  - &OrdererOrg
    Name: OrdererOrg
    ID: OrdererMSP
    MSPDir: crypto-config/ordererOrganizations/example.com/msp

    Policies:
      Readers:
        Type: Signature
        Rule: "OR('OrdererMSP.member')"
      Writers:
        Type: Signature
        Rule: "OR('OrdererMSP.member')"
      Admins:
        Type: Signature
        Rule: "OR('OrdererMSP.admin')"

  - &Org1
    Name: Org1MSP
    ID: Org1MSP
    MSPDir: crypto-config/peerOrganizations/org1.example.com/msp

    Policies:
      Readers:
        Type: Signature
        Rule: "OR('Org1MSP.admin', 'Org1MSP.peer', 'Org1MSP.client')"
      Writers:
        Type: Signature
        Rule: "OR('Org1MSP.admin', 'Org1MSP.client')"
      Admins:
        Type: Signature
        Rule: "OR('Org1MSP.admin')"

    AnchorPeers:
      - Host: 127.0.0.1
        Port: 7051


Capabilities:
  Channel: &ChannelCapabilities
    V1_3: true

  Orderer: &OrdererCapabilities
    V1_1: true

  Application: &ApplicationCapabilities
    V1_3: true

    V1_2: false

    V1_1: false


Application: &ApplicationDefaults
  Organizations:

  Policies:
    Readers:
      Type: ImplicitMeta
      Rule: "ANY Readers"
    Writers:
      Type: ImplicitMeta
      Rule: "ANY Writers"
    Admins:
      Type: ImplicitMeta
      Rule: "MAJORITY Admins"

  Capabilities:
    <<: *ApplicationCapabilities

Orderer: &OrdererDefaults
  OrdererType: solo
  Addresses:
    - orderer:7050
  BatchTimeout: 2s
  BatchSize:
    MaxMessageCount: 10
    AbsoluteMaxBytes: 99 MB
    PreferredMaxBytes: 512 KB

  Organizations:

  Policies:
    Readers:
      Type: ImplicitMeta
      Rule: "ANY Readers"
    Writers:
      Type: ImplicitMeta
      Rule: "ANY Writers"
    Admins: 
      Type: ImplicitMeta
      Rule: "MAJORITY Admins"
    BlockValidation:
      Type: ImplicitMeta
      Rule: "ANY Writers"

Channel: &ChannelDefaults

  Policies:
    Readers:
      Type: ImplicitMeta
      Rule: "ANY Readers"
    Writers:
      Type: ImplicitMeta
      Rule: "ANY Writers"
    Admins:
      Type: ImplicitMeta
      Rule: "MAJORITY Admins"

  Capabilities:
    <<: *ChannelCapabilities


Profiles:

  OneOrgOrdererGenesis:
    <<: *ChannelDefaults
    Orderer:
      <<: *OrdererDefaults
      Organizations:
        - *OrdererOrg
      Capabilities:
        <<: *OrdererCapabilities
    Consortiums:
      SampleConsortium:
        Organizations:
          - *Org1

  OneOrgChannel:
    Consortium: SampleConsortium
    <<: *ChannelDefaults
    Application:
      <<: *ApplicationDefaults
      Organizations:
        - *Org1
      Capabilities:
        <<: *ApplicationCapabilities

Затем на терминале-1 выполните следующие несколько команд в последовательности

export FABRIC_CFG_PATH=$PWD
mkdir channel-artifacts
./bin/configtxgen -profile OneOrgOrdererGenesis -channelID myfn-sys-channel -outputBlock ./channel-artifacts/genesis.block
export CHANNEL_NAME=mychannel
./bin/configtxgen -profile OneOrgChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID $CHANNEL_NAME
./bin/configtxgen -profile OneOrgChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org1MSP

Далее create orderer.yaml,и измените пути к сертификатам в соответствии с расположением вашего хоста и папки.

General:
  LedgerType: file
  ListenAddress: 127.0.0.1
  ListenPort: 7050

  TLS:
    Enabled: true
    PrivateKey: /home/fabric-release/mynetwork/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key
    Certificate: /home/fabric-release/mynetwork/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt
    RootCAs:
      - /home/fabric-release/mynetwork/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt
    ClientAuthRequired: false

  Keepalive:
    ServerMinInterval: 60s
    ServerInterval: 7200s
    ServerTimeout: 20s

  GenesisMethod: file

  GenesisProfile: OneOrgOrdererGenesis

  GenesisFile: channel-artifacts/genesis.block

  LocalMSPDIR: /home/fabric-release/mynetwork/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp

  LocalMSPID: OrdererMSP

  Authentication:
    TimeWindow: 15m

FileLedger:
  Location: /home/fabric-release/data/orderer
  Prefix: hyperledger-fabric-ordererledger

Operations:
  ListenAddress: 127.0.0.1:8443
  TLS:
    Enabled: true
    Certificate: /home/fabric-release/mynetwork/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt
    PrivateKey: /home/fabric-release/mynetwork/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key
    ClientAuthRequired: false
    ClientRootCAs: 
      - crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt

Запустите заказчик на терминале-1

./bin/orderer

Затем откройте другой терминал (Терминал-2) и перейдите кпапка mynetwork.Создайте core.yaml (аналогично вам потребуется изменить путь к сертификату и ключу).

peer:
  id: peer1
  networkId: myfn

  listenAddress: 127.0.0.1:7051

  address: 127.0.0.1:7051

  addressAutoDetect: false

  gomaxprocs: -1

  keepalive:
    minInterval: 60s

    client:
      interval: 60s
      timeout: 20s

    deliveryClient:
      interval: 60s
      timeout: 20s
  gossip:
    bootstrap: 127.0.0.1:7051
    externalEndpoint: 127.0.0.1:7051
    useLeaderElection: true
    orgLeader: false
  tls:
    enabled: true
    clientAuthRequired: false
    cert:
      file: crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt

    key:
      file: crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key

    rootcert:
      file: crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt

    clientRootCAs:
      file:
        - crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt


  authentication:
    timewindow: 15m

  fileSystemPath: /home/fabric-release/data

  mspConfigPath: /home/fabric-release/mynetwork/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp

  localMspId: Org1MSP

  client: 
    connTimeout: 3s

  deliveryclient:
    reconnectTotalTimeThreshold: 3600s
    connTimeout: 3s

  profile:
    enabled: false
    listenAddress: 0.0.0.0:6060

  handlers:
    authFilters:
      - name: DefaultAuth
      - name: ExpirationCheck
    decorators:
      - name: DefaultDecorator
    endorsers:
      escc:
        name: DefaultEndorsement
        library:
    validators:
      vscc:
        name: DefaultValidation
        library:

  discovery:
    enabled: true
    authCacheEnabled: true
    authCacheMaxSize: 1000
    authCachePurgeRetentionRatio: 0.75
    orgMembersAllowedAccess: false

vm:
  endpoint: unix:///var/run/docker.sock
  docker:
    tls:
      enabled: false
      ca:
        file:
      cert:
        file:
      key:
        file:
    attachStdout: false
    hostConfig:
      NetworkMode: host
      Dns:
        # - 192.168.0.1
      LogConfig:
        Type: json-file
        Config:
          max-size: "50m"
          max-file: "5"
      Memory: 2147483648

chaincode:
  id: 
    path:
    name:

  builder: $(DOCKER_NS)/fabric-ccenv:latest

  pull: true

  java:
    runtime: $(DOCKER_NS)/fabric-javaenv:$(ARCH)-1.4.1
    #runtime: $(DOCKER_NS)/fabric-javaenv:$(ARCH)-$(PROJECT_VERSION)
  startuptimeout: 300s
  executetimeout: 30s
  mode: net
  keepalive: 0
  system:
    cscc: enable
    lscc: enable
    escc: enable
    vscc: enable
    qscc: enable
  logging:
    level:  info
    shim:   warning
    format: '%{color}%{time:2006-01-02 15:04:05.000 MST} [%{module}] %{shortfunc} -> %{level:.4s} %{id:03x}%{color:reset} %{message}'

ledger:
  blockchain:

  state:
    stateDatabase: goleveldb
    totalQueryLimit: 100000
    couchDBConfig:
      couchDBAddress: 127.0.0.1:5984
      username:
      password:
      maxRetries: 3
      maxRetriesOnStartup: 12
      requestTimeout: 35s
      internalQueryLimit: 1000
      maxBatchUpdateSize: 1000
      warmIndexesAfterNBlocks: 1
      createGlobalChangesDB: false

  history:
    enableHistoryDatabase: true

Запустите одноранговый узел на терминале-2

./bin/peer node start

Затем откройте другой терминал (Терминал-3) и перейдите в папку mynetwork.Последовательно выполните следующие команды:

export CORE_PEER_MSPCONFIGPATH=/home/fabric-release/mynetwork/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
export CORE_PEER_ADDRESS=127.0.0.1:7051
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=/home/fabric-release/mynetwork/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export CHANNEL_NAME=mychannel

Создать канал

/bin/peer channel create -o 127.0.0.1:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls --cafile /home/fabric-release/mynetwork/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem 

Присоединиться к каналу

./bin/peer channel join -b mychannel.block

Если вы сделали это так далеко, ваша сеть работает, и вы можете начать устанавливать цепные коды.Я все еще нахожусь в процессе экспериментирования цепных кодов.Тем не менее, я надеюсь, что это поможет.

0 голосов
/ 25 апреля 2019

Если вы загружаете этот скрипт (и устанавливаете разрешение на выполнение):

https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh

Затем запустите скрипт с -h, вы увидите опции для подавления загрузки бинарных файлов или Dockerизображения.

...