Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[0.6.0] Support for EVMConnect and FireFly v1.1.x #60

Merged
merged 15 commits into from
Oct 3, 2022

Conversation

onelapahead
Copy link
Contributor

@onelapahead onelapahead commented Sep 30, 2022

Includes a new firefly-evmconnect chart so that multiple installations of EVMConnect can be made for different Ethereum-based chains (public or private).

The core firefly chart is then updated to include creating a single installation of evmconnect, and migrate the presumably existing default multi-party namespace to the new v1.1.x namespace config format (see the relevant FIR and migration guide) while allowing for new, additional namespaces to be defined with however many additional plugins may be needed (via config.extraDatabases, config.extraBlockchains, etc.). Similarly, if users created other multi-party namespaces in their v1.0.x installations of FireFly, they will be able to define and migrate them using config.extraNamespaces.

ethconnect support within the chart is then deprecated in favor of evmconnect. And lastly, the ability to connect to both evmconnect and a remote Fabconnect is supported with the choice of which to use for the default namespace. This allows users to create a multi-party namespace based on Fabric, but then have a gateway or additional multi-party namespace pointed to an Ethereum chain for example.

TODOs

  • ci/ files for EVMConnect
  • Further test
  • Finish docs

Signed-off-by: hfuss <haydenfuss@gmail.com>
Signed-off-by: hfuss <haydenfuss@gmail.com>
Signed-off-by: hfuss <haydenfuss@gmail.com>
Signed-off-by: hfuss <haydenfuss@gmail.com>
Signed-off-by: hfuss <haydenfuss@gmail.com>
Signed-off-by: hfuss <haydenfuss@gmail.com>
Signed-off-by: hfuss <haydenfuss@gmail.com>
Signed-off-by: hfuss <haydenfuss@gmail.com>
Signed-off-by: hfuss <haydenfuss@gmail.com>
Signed-off-by: hfuss <haydenfuss@gmail.com>
Signed-off-by: hfuss <haydenfuss@gmail.com>
Signed-off-by: hfuss <haydenfuss@gmail.com>
Signed-off-by: hfuss <haydenfuss@gmail.com>
@onelapahead
Copy link
Contributor Author

onelapahead commented Sep 30, 2022

Determined that fixing the E2E test and docs might have to be saved for separate PRs so that this can be merged to create a release candidate once Fabric testing is complete.

Copy link
Contributor

@drewmarshburn drewmarshburn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Commenting to indicate my review/approval.

…aces work togher

Signed-off-by: hfuss <haydenfuss@gmail.com>
@onelapahead
Copy link
Contributor Author

Using a local-values.yaml like the one below (secrets redacted) and remote Kaleido blockchain environments I confirmed I could run Fabric and Ethereum multi-party namespaces in tandem with a local EVMConnect and have the node register itself within both:

config:
  debugEnabled: true
  adminEnabled: true
  metricsEnabled: true

  organizationName: "blockhead-games"
  organizationKey: "0xe07f393b1a9b7d59c45007366035659f3e7f190f"
  fireflyContractAddress: "0x96a2a70e9e6afa390504e5bc5e9ac692df20aa07"
  fireflyContractFirstEvent: 26795

  postgresUrl: "postgres://postgres:firef1y@postgresql.default.svc:5432/firefly?sslmode=disable"

  ipfsApiUrl: "https://e0g6gnwjb3-e0cxqfizyi-ipfs.de0-aws.kaleido.io"
  ipfsGatewayUrl: "https://e0g6gnwjb3-e0cxqfizyi-ipfs.de0-aws.kaleido.io"
  ipfsApiUsername: "***"
  ipfsApiPassword: "***"
  ipfsGatewayUsername: "***"
  ipfsGatewayPassword: "***"

  fabconnectUrl: "https://e0qpgxl5hd-e0cbbhj3hz-connect.de0-aws-ws.kaleido.io/"
  fabconnectUsername: "***"
  fabconnectPassword: "***"
  fabconnectSigner: "blockhead-games"

  defaultBlockchainType: fabric

  extraNamespaces: |
    - name: default-eth
      remoteName: default-eth
      description: Default Ethereum namespace
      defaultKey: {{ .Values.config.organizationKey }}
      plugins:
        - database0
        - eth0
        - dataexchange0
        - sharedstorage0
      multiparty:
        enabled: true
        org:
          name: {{ .Values.config.organizationName }}
          description: The {{ .Values.config.organizationName }} organization
          key: {{ .Values.config.organizationKey }}
        node:
          name: {{ include "firefly.nodeName" . }}
          description: {{ include "firefly.nodeName" . }}
        contract:
          - location:
              address: {{ .Values.config.fireflyContractAddress }}
            firstEvent: {{ .Values.config.fireflyContractFirstEvent }}

core:
  metrics:
    serviceMonitor:
      enabled: true
  jobs:
    postgresMigrations:
      enabled: true
    registration:
      enabled: true
      ffNamespaces:
        - default
        - default-eth

dataexchange:
  certificate:
    enabled: true
    issuerRef:
      kind: ClusterIssuer
      name: selfsigned-ca

  tlsSecret:
    enabled: false

evmconnect:
  enabled: true

  config:
    connector: |
      url: https://e0g6gnwjb3-e0d6g52lhx-rpc.de0-aws.kaleido.io/
      headers: 
        Authorization: "Basic ***"

    policyEngine: |
      policyengine.simple:
        fixedGasPrice: "0"
        resubmitInterval: 5m
        gasOracle:
          mode: fixed

Screen Shot 2022-10-03 at 12 23 17 AM

Screen Shot 2022-10-03 at 12 22 58 AM

Screen Shot 2022-10-03 at 12 23 32 AM

Screen Shot 2022-10-03 at 12 23 41 AM

Screen Shot 2022-10-03 at 12 23 57 AM

@onelapahead onelapahead merged commit 8423a1f into hyperledger:main Oct 3, 2022
@onelapahead onelapahead deleted the v0.6.0-ff11-support branch October 3, 2022 04:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants