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

fix(prometheus): metrics.ts leaks to global registry #1202

Closed
petermetz opened this issue Aug 10, 2021 · 0 comments · Fixed by #1203
Closed

fix(prometheus): metrics.ts leaks to global registry #1202

petermetz opened this issue Aug 10, 2021 · 0 comments · Fixed by #1203
Assignees
Labels
API_Server bug Something isn't working dependencies Pull requests that update a dependency file
Milestone

Comments

@petermetz
Copy link
Contributor

Describe the bug

The metrics.ts file that we have for all the plugin's metrics constructs a new Metrics object at import time which then defaults to registering the metric in the global registry of prom-client by default.

This causes crashes when separate versions of the same metrics.ts file are imported in a scenario were the API server imports plugins from a different directory (this issue is coming from the branch where I'm working on plugin sandboxing via the live-plugin-manager).

To Reproduce

Run this test: packages/cactus-cmd-api-server/src/test/typescript/integration/remote-plugin-imports.test.ts
With different plugin versions being present and then watch it crash with prom-client complaining that you are duplicating the metrics in the global scope.

Expected behavior

No crash.

Logs/Stack traces

N/A

Screenshots

NA

Cloud provider or hardware configuration:

Dev machine

Operating system name, version, build:

NA

Hyperledger Cactus release version or commit (git rev-parse --short HEAD):

0.7.0

Hyperledger Cactus Plugins/Connectors Used

None, just the keychain vault plugin.

Additional context

NA

@petermetz petermetz added bug Something isn't working API_Server dependencies Pull requests that update a dependency file labels Aug 10, 2021
@petermetz petermetz added this to the v0.8.0 milestone Aug 10, 2021
@petermetz petermetz self-assigned this Aug 10, 2021
petermetz added a commit to petermetz/cacti that referenced this issue Aug 10, 2021
…i#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
petermetz added a commit to petermetz/cacti that referenced this issue Aug 10, 2021
…i#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
petermetz added a commit to petermetz/cacti that referenced this issue Aug 10, 2021
…i#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
petermetz added a commit that referenced this issue Aug 12, 2021
1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes #1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
hanxu12 pushed a commit to hanxu12/cactus that referenced this issue Aug 14, 2021
…i#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
Signed-off-by: hxlaf <xuhan@lafayette.edu>
maramih pushed a commit to maramih/cactus that referenced this issue Aug 17, 2021
…i#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
maramih pushed a commit to maramih/cactus that referenced this issue Aug 17, 2021
…i#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
maramih pushed a commit to maramih/cactus that referenced this issue Sep 13, 2021
…i#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
maramih pushed a commit to maramih/cactus that referenced this issue Sep 19, 2021
…i#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
maramih pushed a commit to maramih/cactus that referenced this issue Sep 22, 2021
…i#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
maramih pushed a commit to maramih/cactus that referenced this issue Sep 27, 2021
…i#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
maramih pushed a commit to maramih/cactus that referenced this issue Oct 5, 2021
…i#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
maramih pushed a commit to maramih/cactus that referenced this issue Oct 7, 2021
…i#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
maramih pushed a commit to maramih/cactus that referenced this issue Oct 17, 2021
…i#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
RafaelAPB pushed a commit to RafaelAPB/blockchain-integration-framework that referenced this issue Mar 9, 2022
…i#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
RafaelAPB pushed a commit to RafaelAPB/blockchain-integration-framework that referenced this issue Mar 9, 2022
…i#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
RafaelAPB pushed a commit to RafaelAPB/blockchain-integration-framework that referenced this issue Mar 11, 2022
…i#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
RafaelAPB pushed a commit to RafaelAPB/blockchain-integration-framework that referenced this issue Apr 6, 2022
…i#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
RafaelAPB pushed a commit to RafaelAPB/blockchain-integration-framework that referenced this issue May 10, 2022
…i#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
RafaelAPB pushed a commit to RafaelAPB/blockchain-integration-framework that referenced this issue May 17, 2022
…i#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
petermetz added a commit to RafaelAPB/blockchain-integration-framework that referenced this issue Jul 1, 2022
…i#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
RafaelAPB pushed a commit to RafaelAPB/blockchain-integration-framework that referenced this issue Jul 19, 2022
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
Signed-off-by: Peter Somogyvari

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry hyperledger-cacti#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
RafaelAPB pushed a commit to RafaelAPB/blockchain-integration-framework that referenced this issue Jul 19, 2022
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
Signed-off-by: Peter Somogyvari

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry hyperledger-cacti#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
RafaelAPB pushed a commit to RafaelAPB/blockchain-integration-framework that referenced this issue Aug 2, 2022
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry hyperledger-cacti#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
RafaelAPB pushed a commit to RafaelAPB/blockchain-integration-framework that referenced this issue Aug 2, 2022
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry hyperledger-cacti#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
RafaelAPB pushed a commit to RafaelAPB/blockchain-integration-framework that referenced this issue Aug 3, 2022
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry hyperledger-cacti#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
brunoffmateus pushed a commit to brunoffmateus/blockchain-integration-framework that referenced this issue Apr 2, 2024
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry hyperledger-cacti#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
RafaelAPB pushed a commit to brunoffmateus/blockchain-integration-framework that referenced this issue Apr 3, 2024
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry hyperledger-cacti#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
brunoffmateus pushed a commit to brunoffmateus/blockchain-integration-framework that referenced this issue Apr 12, 2024
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry hyperledger-cacti#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
brunoffmateus pushed a commit to brunoffmateus/blockchain-integration-framework that referenced this issue Apr 15, 2024
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry hyperledger-cacti#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
brunoffmateus pushed a commit to brunoffmateus/blockchain-integration-framework that referenced this issue Apr 16, 2024
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry hyperledger-cacti#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
brunoffmateus pushed a commit to brunoffmateus/blockchain-integration-framework that referenced this issue Apr 24, 2024
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry hyperledger-cacti#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
brunoffmateus pushed a commit to brunoffmateus/blockchain-integration-framework that referenced this issue May 22, 2024
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry hyperledger-cacti#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
RafaelAPB pushed a commit that referenced this issue Jun 4, 2024
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry #1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes #1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
brunoffmateus pushed a commit to brunoffmateus/blockchain-integration-framework that referenced this issue Jul 14, 2024
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry hyperledger-cacti#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
brunoffmateus pushed a commit to brunoffmateus/blockchain-integration-framework that referenced this issue Jul 25, 2024
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry hyperledger-cacti#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
RafaelAPB pushed a commit that referenced this issue Jul 26, 2024
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry #1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes #1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
RafaelAPB pushed a commit that referenced this issue Aug 9, 2024
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry #1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes #1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
RafaelAPB pushed a commit that referenced this issue Aug 14, 2024
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry #1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes #1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
RafaelAPB pushed a commit that referenced this issue Aug 23, 2024
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry #1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes #1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
petermetz pushed a commit to LordKubaya/cacti_fork that referenced this issue Aug 29, 2024
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry hyperledger-cacti#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
petermetz pushed a commit to petermetz/cacti that referenced this issue Sep 30, 2024
Squashed together the commits on the satp-dev branch to make it easier to
rebase onto upstream/main.

The list of commits that were squashed:

feat(satp-Hermes): gateway refactor WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(bungee): add skeleton for bungee

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(plugin-satp-hermes): update messages formats SATP core version 2.0.0 OpenAPI

* created new messages in openAPI definition

feat(bungee): fix bungee dependencies

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(SATP-Hermes): enable decorators needed for gateway coordinator checks

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(SATP-Hermes): update package.json

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): remove kotlin sdk, add protobuffer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): refactor naming

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure improvements

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): update yarn.lock and clean up

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(test-tooling): fix types of streams: use NodeJS.ReadableStream

1. The container management library that we use in the test infrastructure
(called dockerode) is expecting streams that are defined in the global
namespace of the `@types/node` library, e.g. the standard library of NodeJS
itself.
2. Previously we were using the "streams" package to provide type information
to the streams that we were passing around to dockerode and it was working
fine, but after some changes that seem unrelated this has broken the
compilation process.
3. The mentioned changes are not yet on the main branch, but we expect
them to be there soon and so this change is laying the groundwork for that
by pre-emptively fixing the broken build's root cause which is that the
test-tooling package does not declare it's typings related dependencies
correctly: It implicitly uses the NodeJS standard library's types but
so far had not declared them on the package level.
4. This change is therefore to rectify the issue of the `@types/node`
dependency missing from the test-tooling package and also the refactoring
of some of the test ledger classes which were relying on the `streams`
builtin package instead of correctly using the NodeJS.ReadableStream global.
5. Earlier the reasoning for this was that we try to avoid pulling in
types from the global scope because we try to avoid any sort of dependency
on the global scope in general. Once we have proof though that this is
causing issues with the build, then we must give up the principle for
practical reasons (and only in the minimum viable scope, e.g. this does
not change the fact that everywhere else in the codebase we should still
do our best to avoid using the global scoped classes, types, functions,
etc..).

Thank you to @AndreAugusto11 and @RafaelAPB for pointing out this issue
through the pull request of his that is currently being worked on at the
time of this writing:
RafaelAPB#72

Related to but does not address hyperledger-cacti#2811

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

refactor(SATP-Hermes): remove unused packages

* updated openapi version
* updated bungee plugin version to 2.0.0-alpha.2

Co-authored-by: Peter Somogyvari <peter.somogyvari@accenture.com>

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix(satp-hermes): fix build bugs and hanging tests

Co-authored-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Co-authored-by: Peter Somogyvari <peter.somogyvari@accenture.com>
Co-authored-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(satp-hermes): fix hanging tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): fix cspell and lint

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

feat(satp-hermes): add API1 layer WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): BLO API specification

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): add BLO layer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): fix status endpoint and spec

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): fix lint

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

ci(satp-hermes): rebase and update ci

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): update BLO specification

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(satp-hermes): migrate BLO open api spec from json to yml

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): update Go BLO SDK generation

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): update BLO specification

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): add health check endpoint to BLO spec

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): re-add open-api json files

The canonical source for the API definition are the yaml files located at packages/cactus-plugin-satp-hermes/src/main/yml/openapi.yml, due to its better readability compared to json. When yarn codegen is ran within the cactus-plugin-satp-hermes package, the json files are generated from the yaml.

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

 feat(satp-hermes): remove deprecated spec

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): add gateway coordinator WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(bungee): add skeleton for bungee

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(plugin-satp-hermes): update messages formats SATP core version 2.0.0 OpenAPI

* created new messages in openAPI definition

feat(bungee): fix bungee dependencies

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(SATP-Hermes): enable decorators needed for gateway coordinator checks

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(SATP-Hermes): update package.json

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): remove kotlin sdk, add protobuffer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): refactor naming

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure improvements

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): update yarn.lock and clean up

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(test-tooling): fix types of streams: use NodeJS.ReadableStream

1. The container management library that we use in the test infrastructure
(called dockerode) is expecting streams that are defined in the global
namespace of the `@types/node` library, e.g. the standard library of NodeJS
itself.
2. Previously we were using the "streams" package to provide type information
to the streams that we were passing around to dockerode and it was working
fine, but after some changes that seem unrelated this has broken the
compilation process.
3. The mentioned changes are not yet on the main branch, but we expect
them to be there soon and so this change is laying the groundwork for that
by pre-emptively fixing the broken build's root cause which is that the
test-tooling package does not declare it's typings related dependencies
correctly: It implicitly uses the NodeJS standard library's types but
so far had not declared them on the package level.
4. This change is therefore to rectify the issue of the `@types/node`
dependency missing from the test-tooling package and also the refactoring
of some of the test ledger classes which were relying on the `streams`
builtin package instead of correctly using the NodeJS.ReadableStream global.
5. Earlier the reasoning for this was that we try to avoid pulling in
types from the global scope because we try to avoid any sort of dependency
on the global scope in general. Once we have proof though that this is
causing issues with the build, then we must give up the principle for
practical reasons (and only in the minimum viable scope, e.g. this does
not change the fact that everywhere else in the codebase we should still
do our best to avoid using the global scoped classes, types, functions,
etc..).

Thank you to @AndreAugusto11 and @RafaelAPB for pointing out this issue
through the pull request of his that is currently being worked on at the
time of this writing:
RafaelAPB#72

Related to but does not address hyperledger-cacti#2811

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

refactor(SATP-Hermes): remove unused packages

* updated openapi version
* updated bungee plugin version to 2.0.0-alpha.2

Co-authored-by: Peter Somogyvari <peter.somogyvari@accenture.com>

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix(satp-hermes): re-add open-api json files

The canonical source for the API definition are the yaml files located at packages/cactus-plugin-satp-hermes/src/main/yml/openapi.yml, due to its better readability compared to json. When yarn codegen is ran within the cactus-plugin-satp-hermes package, the json files are generated from the yaml.

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

ci(satp-hermes): re-activate satp-hermes ci

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fixup: update package json, ci, yarn lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): add gateway coordinator WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(bungee): add skeleton for bungee

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(plugin-satp-hermes): update messages formats SATP core version 2.0.0 OpenAPI

* created new messages in openAPI definition

feat(bungee): fix bungee dependencies

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(SATP-Hermes): enable decorators needed for gateway coordinator checks

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(SATP-Hermes): update package.json

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): remove kotlin sdk, add protobuffer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): refactor naming

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure improvements

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): update yarn.lock and clean up

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(test-tooling): fix types of streams: use NodeJS.ReadableStream

1. The container management library that we use in the test infrastructure
(called dockerode) is expecting streams that are defined in the global
namespace of the `@types/node` library, e.g. the standard library of NodeJS
itself.
2. Previously we were using the "streams" package to provide type information
to the streams that we were passing around to dockerode and it was working
fine, but after some changes that seem unrelated this has broken the
compilation process.
3. The mentioned changes are not yet on the main branch, but we expect
them to be there soon and so this change is laying the groundwork for that
by pre-emptively fixing the broken build's root cause which is that the
test-tooling package does not declare it's typings related dependencies
correctly: It implicitly uses the NodeJS standard library's types but
so far had not declared them on the package level.
4. This change is therefore to rectify the issue of the `@types/node`
dependency missing from the test-tooling package and also the refactoring
of some of the test ledger classes which were relying on the `streams`
builtin package instead of correctly using the NodeJS.ReadableStream global.
5. Earlier the reasoning for this was that we try to avoid pulling in
types from the global scope because we try to avoid any sort of dependency
on the global scope in general. Once we have proof though that this is
causing issues with the build, then we must give up the principle for
practical reasons (and only in the minimum viable scope, e.g. this does
not change the fact that everywhere else in the codebase we should still
do our best to avoid using the global scoped classes, types, functions,
etc..).

Thank you to @AndreAugusto11 and @RafaelAPB for pointing out this issue
through the pull request of his that is currently being worked on at the
time of this writing:
RafaelAPB#72

Related to but does not address hyperledger-cacti#2811

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

refactor(SATP-Hermes): remove unused packages

* updated openapi version
* updated bungee plugin version to 2.0.0-alpha.2

Co-authored-by: Peter Somogyvari <peter.somogyvari@accenture.com>

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(satp-hermes): add protobuf gateway refactor

Authored by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): satp proto update (hyperledger-cacti#3147)

* feat(satp-hermes): update protos

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

* feat(satp-hermes): protos

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

* feat(satp-hermes): protos

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

---------

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): update protos

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): core stage services message names update

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): gRPC server start implementation and gateway_refactor in handlers

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): satp proto update

also updates yarn lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): update yarn, comment method

fix(satp-hermes): update yarn

ci(satp-hermes): fix bungee and satp ci

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(satp-hermes): delete Kotlin SDK, add Go SDK

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(satp-hermes): add gateway client Go SDK

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): re-add message proto

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fixup(satp-hermes): remove test protos and endpoints

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): gRPC services draft implementation

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): stage1-service and handler refactored

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes):stage2-service and handler refactored server-side

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): service handlers server

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): client stage handlers refactor

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fixup(satp-hermes): add skeleton for satp-bridge

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(satp-hermes): rename generated code for gateway and blo

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): fix knex path for old gateway tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): update protos and services

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix: refactor services and handlers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(bungee-hermes): viewProof & ethereum strategy

* Views have new attribute viewProof
* This attribute has the roots of all state proofs and transaction
proofs in the view
* Added new endpoint to verify integrity of view proofs
* Created strategy for bungee-hermes to support the ethereum-connector
* Created new test for the strategy-ethereum, and altered the API test
to test the new viewProof endpoint
* Updated documentation to reflect new changes.
* Fixes in Fabric Strategy, stateProofs and error handling

Co-authored-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Co-authored-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

Signed-off-by: eduv09 <eduardovasques10@tecnico.ulisboa.pt>

fix: refactor services and handlers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix: eslint all

Signed-off-by: Rafael Belchior <rbelchior@blockdaemon.com>

chore(satp-hermes): rebase with cacti main

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): satp development continuation and implementation satp protocol (hyperledger-cacti#3397)

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): fabric and besu bridges, wrapper contracts with ontology (hyperledger-cacti#3382)

feat(satp-hermes): added forge to compile solidity contracts

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix: rebase with main

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): added generated code (hyperledger-cacti#3443)

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): run sequencial instead of paralel (hyperledger-cacti#3445)

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(cc-tx-visualization): initial commit

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry hyperledger-cacti#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(cc-tx-visualization): capture transactional data with RxJS

The plugin now utilizes RxJS instead of RabbitMQ in transaction monitoring.
ReplaySubjects store and emit observed transactional data to subscribers.

fix(cc-tx-visualization): rebase latest version

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

squash! - migrate a test case to Fabric v2.5.6 LTS AIO

This is just a snippet of a change from the pair programming
call with Bruno, it can be safely squashed, no worries.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
Signed-off-by: Bruno Mateus <brumat315@gmail.com>

feat(cc-tx-visualization): ccmodel serialization with PM4PY

The plugin now creates the ccmodel for conformance checking with PM4PY.

Signed-off-by: Bruno Mateus <brumat315@gmail.com>

feat(hephaestus): analyse transactions using hephaestus

The plugin is now able to:
Create a Cross-Chain Model based on monitored transactions
Compare new transactions against the model and detect non-conformance

Signed-off-by: Bruno Mateus <brumat315@gmail.com>

feat(satp-hermes): add skeleton for stage0

Signed-off-by: eduv09 <eduardovasques10@tecnico.ulisboa.pt>

feat(satp-hermes): services tests

bug correction

session functionalities

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): errors file and other fixes

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): fix packages versions

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): add satp-plugin cli (wip)

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(satp-hermes): fix satp build process

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): satp-manager and gol refactor

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): fix handler and service intialization

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): service errors and some stage bugs

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): satp rejection

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): handler bug correction and errors

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): bridge erros and log messages

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): some error fixes

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): some fixes requested

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): stage0, bug fixing and test e2e

Co-authored-by: eduv09 <eduardovasques10@tecnico.ulisboa.pt>
Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): error messages in stage0

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): service tests added stage0 and error handling

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): test e2e

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): fix bugs and test e2e working transfer

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(stap-hermes): bugs and 2 gateway test

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): openApi transact implementation

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): improve admin endpoints

Signed-off-by: Eduardo Vasques <eduardovasques10@tecnico.ulisboa.pt>

refactor(cbdc-example): added gateways and contracts

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

refactor(cbdc-example): update with new satp-plugin

Signed-off-by: eduv09 <eduardovasques10@tecnico.ulisboa.pt>

refactor(cbdc-example): fixes

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>
<

refactor(cbdc-app): frontend update and some fixes

Signed-off-by: Eduardo Vasques <eduardovasques10@tecnico.ulisboa.pt>

fix(satp-hermes): bug fixing

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(cbdc-example): bug fixing

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(cbdc): final fixes

Signed-off-by: Eduardo Vasques <eduardovasques10@tecnico.ulisboa.pt>

fix(cbdc-example): remove unecessary variable

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): remove unessary logs

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(cbdc-example): docker ports

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

docs(example-cbdc): update frontend to match new functionality
* Separated Transfer functionality into local blockchain transfers
and cross-chain transfers
* Added new table with the state of token approvals made to the bridge
* Highlight cross-chain functionality with red coloring
* add helper page with instructions on how to use app

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

docs(cbdc-example): remove unused variables and unused code

* Created new Docker Image and updated README.md

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
petermetz pushed a commit to petermetz/cacti that referenced this issue Sep 30, 2024
Squashed together the commits on the satp-dev branch to make it easier to
rebase onto upstream/main.

The list of commits that were squashed:

feat(satp-Hermes): gateway refactor WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(bungee): add skeleton for bungee

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(plugin-satp-hermes): update messages formats SATP core version 2.0.0 OpenAPI

* created new messages in openAPI definition

feat(bungee): fix bungee dependencies

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(SATP-Hermes): enable decorators needed for gateway coordinator checks

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(SATP-Hermes): update package.json

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): remove kotlin sdk, add protobuffer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): refactor naming

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure improvements

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): update yarn.lock and clean up

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(test-tooling): fix types of streams: use NodeJS.ReadableStream

1. The container management library that we use in the test infrastructure
(called dockerode) is expecting streams that are defined in the global
namespace of the `@types/node` library, e.g. the standard library of NodeJS
itself.
2. Previously we were using the "streams" package to provide type information
to the streams that we were passing around to dockerode and it was working
fine, but after some changes that seem unrelated this has broken the
compilation process.
3. The mentioned changes are not yet on the main branch, but we expect
them to be there soon and so this change is laying the groundwork for that
by pre-emptively fixing the broken build's root cause which is that the
test-tooling package does not declare it's typings related dependencies
correctly: It implicitly uses the NodeJS standard library's types but
so far had not declared them on the package level.
4. This change is therefore to rectify the issue of the `@types/node`
dependency missing from the test-tooling package and also the refactoring
of some of the test ledger classes which were relying on the `streams`
builtin package instead of correctly using the NodeJS.ReadableStream global.
5. Earlier the reasoning for this was that we try to avoid pulling in
types from the global scope because we try to avoid any sort of dependency
on the global scope in general. Once we have proof though that this is
causing issues with the build, then we must give up the principle for
practical reasons (and only in the minimum viable scope, e.g. this does
not change the fact that everywhere else in the codebase we should still
do our best to avoid using the global scoped classes, types, functions,
etc..).

Thank you to @AndreAugusto11 and @RafaelAPB for pointing out this issue
through the pull request of his that is currently being worked on at the
time of this writing:
RafaelAPB#72

Related to but does not address hyperledger-cacti#2811

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

refactor(SATP-Hermes): remove unused packages

* updated openapi version
* updated bungee plugin version to 2.0.0-alpha.2

Co-authored-by: Peter Somogyvari <peter.somogyvari@accenture.com>

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix(satp-hermes): fix build bugs and hanging tests

Co-authored-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Co-authored-by: Peter Somogyvari <peter.somogyvari@accenture.com>
Co-authored-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(satp-hermes): fix hanging tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): fix cspell and lint

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

feat(satp-hermes): add API1 layer WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): BLO API specification

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): add BLO layer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): fix status endpoint and spec

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): fix lint

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

ci(satp-hermes): rebase and update ci

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): update BLO specification

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(satp-hermes): migrate BLO open api spec from json to yml

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): update Go BLO SDK generation

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): update BLO specification

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): add health check endpoint to BLO spec

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): re-add open-api json files

The canonical source for the API definition are the yaml files located at packages/cactus-plugin-satp-hermes/src/main/yml/openapi.yml, due to its better readability compared to json. When yarn codegen is ran within the cactus-plugin-satp-hermes package, the json files are generated from the yaml.

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

 feat(satp-hermes): remove deprecated spec

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): add gateway coordinator WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(bungee): add skeleton for bungee

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(plugin-satp-hermes): update messages formats SATP core version 2.0.0 OpenAPI

* created new messages in openAPI definition

feat(bungee): fix bungee dependencies

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(SATP-Hermes): enable decorators needed for gateway coordinator checks

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(SATP-Hermes): update package.json

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): remove kotlin sdk, add protobuffer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): refactor naming

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure improvements

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): update yarn.lock and clean up

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(test-tooling): fix types of streams: use NodeJS.ReadableStream

1. The container management library that we use in the test infrastructure
(called dockerode) is expecting streams that are defined in the global
namespace of the `@types/node` library, e.g. the standard library of NodeJS
itself.
2. Previously we were using the "streams" package to provide type information
to the streams that we were passing around to dockerode and it was working
fine, but after some changes that seem unrelated this has broken the
compilation process.
3. The mentioned changes are not yet on the main branch, but we expect
them to be there soon and so this change is laying the groundwork for that
by pre-emptively fixing the broken build's root cause which is that the
test-tooling package does not declare it's typings related dependencies
correctly: It implicitly uses the NodeJS standard library's types but
so far had not declared them on the package level.
4. This change is therefore to rectify the issue of the `@types/node`
dependency missing from the test-tooling package and also the refactoring
of some of the test ledger classes which were relying on the `streams`
builtin package instead of correctly using the NodeJS.ReadableStream global.
5. Earlier the reasoning for this was that we try to avoid pulling in
types from the global scope because we try to avoid any sort of dependency
on the global scope in general. Once we have proof though that this is
causing issues with the build, then we must give up the principle for
practical reasons (and only in the minimum viable scope, e.g. this does
not change the fact that everywhere else in the codebase we should still
do our best to avoid using the global scoped classes, types, functions,
etc..).

Thank you to @AndreAugusto11 and @RafaelAPB for pointing out this issue
through the pull request of his that is currently being worked on at the
time of this writing:
RafaelAPB#72

Related to but does not address hyperledger-cacti#2811

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

refactor(SATP-Hermes): remove unused packages

* updated openapi version
* updated bungee plugin version to 2.0.0-alpha.2

Co-authored-by: Peter Somogyvari <peter.somogyvari@accenture.com>

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix(satp-hermes): re-add open-api json files

The canonical source for the API definition are the yaml files located at packages/cactus-plugin-satp-hermes/src/main/yml/openapi.yml, due to its better readability compared to json. When yarn codegen is ran within the cactus-plugin-satp-hermes package, the json files are generated from the yaml.

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

ci(satp-hermes): re-activate satp-hermes ci

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fixup: update package json, ci, yarn lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): add gateway coordinator WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(bungee): add skeleton for bungee

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(plugin-satp-hermes): update messages formats SATP core version 2.0.0 OpenAPI

* created new messages in openAPI definition

feat(bungee): fix bungee dependencies

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(SATP-Hermes): enable decorators needed for gateway coordinator checks

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(SATP-Hermes): update package.json

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): remove kotlin sdk, add protobuffer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): refactor naming

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure improvements

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): update yarn.lock and clean up

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(test-tooling): fix types of streams: use NodeJS.ReadableStream

1. The container management library that we use in the test infrastructure
(called dockerode) is expecting streams that are defined in the global
namespace of the `@types/node` library, e.g. the standard library of NodeJS
itself.
2. Previously we were using the "streams" package to provide type information
to the streams that we were passing around to dockerode and it was working
fine, but after some changes that seem unrelated this has broken the
compilation process.
3. The mentioned changes are not yet on the main branch, but we expect
them to be there soon and so this change is laying the groundwork for that
by pre-emptively fixing the broken build's root cause which is that the
test-tooling package does not declare it's typings related dependencies
correctly: It implicitly uses the NodeJS standard library's types but
so far had not declared them on the package level.
4. This change is therefore to rectify the issue of the `@types/node`
dependency missing from the test-tooling package and also the refactoring
of some of the test ledger classes which were relying on the `streams`
builtin package instead of correctly using the NodeJS.ReadableStream global.
5. Earlier the reasoning for this was that we try to avoid pulling in
types from the global scope because we try to avoid any sort of dependency
on the global scope in general. Once we have proof though that this is
causing issues with the build, then we must give up the principle for
practical reasons (and only in the minimum viable scope, e.g. this does
not change the fact that everywhere else in the codebase we should still
do our best to avoid using the global scoped classes, types, functions,
etc..).

Thank you to @AndreAugusto11 and @RafaelAPB for pointing out this issue
through the pull request of his that is currently being worked on at the
time of this writing:
RafaelAPB#72

Related to but does not address hyperledger-cacti#2811

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

refactor(SATP-Hermes): remove unused packages

* updated openapi version
* updated bungee plugin version to 2.0.0-alpha.2

Co-authored-by: Peter Somogyvari <peter.somogyvari@accenture.com>

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(satp-hermes): add protobuf gateway refactor

Authored by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): satp proto update (hyperledger-cacti#3147)

* feat(satp-hermes): update protos

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

* feat(satp-hermes): protos

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

* feat(satp-hermes): protos

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

---------

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): update protos

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): core stage services message names update

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): gRPC server start implementation and gateway_refactor in handlers

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): satp proto update

also updates yarn lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): update yarn, comment method

fix(satp-hermes): update yarn

ci(satp-hermes): fix bungee and satp ci

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(satp-hermes): delete Kotlin SDK, add Go SDK

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(satp-hermes): add gateway client Go SDK

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): re-add message proto

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fixup(satp-hermes): remove test protos and endpoints

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): gRPC services draft implementation

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): stage1-service and handler refactored

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes):stage2-service and handler refactored server-side

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): service handlers server

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): client stage handlers refactor

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fixup(satp-hermes): add skeleton for satp-bridge

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(satp-hermes): rename generated code for gateway and blo

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): fix knex path for old gateway tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): update protos and services

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix: refactor services and handlers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(bungee-hermes): viewProof & ethereum strategy

* Views have new attribute viewProof
* This attribute has the roots of all state proofs and transaction
proofs in the view
* Added new endpoint to verify integrity of view proofs
* Created strategy for bungee-hermes to support the ethereum-connector
* Created new test for the strategy-ethereum, and altered the API test
to test the new viewProof endpoint
* Updated documentation to reflect new changes.
* Fixes in Fabric Strategy, stateProofs and error handling

Co-authored-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Co-authored-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

Signed-off-by: eduv09 <eduardovasques10@tecnico.ulisboa.pt>

fix: refactor services and handlers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix: eslint all

Signed-off-by: Rafael Belchior <rbelchior@blockdaemon.com>

chore(satp-hermes): rebase with cacti main

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): satp development continuation and implementation satp protocol (hyperledger-cacti#3397)

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): fabric and besu bridges, wrapper contracts with ontology (hyperledger-cacti#3382)

feat(satp-hermes): added forge to compile solidity contracts

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix: rebase with main

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): added generated code (hyperledger-cacti#3443)

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): run sequencial instead of paralel (hyperledger-cacti#3445)

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(cc-tx-visualization): initial commit

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry hyperledger-cacti#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(cc-tx-visualization): capture transactional data with RxJS

The plugin now utilizes RxJS instead of RabbitMQ in transaction monitoring.
ReplaySubjects store and emit observed transactional data to subscribers.

fix(cc-tx-visualization): rebase latest version

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

squash! - migrate a test case to Fabric v2.5.6 LTS AIO

This is just a snippet of a change from the pair programming
call with Bruno, it can be safely squashed, no worries.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
Signed-off-by: Bruno Mateus <brumat315@gmail.com>

feat(cc-tx-visualization): ccmodel serialization with PM4PY

The plugin now creates the ccmodel for conformance checking with PM4PY.

Signed-off-by: Bruno Mateus <brumat315@gmail.com>

feat(hephaestus): analyse transactions using hephaestus

The plugin is now able to:
Create a Cross-Chain Model based on monitored transactions
Compare new transactions against the model and detect non-conformance

Signed-off-by: Bruno Mateus <brumat315@gmail.com>

feat(satp-hermes): add skeleton for stage0

Signed-off-by: eduv09 <eduardovasques10@tecnico.ulisboa.pt>

feat(satp-hermes): services tests

bug correction

session functionalities

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): errors file and other fixes

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): fix packages versions

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): add satp-plugin cli (wip)

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(satp-hermes): fix satp build process

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): satp-manager and gol refactor

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): fix handler and service intialization

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): service errors and some stage bugs

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): satp rejection

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): handler bug correction and errors

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): bridge erros and log messages

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): some error fixes

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): some fixes requested

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): stage0, bug fixing and test e2e

Co-authored-by: eduv09 <eduardovasques10@tecnico.ulisboa.pt>
Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): error messages in stage0

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): service tests added stage0 and error handling

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): test e2e

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): fix bugs and test e2e working transfer

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(stap-hermes): bugs and 2 gateway test

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): openApi transact implementation

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): improve admin endpoints

Signed-off-by: Eduardo Vasques <eduardovasques10@tecnico.ulisboa.pt>

refactor(cbdc-example): added gateways and contracts

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

refactor(cbdc-example): update with new satp-plugin

Signed-off-by: eduv09 <eduardovasques10@tecnico.ulisboa.pt>

refactor(cbdc-example): fixes

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>
<

refactor(cbdc-app): frontend update and some fixes

Signed-off-by: Eduardo Vasques <eduardovasques10@tecnico.ulisboa.pt>

fix(satp-hermes): bug fixing

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(cbdc-example): bug fixing

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(cbdc): final fixes

Signed-off-by: Eduardo Vasques <eduardovasques10@tecnico.ulisboa.pt>

fix(cbdc-example): remove unecessary variable

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): remove unessary logs

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(cbdc-example): docker ports

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

docs(example-cbdc): update frontend to match new functionality
* Separated Transfer functionality into local blockchain transfers
and cross-chain transfers
* Added new table with the state of token approvals made to the bridge
* Highlight cross-chain functionality with red coloring
* add helper page with instructions on how to use app

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

docs(cbdc-example): remove unused variables and unused code

* Created new Docker Image and updated README.md

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
petermetz pushed a commit to petermetz/cacti that referenced this issue Oct 2, 2024
Squashed together the commits on the satp-dev branch to make it easier to
rebase onto upstream/main.

The list of commits that were squashed:

feat(satp-Hermes): gateway refactor WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(bungee): add skeleton for bungee

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(plugin-satp-hermes): update messages formats SATP core version 2.0.0 OpenAPI

* created new messages in openAPI definition

feat(bungee): fix bungee dependencies

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(SATP-Hermes): enable decorators needed for gateway coordinator checks

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(SATP-Hermes): update package.json

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): remove kotlin sdk, add protobuffer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): refactor naming

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure improvements

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): update yarn.lock and clean up

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(test-tooling): fix types of streams: use NodeJS.ReadableStream

1. The container management library that we use in the test infrastructure
(called dockerode) is expecting streams that are defined in the global
namespace of the `@types/node` library, e.g. the standard library of NodeJS
itself.
2. Previously we were using the "streams" package to provide type information
to the streams that we were passing around to dockerode and it was working
fine, but after some changes that seem unrelated this has broken the
compilation process.
3. The mentioned changes are not yet on the main branch, but we expect
them to be there soon and so this change is laying the groundwork for that
by pre-emptively fixing the broken build's root cause which is that the
test-tooling package does not declare it's typings related dependencies
correctly: It implicitly uses the NodeJS standard library's types but
so far had not declared them on the package level.
4. This change is therefore to rectify the issue of the `@types/node`
dependency missing from the test-tooling package and also the refactoring
of some of the test ledger classes which were relying on the `streams`
builtin package instead of correctly using the NodeJS.ReadableStream global.
5. Earlier the reasoning for this was that we try to avoid pulling in
types from the global scope because we try to avoid any sort of dependency
on the global scope in general. Once we have proof though that this is
causing issues with the build, then we must give up the principle for
practical reasons (and only in the minimum viable scope, e.g. this does
not change the fact that everywhere else in the codebase we should still
do our best to avoid using the global scoped classes, types, functions,
etc..).

Thank you to @AndreAugusto11 and @RafaelAPB for pointing out this issue
through the pull request of his that is currently being worked on at the
time of this writing:
RafaelAPB#72

Related to but does not address hyperledger-cacti#2811

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

refactor(SATP-Hermes): remove unused packages

* updated openapi version
* updated bungee plugin version to 2.0.0-alpha.2

Co-authored-by: Peter Somogyvari <peter.somogyvari@accenture.com>

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix(satp-hermes): fix build bugs and hanging tests

Co-authored-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Co-authored-by: Peter Somogyvari <peter.somogyvari@accenture.com>
Co-authored-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(satp-hermes): fix hanging tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): fix cspell and lint

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

feat(satp-hermes): add API1 layer WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): BLO API specification

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): add BLO layer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): fix status endpoint and spec

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): fix lint

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

ci(satp-hermes): rebase and update ci

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): update BLO specification

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(satp-hermes): migrate BLO open api spec from json to yml

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): update Go BLO SDK generation

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): update BLO specification

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): add health check endpoint to BLO spec

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): re-add open-api json files

The canonical source for the API definition are the yaml files located at packages/cactus-plugin-satp-hermes/src/main/yml/openapi.yml, due to its better readability compared to json. When yarn codegen is ran within the cactus-plugin-satp-hermes package, the json files are generated from the yaml.

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

 feat(satp-hermes): remove deprecated spec

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): add gateway coordinator WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(bungee): add skeleton for bungee

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(plugin-satp-hermes): update messages formats SATP core version 2.0.0 OpenAPI

* created new messages in openAPI definition

feat(bungee): fix bungee dependencies

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(SATP-Hermes): enable decorators needed for gateway coordinator checks

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(SATP-Hermes): update package.json

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): remove kotlin sdk, add protobuffer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): refactor naming

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure improvements

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): update yarn.lock and clean up

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(test-tooling): fix types of streams: use NodeJS.ReadableStream

1. The container management library that we use in the test infrastructure
(called dockerode) is expecting streams that are defined in the global
namespace of the `@types/node` library, e.g. the standard library of NodeJS
itself.
2. Previously we were using the "streams" package to provide type information
to the streams that we were passing around to dockerode and it was working
fine, but after some changes that seem unrelated this has broken the
compilation process.
3. The mentioned changes are not yet on the main branch, but we expect
them to be there soon and so this change is laying the groundwork for that
by pre-emptively fixing the broken build's root cause which is that the
test-tooling package does not declare it's typings related dependencies
correctly: It implicitly uses the NodeJS standard library's types but
so far had not declared them on the package level.
4. This change is therefore to rectify the issue of the `@types/node`
dependency missing from the test-tooling package and also the refactoring
of some of the test ledger classes which were relying on the `streams`
builtin package instead of correctly using the NodeJS.ReadableStream global.
5. Earlier the reasoning for this was that we try to avoid pulling in
types from the global scope because we try to avoid any sort of dependency
on the global scope in general. Once we have proof though that this is
causing issues with the build, then we must give up the principle for
practical reasons (and only in the minimum viable scope, e.g. this does
not change the fact that everywhere else in the codebase we should still
do our best to avoid using the global scoped classes, types, functions,
etc..).

Thank you to @AndreAugusto11 and @RafaelAPB for pointing out this issue
through the pull request of his that is currently being worked on at the
time of this writing:
RafaelAPB#72

Related to but does not address hyperledger-cacti#2811

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

refactor(SATP-Hermes): remove unused packages

* updated openapi version
* updated bungee plugin version to 2.0.0-alpha.2

Co-authored-by: Peter Somogyvari <peter.somogyvari@accenture.com>

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix(satp-hermes): re-add open-api json files

The canonical source for the API definition are the yaml files located at packages/cactus-plugin-satp-hermes/src/main/yml/openapi.yml, due to its better readability compared to json. When yarn codegen is ran within the cactus-plugin-satp-hermes package, the json files are generated from the yaml.

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

ci(satp-hermes): re-activate satp-hermes ci

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fixup: update package json, ci, yarn lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): add gateway coordinator WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(bungee): add skeleton for bungee

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(plugin-satp-hermes): update messages formats SATP core version 2.0.0 OpenAPI

* created new messages in openAPI definition

feat(bungee): fix bungee dependencies

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(SATP-Hermes): enable decorators needed for gateway coordinator checks

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(SATP-Hermes): update package.json

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): remove kotlin sdk, add protobuffer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): refactor naming

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure improvements

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): update yarn.lock and clean up

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(test-tooling): fix types of streams: use NodeJS.ReadableStream

1. The container management library that we use in the test infrastructure
(called dockerode) is expecting streams that are defined in the global
namespace of the `@types/node` library, e.g. the standard library of NodeJS
itself.
2. Previously we were using the "streams" package to provide type information
to the streams that we were passing around to dockerode and it was working
fine, but after some changes that seem unrelated this has broken the
compilation process.
3. The mentioned changes are not yet on the main branch, but we expect
them to be there soon and so this change is laying the groundwork for that
by pre-emptively fixing the broken build's root cause which is that the
test-tooling package does not declare it's typings related dependencies
correctly: It implicitly uses the NodeJS standard library's types but
so far had not declared them on the package level.
4. This change is therefore to rectify the issue of the `@types/node`
dependency missing from the test-tooling package and also the refactoring
of some of the test ledger classes which were relying on the `streams`
builtin package instead of correctly using the NodeJS.ReadableStream global.
5. Earlier the reasoning for this was that we try to avoid pulling in
types from the global scope because we try to avoid any sort of dependency
on the global scope in general. Once we have proof though that this is
causing issues with the build, then we must give up the principle for
practical reasons (and only in the minimum viable scope, e.g. this does
not change the fact that everywhere else in the codebase we should still
do our best to avoid using the global scoped classes, types, functions,
etc..).

Thank you to @AndreAugusto11 and @RafaelAPB for pointing out this issue
through the pull request of his that is currently being worked on at the
time of this writing:
RafaelAPB#72

Related to but does not address hyperledger-cacti#2811

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

refactor(SATP-Hermes): remove unused packages

* updated openapi version
* updated bungee plugin version to 2.0.0-alpha.2

Co-authored-by: Peter Somogyvari <peter.somogyvari@accenture.com>

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(satp-hermes): add protobuf gateway refactor

Authored by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): satp proto update (hyperledger-cacti#3147)

* feat(satp-hermes): update protos

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

* feat(satp-hermes): protos

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

* feat(satp-hermes): protos

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

---------

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): update protos

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): core stage services message names update

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): gRPC server start implementation and gateway_refactor in handlers

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): satp proto update

also updates yarn lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): update yarn, comment method

fix(satp-hermes): update yarn

ci(satp-hermes): fix bungee and satp ci

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(satp-hermes): delete Kotlin SDK, add Go SDK

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(satp-hermes): add gateway client Go SDK

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): re-add message proto

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fixup(satp-hermes): remove test protos and endpoints

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): gRPC services draft implementation

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): stage1-service and handler refactored

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes):stage2-service and handler refactored server-side

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): service handlers server

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): client stage handlers refactor

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fixup(satp-hermes): add skeleton for satp-bridge

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(satp-hermes): rename generated code for gateway and blo

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): fix knex path for old gateway tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): update protos and services

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix: refactor services and handlers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(bungee-hermes): viewProof & ethereum strategy

* Views have new attribute viewProof
* This attribute has the roots of all state proofs and transaction
proofs in the view
* Added new endpoint to verify integrity of view proofs
* Created strategy for bungee-hermes to support the ethereum-connector
* Created new test for the strategy-ethereum, and altered the API test
to test the new viewProof endpoint
* Updated documentation to reflect new changes.
* Fixes in Fabric Strategy, stateProofs and error handling

Co-authored-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Co-authored-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

Signed-off-by: eduv09 <eduardovasques10@tecnico.ulisboa.pt>

fix: refactor services and handlers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix: eslint all

Signed-off-by: Rafael Belchior <rbelchior@blockdaemon.com>

chore(satp-hermes): rebase with cacti main

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): satp development continuation and implementation satp protocol (hyperledger-cacti#3397)

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): fabric and besu bridges, wrapper contracts with ontology (hyperledger-cacti#3382)

feat(satp-hermes): added forge to compile solidity contracts

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix: rebase with main

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): added generated code (hyperledger-cacti#3443)

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): run sequencial instead of paralel (hyperledger-cacti#3445)

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(cc-tx-visualization): initial commit

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry hyperledger-cacti#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(cc-tx-visualization): capture transactional data with RxJS

The plugin now utilizes RxJS instead of RabbitMQ in transaction monitoring.
ReplaySubjects store and emit observed transactional data to subscribers.

fix(cc-tx-visualization): rebase latest version

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

squash! - migrate a test case to Fabric v2.5.6 LTS AIO

This is just a snippet of a change from the pair programming
call with Bruno, it can be safely squashed, no worries.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
Signed-off-by: Bruno Mateus <brumat315@gmail.com>

feat(cc-tx-visualization): ccmodel serialization with PM4PY

The plugin now creates the ccmodel for conformance checking with PM4PY.

Signed-off-by: Bruno Mateus <brumat315@gmail.com>

feat(hephaestus): analyse transactions using hephaestus

The plugin is now able to:
Create a Cross-Chain Model based on monitored transactions
Compare new transactions against the model and detect non-conformance

Signed-off-by: Bruno Mateus <brumat315@gmail.com>

feat(satp-hermes): add skeleton for stage0

Signed-off-by: eduv09 <eduardovasques10@tecnico.ulisboa.pt>

feat(satp-hermes): services tests

bug correction

session functionalities

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): errors file and other fixes

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): fix packages versions

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): add satp-plugin cli (wip)

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(satp-hermes): fix satp build process

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): satp-manager and gol refactor

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): fix handler and service intialization

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): service errors and some stage bugs

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): satp rejection

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): handler bug correction and errors

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): bridge erros and log messages

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): some error fixes

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): some fixes requested

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): stage0, bug fixing and test e2e

Co-authored-by: eduv09 <eduardovasques10@tecnico.ulisboa.pt>
Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): error messages in stage0

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): service tests added stage0 and error handling

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): test e2e

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): fix bugs and test e2e working transfer

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(stap-hermes): bugs and 2 gateway test

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): openApi transact implementation

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): improve admin endpoints

Signed-off-by: Eduardo Vasques <eduardovasques10@tecnico.ulisboa.pt>

refactor(cbdc-example): added gateways and contracts

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

refactor(cbdc-example): update with new satp-plugin

Signed-off-by: eduv09 <eduardovasques10@tecnico.ulisboa.pt>

refactor(cbdc-example): fixes

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>
<

refactor(cbdc-app): frontend update and some fixes

Signed-off-by: Eduardo Vasques <eduardovasques10@tecnico.ulisboa.pt>

fix(satp-hermes): bug fixing

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(cbdc-example): bug fixing

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(cbdc): final fixes

Signed-off-by: Eduardo Vasques <eduardovasques10@tecnico.ulisboa.pt>

fix(cbdc-example): remove unecessary variable

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): remove unessary logs

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(cbdc-example): docker ports

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

docs(example-cbdc): update frontend to match new functionality
* Separated Transfer functionality into local blockchain transfers
and cross-chain transfers
* Added new table with the state of token approvals made to the bridge
* Highlight cross-chain functionality with red coloring
* add helper page with instructions on how to use app

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

docs(cbdc-example): remove unused variables and unused code

* Created new Docker Image and updated README.md

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
LordKubaya pushed a commit to LordKubaya/cacti_fork that referenced this issue Oct 2, 2024
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry hyperledger-cacti#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
petermetz pushed a commit to petermetz/cacti that referenced this issue Oct 2, 2024
Squashed together the commits on the satp-dev branch to make it easier to
rebase onto upstream/main.

The list of commits that were squashed:

feat(satp-Hermes): gateway refactor WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(bungee): add skeleton for bungee

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(plugin-satp-hermes): update messages formats SATP core version 2.0.0 OpenAPI

* created new messages in openAPI definition

feat(bungee): fix bungee dependencies

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(SATP-Hermes): enable decorators needed for gateway coordinator checks

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(SATP-Hermes): update package.json

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): remove kotlin sdk, add protobuffer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): refactor naming

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure improvements

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): update yarn.lock and clean up

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(test-tooling): fix types of streams: use NodeJS.ReadableStream

1. The container management library that we use in the test infrastructure
(called dockerode) is expecting streams that are defined in the global
namespace of the `@types/node` library, e.g. the standard library of NodeJS
itself.
2. Previously we were using the "streams" package to provide type information
to the streams that we were passing around to dockerode and it was working
fine, but after some changes that seem unrelated this has broken the
compilation process.
3. The mentioned changes are not yet on the main branch, but we expect
them to be there soon and so this change is laying the groundwork for that
by pre-emptively fixing the broken build's root cause which is that the
test-tooling package does not declare it's typings related dependencies
correctly: It implicitly uses the NodeJS standard library's types but
so far had not declared them on the package level.
4. This change is therefore to rectify the issue of the `@types/node`
dependency missing from the test-tooling package and also the refactoring
of some of the test ledger classes which were relying on the `streams`
builtin package instead of correctly using the NodeJS.ReadableStream global.
5. Earlier the reasoning for this was that we try to avoid pulling in
types from the global scope because we try to avoid any sort of dependency
on the global scope in general. Once we have proof though that this is
causing issues with the build, then we must give up the principle for
practical reasons (and only in the minimum viable scope, e.g. this does
not change the fact that everywhere else in the codebase we should still
do our best to avoid using the global scoped classes, types, functions,
etc..).

Thank you to @AndreAugusto11 and @RafaelAPB for pointing out this issue
through the pull request of his that is currently being worked on at the
time of this writing:
RafaelAPB#72

Related to but does not address hyperledger-cacti#2811

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

refactor(SATP-Hermes): remove unused packages

* updated openapi version
* updated bungee plugin version to 2.0.0-alpha.2

Co-authored-by: Peter Somogyvari <peter.somogyvari@accenture.com>

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix(satp-hermes): fix build bugs and hanging tests

Co-authored-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Co-authored-by: Peter Somogyvari <peter.somogyvari@accenture.com>
Co-authored-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(satp-hermes): fix hanging tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): fix cspell and lint

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

feat(satp-hermes): add API1 layer WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): BLO API specification

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): add BLO layer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): fix status endpoint and spec

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): fix lint

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

ci(satp-hermes): rebase and update ci

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): update BLO specification

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(satp-hermes): migrate BLO open api spec from json to yml

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): update Go BLO SDK generation

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): update BLO specification

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): add health check endpoint to BLO spec

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): re-add open-api json files

The canonical source for the API definition are the yaml files located at packages/cactus-plugin-satp-hermes/src/main/yml/openapi.yml, due to its better readability compared to json. When yarn codegen is ran within the cactus-plugin-satp-hermes package, the json files are generated from the yaml.

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

 feat(satp-hermes): remove deprecated spec

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): add gateway coordinator WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(bungee): add skeleton for bungee

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(plugin-satp-hermes): update messages formats SATP core version 2.0.0 OpenAPI

* created new messages in openAPI definition

feat(bungee): fix bungee dependencies

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(SATP-Hermes): enable decorators needed for gateway coordinator checks

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(SATP-Hermes): update package.json

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): remove kotlin sdk, add protobuffer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): refactor naming

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure improvements

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): update yarn.lock and clean up

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(test-tooling): fix types of streams: use NodeJS.ReadableStream

1. The container management library that we use in the test infrastructure
(called dockerode) is expecting streams that are defined in the global
namespace of the `@types/node` library, e.g. the standard library of NodeJS
itself.
2. Previously we were using the "streams" package to provide type information
to the streams that we were passing around to dockerode and it was working
fine, but after some changes that seem unrelated this has broken the
compilation process.
3. The mentioned changes are not yet on the main branch, but we expect
them to be there soon and so this change is laying the groundwork for that
by pre-emptively fixing the broken build's root cause which is that the
test-tooling package does not declare it's typings related dependencies
correctly: It implicitly uses the NodeJS standard library's types but
so far had not declared them on the package level.
4. This change is therefore to rectify the issue of the `@types/node`
dependency missing from the test-tooling package and also the refactoring
of some of the test ledger classes which were relying on the `streams`
builtin package instead of correctly using the NodeJS.ReadableStream global.
5. Earlier the reasoning for this was that we try to avoid pulling in
types from the global scope because we try to avoid any sort of dependency
on the global scope in general. Once we have proof though that this is
causing issues with the build, then we must give up the principle for
practical reasons (and only in the minimum viable scope, e.g. this does
not change the fact that everywhere else in the codebase we should still
do our best to avoid using the global scoped classes, types, functions,
etc..).

Thank you to @AndreAugusto11 and @RafaelAPB for pointing out this issue
through the pull request of his that is currently being worked on at the
time of this writing:
RafaelAPB#72

Related to but does not address hyperledger-cacti#2811

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

refactor(SATP-Hermes): remove unused packages

* updated openapi version
* updated bungee plugin version to 2.0.0-alpha.2

Co-authored-by: Peter Somogyvari <peter.somogyvari@accenture.com>

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix(satp-hermes): re-add open-api json files

The canonical source for the API definition are the yaml files located at packages/cactus-plugin-satp-hermes/src/main/yml/openapi.yml, due to its better readability compared to json. When yarn codegen is ran within the cactus-plugin-satp-hermes package, the json files are generated from the yaml.

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

ci(satp-hermes): re-activate satp-hermes ci

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fixup: update package json, ci, yarn lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): add gateway coordinator WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(bungee): add skeleton for bungee

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(plugin-satp-hermes): update messages formats SATP core version 2.0.0 OpenAPI

* created new messages in openAPI definition

feat(bungee): fix bungee dependencies

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(SATP-Hermes): enable decorators needed for gateway coordinator checks

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(SATP-Hermes): update package.json

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): remove kotlin sdk, add protobuffer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): refactor naming

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure improvements

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): update yarn.lock and clean up

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(test-tooling): fix types of streams: use NodeJS.ReadableStream

1. The container management library that we use in the test infrastructure
(called dockerode) is expecting streams that are defined in the global
namespace of the `@types/node` library, e.g. the standard library of NodeJS
itself.
2. Previously we were using the "streams" package to provide type information
to the streams that we were passing around to dockerode and it was working
fine, but after some changes that seem unrelated this has broken the
compilation process.
3. The mentioned changes are not yet on the main branch, but we expect
them to be there soon and so this change is laying the groundwork for that
by pre-emptively fixing the broken build's root cause which is that the
test-tooling package does not declare it's typings related dependencies
correctly: It implicitly uses the NodeJS standard library's types but
so far had not declared them on the package level.
4. This change is therefore to rectify the issue of the `@types/node`
dependency missing from the test-tooling package and also the refactoring
of some of the test ledger classes which were relying on the `streams`
builtin package instead of correctly using the NodeJS.ReadableStream global.
5. Earlier the reasoning for this was that we try to avoid pulling in
types from the global scope because we try to avoid any sort of dependency
on the global scope in general. Once we have proof though that this is
causing issues with the build, then we must give up the principle for
practical reasons (and only in the minimum viable scope, e.g. this does
not change the fact that everywhere else in the codebase we should still
do our best to avoid using the global scoped classes, types, functions,
etc..).

Thank you to @AndreAugusto11 and @RafaelAPB for pointing out this issue
through the pull request of his that is currently being worked on at the
time of this writing:
RafaelAPB#72

Related to but does not address hyperledger-cacti#2811

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

refactor(SATP-Hermes): remove unused packages

* updated openapi version
* updated bungee plugin version to 2.0.0-alpha.2

Co-authored-by: Peter Somogyvari <peter.somogyvari@accenture.com>

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(satp-hermes): add protobuf gateway refactor

Authored by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): satp proto update (hyperledger-cacti#3147)

* feat(satp-hermes): update protos

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

* feat(satp-hermes): protos

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

* feat(satp-hermes): protos

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

---------

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): update protos

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): core stage services message names update

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): gRPC server start implementation and gateway_refactor in handlers

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): satp proto update

also updates yarn lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): update yarn, comment method

fix(satp-hermes): update yarn

ci(satp-hermes): fix bungee and satp ci

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(satp-hermes): delete Kotlin SDK, add Go SDK

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(satp-hermes): add gateway client Go SDK

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): re-add message proto

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fixup(satp-hermes): remove test protos and endpoints

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): gRPC services draft implementation

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): stage1-service and handler refactored

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes):stage2-service and handler refactored server-side

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): service handlers server

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): client stage handlers refactor

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fixup(satp-hermes): add skeleton for satp-bridge

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(satp-hermes): rename generated code for gateway and blo

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): fix knex path for old gateway tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): update protos and services

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix: refactor services and handlers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(bungee-hermes): viewProof & ethereum strategy

* Views have new attribute viewProof
* This attribute has the roots of all state proofs and transaction
proofs in the view
* Added new endpoint to verify integrity of view proofs
* Created strategy for bungee-hermes to support the ethereum-connector
* Created new test for the strategy-ethereum, and altered the API test
to test the new viewProof endpoint
* Updated documentation to reflect new changes.
* Fixes in Fabric Strategy, stateProofs and error handling

Co-authored-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Co-authored-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

Signed-off-by: eduv09 <eduardovasques10@tecnico.ulisboa.pt>

fix: refactor services and handlers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix: eslint all

Signed-off-by: Rafael Belchior <rbelchior@blockdaemon.com>

chore(satp-hermes): rebase with cacti main

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): satp development continuation and implementation satp protocol (hyperledger-cacti#3397)

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): fabric and besu bridges, wrapper contracts with ontology (hyperledger-cacti#3382)

feat(satp-hermes): added forge to compile solidity contracts

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix: rebase with main

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): added generated code (hyperledger-cacti#3443)

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): run sequencial instead of paralel (hyperledger-cacti#3445)

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(cc-tx-visualization): initial commit

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry hyperledger-cacti#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(cc-tx-visualization): capture transactional data with RxJS

The plugin now utilizes RxJS instead of RabbitMQ in transaction monitoring.
ReplaySubjects store and emit observed transactional data to subscribers.

fix(cc-tx-visualization): rebase latest version

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

squash! - migrate a test case to Fabric v2.5.6 LTS AIO

This is just a snippet of a change from the pair programming
call with Bruno, it can be safely squashed, no worries.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
Signed-off-by: Bruno Mateus <brumat315@gmail.com>

feat(cc-tx-visualization): ccmodel serialization with PM4PY

The plugin now creates the ccmodel for conformance checking with PM4PY.

Signed-off-by: Bruno Mateus <brumat315@gmail.com>

feat(hephaestus): analyse transactions using hephaestus

The plugin is now able to:
Create a Cross-Chain Model based on monitored transactions
Compare new transactions against the model and detect non-conformance

Signed-off-by: Bruno Mateus <brumat315@gmail.com>

feat(satp-hermes): add skeleton for stage0

Signed-off-by: eduv09 <eduardovasques10@tecnico.ulisboa.pt>

feat(satp-hermes): services tests

bug correction

session functionalities

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): errors file and other fixes

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): fix packages versions

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): add satp-plugin cli (wip)

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(satp-hermes): fix satp build process

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): satp-manager and gol refactor

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): fix handler and service intialization

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): service errors and some stage bugs

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): satp rejection

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): handler bug correction and errors

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): bridge erros and log messages

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): some error fixes

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): some fixes requested

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): stage0, bug fixing and test e2e

Co-authored-by: eduv09 <eduardovasques10@tecnico.ulisboa.pt>
Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): error messages in stage0

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): service tests added stage0 and error handling

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): test e2e

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): fix bugs and test e2e working transfer

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(stap-hermes): bugs and 2 gateway test

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): openApi transact implementation

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): improve admin endpoints

Signed-off-by: Eduardo Vasques <eduardovasques10@tecnico.ulisboa.pt>

refactor(cbdc-example): added gateways and contracts

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

refactor(cbdc-example): update with new satp-plugin

Signed-off-by: eduv09 <eduardovasques10@tecnico.ulisboa.pt>

refactor(cbdc-example): fixes

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>
<

refactor(cbdc-app): frontend update and some fixes

Signed-off-by: Eduardo Vasques <eduardovasques10@tecnico.ulisboa.pt>

fix(satp-hermes): bug fixing

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(cbdc-example): bug fixing

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(cbdc): final fixes

Signed-off-by: Eduardo Vasques <eduardovasques10@tecnico.ulisboa.pt>

fix(cbdc-example): remove unecessary variable

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): remove unessary logs

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(cbdc-example): docker ports

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

docs(example-cbdc): update frontend to match new functionality
* Separated Transfer functionality into local blockchain transfers
and cross-chain transfers
* Added new table with the state of token approvals made to the bridge
* Highlight cross-chain functionality with red coloring
* add helper page with instructions on how to use app

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

docs(cbdc-example): remove unused variables and unused code

* Created new Docker Image and updated README.md

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
petermetz pushed a commit to petermetz/cacti that referenced this issue Oct 4, 2024
Squashed together the commits on the satp-dev branch to make it easier to
rebase onto upstream/main.

The list of commits that were squashed:

feat(satp-Hermes): gateway refactor WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(bungee): add skeleton for bungee

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(plugin-satp-hermes): update messages formats SATP core version 2.0.0 OpenAPI

* created new messages in openAPI definition

feat(bungee): fix bungee dependencies

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(SATP-Hermes): enable decorators needed for gateway coordinator checks

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(SATP-Hermes): update package.json

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): remove kotlin sdk, add protobuffer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): refactor naming

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure improvements

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): update yarn.lock and clean up

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(test-tooling): fix types of streams: use NodeJS.ReadableStream

1. The container management library that we use in the test infrastructure
(called dockerode) is expecting streams that are defined in the global
namespace of the `@types/node` library, e.g. the standard library of NodeJS
itself.
2. Previously we were using the "streams" package to provide type information
to the streams that we were passing around to dockerode and it was working
fine, but after some changes that seem unrelated this has broken the
compilation process.
3. The mentioned changes are not yet on the main branch, but we expect
them to be there soon and so this change is laying the groundwork for that
by pre-emptively fixing the broken build's root cause which is that the
test-tooling package does not declare it's typings related dependencies
correctly: It implicitly uses the NodeJS standard library's types but
so far had not declared them on the package level.
4. This change is therefore to rectify the issue of the `@types/node`
dependency missing from the test-tooling package and also the refactoring
of some of the test ledger classes which were relying on the `streams`
builtin package instead of correctly using the NodeJS.ReadableStream global.
5. Earlier the reasoning for this was that we try to avoid pulling in
types from the global scope because we try to avoid any sort of dependency
on the global scope in general. Once we have proof though that this is
causing issues with the build, then we must give up the principle for
practical reasons (and only in the minimum viable scope, e.g. this does
not change the fact that everywhere else in the codebase we should still
do our best to avoid using the global scoped classes, types, functions,
etc..).

Thank you to @AndreAugusto11 and @RafaelAPB for pointing out this issue
through the pull request of his that is currently being worked on at the
time of this writing:
RafaelAPB#72

Related to but does not address hyperledger-cacti#2811

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

refactor(SATP-Hermes): remove unused packages

* updated openapi version
* updated bungee plugin version to 2.0.0-alpha.2

Co-authored-by: Peter Somogyvari <peter.somogyvari@accenture.com>

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix(satp-hermes): fix build bugs and hanging tests

Co-authored-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Co-authored-by: Peter Somogyvari <peter.somogyvari@accenture.com>
Co-authored-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(satp-hermes): fix hanging tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): fix cspell and lint

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

feat(satp-hermes): add API1 layer WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): BLO API specification

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): add BLO layer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): fix status endpoint and spec

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): fix lint

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

ci(satp-hermes): rebase and update ci

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): update BLO specification

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(satp-hermes): migrate BLO open api spec from json to yml

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): update Go BLO SDK generation

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): update BLO specification

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): add health check endpoint to BLO spec

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): re-add open-api json files

The canonical source for the API definition are the yaml files located at packages/cactus-plugin-satp-hermes/src/main/yml/openapi.yml, due to its better readability compared to json. When yarn codegen is ran within the cactus-plugin-satp-hermes package, the json files are generated from the yaml.

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

 feat(satp-hermes): remove deprecated spec

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): add gateway coordinator WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(bungee): add skeleton for bungee

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(plugin-satp-hermes): update messages formats SATP core version 2.0.0 OpenAPI

* created new messages in openAPI definition

feat(bungee): fix bungee dependencies

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(SATP-Hermes): enable decorators needed for gateway coordinator checks

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(SATP-Hermes): update package.json

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): remove kotlin sdk, add protobuffer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): refactor naming

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure improvements

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): update yarn.lock and clean up

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(test-tooling): fix types of streams: use NodeJS.ReadableStream

1. The container management library that we use in the test infrastructure
(called dockerode) is expecting streams that are defined in the global
namespace of the `@types/node` library, e.g. the standard library of NodeJS
itself.
2. Previously we were using the "streams" package to provide type information
to the streams that we were passing around to dockerode and it was working
fine, but after some changes that seem unrelated this has broken the
compilation process.
3. The mentioned changes are not yet on the main branch, but we expect
them to be there soon and so this change is laying the groundwork for that
by pre-emptively fixing the broken build's root cause which is that the
test-tooling package does not declare it's typings related dependencies
correctly: It implicitly uses the NodeJS standard library's types but
so far had not declared them on the package level.
4. This change is therefore to rectify the issue of the `@types/node`
dependency missing from the test-tooling package and also the refactoring
of some of the test ledger classes which were relying on the `streams`
builtin package instead of correctly using the NodeJS.ReadableStream global.
5. Earlier the reasoning for this was that we try to avoid pulling in
types from the global scope because we try to avoid any sort of dependency
on the global scope in general. Once we have proof though that this is
causing issues with the build, then we must give up the principle for
practical reasons (and only in the minimum viable scope, e.g. this does
not change the fact that everywhere else in the codebase we should still
do our best to avoid using the global scoped classes, types, functions,
etc..).

Thank you to @AndreAugusto11 and @RafaelAPB for pointing out this issue
through the pull request of his that is currently being worked on at the
time of this writing:
RafaelAPB#72

Related to but does not address hyperledger-cacti#2811

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

refactor(SATP-Hermes): remove unused packages

* updated openapi version
* updated bungee plugin version to 2.0.0-alpha.2

Co-authored-by: Peter Somogyvari <peter.somogyvari@accenture.com>

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix(satp-hermes): re-add open-api json files

The canonical source for the API definition are the yaml files located at packages/cactus-plugin-satp-hermes/src/main/yml/openapi.yml, due to its better readability compared to json. When yarn codegen is ran within the cactus-plugin-satp-hermes package, the json files are generated from the yaml.

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

ci(satp-hermes): re-activate satp-hermes ci

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fixup: update package json, ci, yarn lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): add gateway coordinator WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(bungee): add skeleton for bungee

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(plugin-satp-hermes): update messages formats SATP core version 2.0.0 OpenAPI

* created new messages in openAPI definition

feat(bungee): fix bungee dependencies

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator

feat(SATP-Hermes): gateway coordinator WIP

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(SATP-Hermes): enable decorators needed for gateway coordinator checks

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(SATP-Hermes): update package.json

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): re-estructure project

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): remove kotlin sdk, add protobuffer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(SATP-Hermes): refactor naming

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): protobuf structure improvements

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(SATP-Hermes): update yarn.lock and clean up

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

refactor(test-tooling): fix types of streams: use NodeJS.ReadableStream

1. The container management library that we use in the test infrastructure
(called dockerode) is expecting streams that are defined in the global
namespace of the `@types/node` library, e.g. the standard library of NodeJS
itself.
2. Previously we were using the "streams" package to provide type information
to the streams that we were passing around to dockerode and it was working
fine, but after some changes that seem unrelated this has broken the
compilation process.
3. The mentioned changes are not yet on the main branch, but we expect
them to be there soon and so this change is laying the groundwork for that
by pre-emptively fixing the broken build's root cause which is that the
test-tooling package does not declare it's typings related dependencies
correctly: It implicitly uses the NodeJS standard library's types but
so far had not declared them on the package level.
4. This change is therefore to rectify the issue of the `@types/node`
dependency missing from the test-tooling package and also the refactoring
of some of the test ledger classes which were relying on the `streams`
builtin package instead of correctly using the NodeJS.ReadableStream global.
5. Earlier the reasoning for this was that we try to avoid pulling in
types from the global scope because we try to avoid any sort of dependency
on the global scope in general. Once we have proof though that this is
causing issues with the build, then we must give up the principle for
practical reasons (and only in the minimum viable scope, e.g. this does
not change the fact that everywhere else in the codebase we should still
do our best to avoid using the global scoped classes, types, functions,
etc..).

Thank you to @AndreAugusto11 and @RafaelAPB for pointing out this issue
through the pull request of his that is currently being worked on at the
time of this writing:
RafaelAPB#72

Related to but does not address hyperledger-cacti#2811

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

refactor(SATP-Hermes): remove unused packages

* updated openapi version
* updated bungee plugin version to 2.0.0-alpha.2

Co-authored-by: Peter Somogyvari <peter.somogyvari@accenture.com>

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(satp-hermes): add protobuf gateway refactor

Authored by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): satp proto update (hyperledger-cacti#3147)

* feat(satp-hermes): update protos

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

* feat(satp-hermes): protos

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

* feat(satp-hermes): protos

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

---------

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): update protos

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): core stage services message names update

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): gRPC server start implementation and gateway_refactor in handlers

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): satp proto update

also updates yarn lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): update yarn, comment method

fix(satp-hermes): update yarn

ci(satp-hermes): fix bungee and satp ci

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(satp-hermes): delete Kotlin SDK, add Go SDK

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(satp-hermes): add gateway client Go SDK

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): re-add message proto

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fixup(satp-hermes): remove test protos and endpoints

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): gRPC services draft implementation

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): stage1-service and handler refactored

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes):stage2-service and handler refactored server-side

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): service handlers server

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): client stage handlers refactor

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fixup(satp-hermes): add skeleton for satp-bridge

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(satp-hermes): rename generated code for gateway and blo

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): fix knex path for old gateway tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): update protos and services

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix: refactor services and handlers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(bungee-hermes): viewProof & ethereum strategy

* Views have new attribute viewProof
* This attribute has the roots of all state proofs and transaction
proofs in the view
* Added new endpoint to verify integrity of view proofs
* Created strategy for bungee-hermes to support the ethereum-connector
* Created new test for the strategy-ethereum, and altered the API test
to test the new viewProof endpoint
* Updated documentation to reflect new changes.
* Fixes in Fabric Strategy, stateProofs and error handling

Co-authored-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Co-authored-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

Signed-off-by: eduv09 <eduardovasques10@tecnico.ulisboa.pt>

fix: refactor services and handlers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix: eslint all

Signed-off-by: Rafael Belchior <rbelchior@blockdaemon.com>

chore(satp-hermes): rebase with cacti main

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): satp development continuation and implementation satp protocol (hyperledger-cacti#3397)

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): fabric and besu bridges, wrapper contracts with ontology (hyperledger-cacti#3382)

feat(satp-hermes): added forge to compile solidity contracts

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix: rebase with main

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): added generated code (hyperledger-cacti#3443)

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): run sequencial instead of paralel (hyperledger-cacti#3445)

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(cc-tx-visualization): initial commit

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry hyperledger-cacti#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

refactor(cc-tx-visualization): capture transactional data with RxJS

The plugin now utilizes RxJS instead of RabbitMQ in transaction monitoring.
ReplaySubjects store and emit observed transactional data to subscribers.

fix(cc-tx-visualization): rebase latest version

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

squash! - migrate a test case to Fabric v2.5.6 LTS AIO

This is just a snippet of a change from the pair programming
call with Bruno, it can be safely squashed, no worries.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
Signed-off-by: Bruno Mateus <brumat315@gmail.com>

feat(cc-tx-visualization): ccmodel serialization with PM4PY

The plugin now creates the ccmodel for conformance checking with PM4PY.

Signed-off-by: Bruno Mateus <brumat315@gmail.com>

feat(hephaestus): analyse transactions using hephaestus

The plugin is now able to:
Create a Cross-Chain Model based on monitored transactions
Compare new transactions against the model and detect non-conformance

Signed-off-by: Bruno Mateus <brumat315@gmail.com>

feat(satp-hermes): add skeleton for stage0

Signed-off-by: eduv09 <eduardovasques10@tecnico.ulisboa.pt>

feat(satp-hermes): services tests

bug correction

session functionalities

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): errors file and other fixes

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): fix packages versions

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): add satp-plugin cli (wip)

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(satp-hermes): fix satp build process

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): satp-manager and gol refactor

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): fix handler and service intialization

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(satp-hermes): service errors and some stage bugs

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): satp rejection

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): handler bug correction and errors

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): bridge erros and log messages

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): some error fixes

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): some fixes requested

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(satp-hermes): stage0, bug fixing and test e2e

Co-authored-by: eduv09 <eduardovasques10@tecnico.ulisboa.pt>
Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): error messages in stage0

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): service tests added stage0 and error handling

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): test e2e

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): fix bugs and test e2e working transfer

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(stap-hermes): bugs and 2 gateway test

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): openApi transact implementation

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(satp-hermes): improve admin endpoints

Signed-off-by: Eduardo Vasques <eduardovasques10@tecnico.ulisboa.pt>

refactor(cbdc-example): added gateways and contracts

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

refactor(cbdc-example): update with new satp-plugin

Signed-off-by: eduv09 <eduardovasques10@tecnico.ulisboa.pt>

refactor(cbdc-example): fixes

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>
<

refactor(cbdc-app): frontend update and some fixes

Signed-off-by: Eduardo Vasques <eduardovasques10@tecnico.ulisboa.pt>

fix(satp-hermes): bug fixing

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(cbdc-example): bug fixing

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

feat(cbdc): final fixes

Signed-off-by: Eduardo Vasques <eduardovasques10@tecnico.ulisboa.pt>

fix(cbdc-example): remove unecessary variable

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(satp-hermes): remove unessary logs

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

fix(cbdc-example): docker ports

Signed-off-by: Carlos Amaro <carlosrscamaro@tecnico.ulisboa.pt>

docs(example-cbdc): update frontend to match new functionality
* Separated Transfer functionality into local blockchain transfers
and cross-chain transfers
* Added new table with the state of token approvals made to the bridge
* Highlight cross-chain functionality with red coloring
* add helper page with instructions on how to use app

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>

docs(cbdc-example): remove unused variables and unused code

* Created new Docker Image and updated README.md

Signed-off-by: André Augusto <andre.augusto@tecnico.ulisboa.pt>
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
petermetz pushed a commit to petermetz/cacti that referenced this issue Oct 11, 2024
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry hyperledger-cacti#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
eduv09 pushed a commit to eduv09/blockchain-integration-framework that referenced this issue Oct 21, 2024
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry hyperledger-cacti#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
RafaelAPB pushed a commit that referenced this issue Nov 9, 2024
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry #1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes #1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
RafaelAPB pushed a commit that referenced this issue Nov 13, 2024
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry #1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes #1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
RafaelAPB pushed a commit to RafaelAPB/blockchain-integration-framework that referenced this issue Nov 15, 2024
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry hyperledger-cacti#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
RafaelAPB pushed a commit to RafaelAPB/blockchain-integration-framework that referenced this issue Dec 16, 2024
Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>
Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

fix(prometheus): metrics.ts leaks to global registry hyperledger-cacti#1202

1. Specified a `register` property of the gauges as an empty
array so that it does not pollute the global namespace. This
is how this is supposed to be done as per the docs of prom-client.

2. Once the change from 1) took place, the issue became that
the metrics gathering code was still trying to hit up the
global scope for the metrics, e.g. calling the get metrics
methods directly on the promClient object instead of the
registry that we create for each prmoetheus exporter object
separately. So a little additional refactor ensued to fix this
as well by making sure that we grab a reference of the registry
object at construction time and then re-use that wherever needed
instead of going through the global promClient object.

3. Added missing .startMetricsCollection calls in the plugin
constructors to ensure that the prometheus exporter object
gets initialized properly (this is where the registry gets
created as well so without this there are crashes happening
when one tries to access the metrics through the registry)

Why though?
The problem was that the metrics.ts file that we have for all the
plugin's metrics constructs a new Metric (Gauge) object at import
time which then defaults to registering the metric in the global
registry of prom-client by default.

The latter was causing crashes when separate versions of the same
metrics.ts file are imported in a scenario were the API server
imports plugins from a different directory (this issue is coming
from the branch where I'm working on plugin sandboxing via the
live-plugin-manager).

Fixes hyperledger-cacti#1202

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): added test for multiple prometheus metrics on fabric

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): added croschainEventLog models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(fabric): added endpoint for list of transaction receipts

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(test-tooling): add RabbitMQ test server

feat(cc-tx-viz): add RabbitMQ support; update model

feat(cc-tx-viz): add preliminary support to Fabric and Besu

build(deps): upgrade axios to latest to fix CVE

Details
CVE-2021-3749
high severity
Vulnerable versions: <= 0.21.1
Patched version: 0.21.2
axios is vulnerable to Inefficient Regular Expression Complexity

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

feat(cc-tx-viz): add methods to fabric connector

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): add metric model

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

xfix(cc-tx-viz): error implementation of IsVisualizable

feat(cc-tx-viz): add methods to fabric and besu; update models

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cc-tx-viz): update cross chain events log for fabric transactions

Signed-off-by: Iulia Mihaiu <maramih.2007@yahoo.com>

feat(cctxviz): fix fabric prometheus

feat(cctxviz): fix besu prometheus

feat(cctxviz): fix fabric test

feat(cctxviz): update tx receipt

feat(cctxviz): add test script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add test receipts

feat(cctxviz): refactor CrossChainEventLog

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): refactor tests

feat(cc-tx-viz): update model, add tests

chore(cc-tx-viz): update dependencies

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): persist logs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cc-tx-viz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): update strinfify to csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): add csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cc-tx-viz): move csv folder

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cc-tx-viz): add test

feat(cctxviz): add csv file, process mining script

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): proof of concept v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): update csv

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

docs(cctxviz): update readme

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add carbon footprint

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(fabric-connector): update default queue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): fabric test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add parameters to fabric calls

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support besu

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update metrics

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxvi): update fabric and besu tests

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): besu and fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): support call transactions on fabric

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add aggregation basis

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): aggregate cctx

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): containerize draft

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add revenue

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update model playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add dummy use case playbook

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update persist test and dummy uc

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): workload test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add more timers

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): add timer to map on connectors

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): vis plot wip

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): evaluate baseline

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update plots

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test files

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

feat(cctxviz): update testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): time-efficient polling receipts

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

chore(cctxviz): add test chaincode

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): use case v1

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

build(cc-tx-visualization): added missing fabric-contract-api

This will fix one compilation error.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

chore(deps): updated yarn.lock after rebase onto upstream/main

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

build(cc-tx-visualization): deleted redundant test fixtures

Also added the test-tooling package as a dev dependency which
should fix a few of the compiler errors we were getting on account
of missing dependencies.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

fix: resolved build errors for cctxviz branch

- test-tooling package changed that needs to be reverted before commmit to main branch
- added import statement for test data generationt

xfix(cc-tx-viz): error implementation of IsVisualizable

chore: update yarn and remove package.lock

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): testing framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): test framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): update framework

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add graphs

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add test

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

fix(cctxviz): fix bug

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>

test(cctxviz): add process conformance

Signed-off-by: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
API_Server bug Something isn't working dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant