Skip to content

Commit 356b78e

Browse files
Merge branch 'main' into perf/zkp-ipa-optimization
2 parents 4b48652 + e63e6ea commit 356b78e

27 files changed

Lines changed: 1486 additions & 77 deletions

.github/workflows/scorecard.yml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: "OpenSSF Scorecard"
2+
3+
# The README Scorecard badge is intentionally NOT added yet: api.scorecard.dev only
4+
# serves data for a repository after this workflow has run on the default branch with
5+
# publish_results: true. Until then the badge renders "invalid repo path". Add
6+
# https://api.scorecard.dev/projects/github.com/LFDT-Panurus/panurus/badge
7+
# to the README badge row once the first run on `main` has completed.
8+
9+
on:
10+
# Re-run when branch protection changes, since Branch-Protection is a scored check.
11+
branch_protection_rule:
12+
schedule:
13+
- cron: '27 6 * * 1'
14+
push:
15+
branches: [ "main" ]
16+
17+
# Least privilege by default; the job below elevates only what it needs.
18+
permissions: read-all
19+
20+
jobs:
21+
analysis:
22+
name: Scorecard analysis
23+
runs-on: ubuntu-latest
24+
permissions:
25+
# Required to upload the results to code-scanning.
26+
security-events: write
27+
# Required by publish_results, which signs the results for the public API
28+
# that serves the README badge.
29+
id-token: write
30+
31+
steps:
32+
- name: "Checkout code"
33+
uses: actions/checkout@v4
34+
with:
35+
persist-credentials: false
36+
37+
- name: "Run analysis"
38+
uses: ossf/scorecard-action@v2.4.4
39+
with:
40+
results_file: results.sarif
41+
results_format: sarif
42+
# Must stay true: without it the api.securityscorecards.dev endpoint
43+
# serves no data and the README badge renders "invalid repo path".
44+
publish_results: true
45+
46+
- name: "Upload artifact"
47+
uses: actions/upload-artifact@v4
48+
with:
49+
name: SARIF file
50+
path: results.sarif
51+
retention-days: 5
52+
53+
- name: "Upload to code-scanning"
54+
uses: github/codeql-action/upload-sarif@v4
55+
with:
56+
sarif_file: results.sarif

.golangci.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ linters:
1616
- govet # Vet examines Go source code and reports suspicious constructs. It is roughly the same as 'go vet' and uses its passes. [auto-fix]
1717
- importas # Enforces consistent import aliases. [auto-fix]
1818
- intrange # Intrange is a linter to find places where for loops could make use of an integer range. [auto-fix]
19+
- ireturn # Accept Interfaces, Return Concrete Types.
1920
- loggercheck # Checks key value pairs for common logger libraries (kitlog,klog,logr,slog,zap).
2021
- lll # Reports long lines. [fast]
2122
- mirror # Reports wrong mirror patterns of bytes/strings usage. [auto-fix]
@@ -90,6 +91,25 @@ linters:
9091
- github.com/prometheus/client_golang/prometheus.Counter
9192
- github.com/prometheus/client_golang/prometheus.Gauge
9293
- github.com/prometheus/client_golang/prometheus.Histogram
94+
# Third-party interfaces we are obliged to return: either the signature is fixed by an
95+
# interface we implement (Pagination, bccsp.Key, KeyStore) or it is the framework's own
96+
# constructor convention (view.View, view.Session). Returning a concrete type instead is
97+
# not an option in these cases, so allow them rather than carry a nolint at every site.
98+
- github.com/hyperledger-labs/fabric-smart-client/platform/common/driver.Pagination
99+
- github.com/hyperledger-labs/fabric-smart-client/platform/view/view.View
100+
- github.com/hyperledger-labs/fabric-smart-client/platform/view/view.Session
101+
- github.com/hyperledger/fabric-lib-go/bccsp.Key
102+
- github.com/hyperledger/fabric-lib-go/bccsp.BCCSP
103+
- github.com/hyperledger/fabric-lib-go/bccsp.HashOpts
104+
- github.com/IBM/idemix/bccsp/types.BCCSP
105+
- github.com/IBM/idemix/bccsp/types.KeyStore
106+
- go.opentelemetry.io/otel/trace.Span
107+
- github.com/hyperledger/fabric-lib-go/common/metrics.Gauge
108+
- github.com/hyperledger/fabric-lib-go/common/metrics.Histogram
109+
- github.com/hyperledger-labs/fabric-smart-client/platform/common/driver.ConfigService
110+
- github.com/hyperledger-labs/fabric-smart-client/integration/nwo/api.ViewClient
111+
- github.com/hyperledger-labs/fabric-smart-client/integration/nwo/api.Platform
112+
- github.com/hyperledger-labs/fabric-smart-client/integration/nwo/api.Context
93113
lll:
94114
# Max line length, lines longer will be reported.
95115
line-length: 240

ADOPTERS.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
[//]: # (SPDX-License-Identifier: CC-BY-4.0)
2+
3+
# Adopters
4+
5+
This file lists organizations and projects using Panurus, together with a publicly verifiable
6+
reference for each entry.
7+
8+
## Are you using Panurus?
9+
10+
Please add yourself. Adopter lists help the community understand where Panurus is deployed, guide
11+
roadmap priorities, and give new users confidence in the project.
12+
13+
To be added:
14+
15+
1. Open a pull request editing this file.
16+
2. Add a row to the table below.
17+
3. Include a **publicly verifiable reference** — a link to an announcement, blog post, paper, press
18+
release, conference talk, or public repository. Entries without a public reference cannot be
19+
accepted, as required by the
20+
[LFDT project consistency guidelines][lfdt-consistency].
21+
4. Only add your organization if you are authorized to do so on its behalf.
22+
23+
If you would rather not be listed publicly but are happy for the maintainers to know, say so in a
24+
[GitHub Discussion](https://github.com/LFDT-Panurus/panurus/discussions) instead.
25+
26+
## Adopters
27+
28+
| Organization / Project | Type of use | Status | Reference |
29+
|------------------------|-------------|--------|-----------|
30+
31+
_No adopters are listed yet. Entries require a publicly verifiable reference — see above._
32+
33+
**Status** is one of:
34+
35+
- **Production** — deployed in a production environment.
36+
- **Pilot** — deployed in a limited pilot or proof of concept.
37+
- **Evaluating** — under active evaluation.
38+
39+
<!--
40+
Example row:
41+
42+
| Example Bank | Tokenized deposits on Fabric | Pilot | https://example.org/press/tokenized-deposit-pilot |
43+
-->
44+
45+
[lfdt-consistency]: https://github.com/LF-Decentralized-Trust/governance/blob/main/tac/guidelines/project-consistency-guidelines.md

CODE_OF_CONDUCT.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Code of Conduct Guidelines
22
==========================
33

4-
Please review the Hyperledger [Code of Conduct](https://www.lfdecentralizedtrust.org/code-of-conduct)
4+
Please review the LF Decentralized Trust [Code of Conduct](https://www.lfdecentralizedtrust.org/code-of-conduct)
55
before participating. It is important that we keep things civil.
66

77
<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.

MAINTAINERS.md

Lines changed: 82 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,91 @@
1-
Maintainers
2-
===========
1+
[//]: # (SPDX-License-Identifier: CC-BY-4.0)
32

4-
**Active Maintainers**
3+
# Maintainers
54

6-
| Name | GitHub | Chat | email |
7-
|--------------------|--------------------------------------|-------------|-----------------------------|
8-
| Angelo De Caro | [adecaro][adecaro] | adecaro | <adc@zurich.ibm.com> |
9-
| Kaoutar Elkhiyaoui | [KElkhiyaoui][KElkhiyaoui] | KElkhiyaoui | <kao@zurich.ibm.com> |
10-
| Arne Rutjes | [arner][arner] | arner | <arne.rutjesISC@nl.ibm.com> |
11-
| Alexandros Filios | [alexandrosfilios][alexandrosfilios] | lio | <alexandros.filios@alumni.ethz.ch> |
12-
| Akram Bitar | [AkramBitar][AkramBitar] | akrambitar | <akram@il.ibm.com> |
5+
Changes to either list below are made by pull request against this file. After such a pull request
6+
is merged, the corresponding GitHub team (`panurus-maintainers`) must be updated manually to match.
137

14-
**Emeritus Maintainers**
8+
## Active Maintainers
159

16-
| Name | GitHub | Chat | email
17-
|------|--------|------|----------------------
18-
| Alessandro Sorniotti | [ale-linux][ale-linux] | aso | <ale.linux@sopit.net>
19-
| Elli Androulaki | [elli-androulaki][elli-androulaki] | elli-androulaki | <lli@zurich.ibm.com>
20-
| Mathilde Ffrench | [mffrench][mffrench] | mffrench | <mathilde.ffrench@fr.ibm.com>
10+
| Name | GitHub ID | Scope | LFID | Discord ID | Email | Company Affiliation |
11+
|------|-----------|-------|------|------------|-------|---------------------|
12+
| Angelo De Caro | [adecaro][adecaro] | Maintainer | | adecaro | <adc@zurich.ibm.com> | IBM |
13+
| Kaoutar Elkhiyaoui | [KElkhiyaoui][KElkhiyaoui] | Maintainer | | KElkhiyaoui | <kao@zurich.ibm.com> | IBM |
14+
| Arne Rutjes | [arner][arner] | Maintainer | | arner | <arne.rutjesISC@nl.ibm.com> | IBM |
15+
| Alexandros Filios | [alexandrosfilios][alexandrosfilios] | Maintainer | | lio | <alexandros.filios@alumni.ethz.ch> | Independent |
16+
| Akram Bitar | [AkramBitar][AkramBitar] | Maintainer | | akrambitar | <akram@il.ibm.com> | IBM |
17+
18+
## Emeritus Maintainers
19+
20+
| Name | GitHub ID | Scope | LFID | Discord ID | Email | Company Affiliation |
21+
|------|-----------|-------|------|------------|-------|---------------------|
22+
| Alessandro Sorniotti | [ale-linux][ale-linux] | Maintainer | | aso | <ale.linux@sopit.net> | IBM |
23+
| Elli Androulaki | [elli-androulaki][elli-androulaki] | Maintainer | | elli-androulaki | <lli@zurich.ibm.com> | IBM |
24+
| Mathilde Ffrench | [mffrench][mffrench] | Maintainer | | mffrench | <mathilde.ffrench@fr.ibm.com> | IBM |
25+
26+
## Scopes
27+
28+
Panurus uses a single maintainer scope covering the whole repository.
29+
30+
| Scope | Definition | GitHub Role | GitHub Team |
31+
|-------|------------|-------------|-------------|
32+
| Maintainer | Maintainer for the entire repository | Maintain | `panurus-maintainers` |
33+
34+
## Maintainer Duties
35+
36+
Maintainers are expected to:
37+
38+
- Review and merge pull requests, and keep CI green.
39+
- Triage incoming issues.
40+
- Participate in project calls and technical discussions.
41+
- Contribute to the mid-year project update and annual review filed with the LFDT TAC.
42+
- Mentor contributors working toward maintainership.
43+
44+
Members of the security team carry the additional responsibilities described in
45+
[SECURITY.md](SECURITY.md).
46+
47+
## How to Become a Maintainer
48+
49+
Candidates for maintainership are expected to have:
50+
51+
- a sustained history of substantive contributions to Panurus — code, review, documentation, or
52+
release engineering,
53+
- demonstrated good judgement in code review, and
54+
- familiarity with the project's architecture and contribution process
55+
(see [CONTRIBUTING.md](CONTRIBUTING.md)).
56+
57+
The process is:
58+
59+
1. An existing active maintainer sponsors the candidate.
60+
2. The sponsor opens a pull request adding the candidate to the **Active Maintainers** table above,
61+
with a justification in the pull request description summarising the candidate's contributions.
62+
3. Current active maintainers have **two weeks** to review and raise objections.
63+
4. Approval requires a majority of active maintainers, with no sustained objection.
64+
5. Once merged, the `panurus-maintainers` GitHub team is updated to grant access.
65+
66+
An emeritus maintainer may return to active status by the same process, without requiring a new
67+
sponsor.
68+
69+
## How Maintainers are Removed or Moved to Emeritus Status
70+
71+
A maintainer may be moved to emeritus status:
72+
73+
- **At their own request** — open a pull request moving your row to the **Emeritus Maintainers**
74+
table. This needs no further approval.
75+
- **Through inactivity** — a maintainer with no meaningful contribution or review activity for
76+
**twelve months** may be proposed for emeritus status.
77+
- **For conduct** — a violation of the [Code of Conduct](CODE_OF_CONDUCT.md) may result in removal.
78+
79+
Proposals follow the same path as additions: a pull request against this file with a justification,
80+
a two-week comment window, and approval by a majority of active maintainers. Moving to emeritus
81+
status is not a judgement on past contributions; it reflects current activity, and the door back is
82+
described above.
2183

22-
[elli-androulaki]: https://github.com/elli-androulaki
2384
[adecaro]: https://github.com/adecaro
2485
[KElkhiyaoui]: https://github.com/KElkhiyaoui
25-
[mffrench]: https://github.com/mffrench
26-
[ale-linux]: https://github.com/ale-linux
2786
[arner]: https://github.com/arner
2887
[alexandrosfilios]: https://github.com/alexandrosfilios
29-
[AkramBitar]: https://github.com/AkramBitar
88+
[AkramBitar]: https://github.com/AkramBitar
89+
[ale-linux]: https://github.com/ale-linux
90+
[elli-androulaki]: https://github.com/elli-androulaki
91+
[mffrench]: https://github.com/mffrench

README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
<p align="center">
66
<a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202-blue" alt="License"></a>
7+
<a href="https://www.bestpractices.dev/projects/7176"><img src="https://www.bestpractices.dev/projects/7176/badge" alt="OpenSSF Best Practices"></a>
78
<a href="https://goreportcard.com/badge/github.com/LFDT-Panurus/panurus"><img src="https://goreportcard.com/badge/github.com/LFDT-Panurus/panurus" alt="Go Report Card"></a>
89
<a href="https://github.com/LFDT-Panurus/panurus/actions/workflows/tests.yml"><img src="https://github.com/LFDT-Panurus/panurus/actions/workflows/tests.yml/badge.svg?branch=main" alt="Tests"></a>
910
<a href="https://github.com/LFDT-Panurus/panurus/actions/workflows/codeql-analysis.yml"><img src="https://github.com/LFDT-Panurus/panurus/actions/workflows/codeql-analysis.yml/badge.svg?branch=main" alt="CodeQL"></a>
@@ -15,8 +16,14 @@ Panurus provides a collection of APIs and services that streamline development f
1516
# Useful Links
1617

1718
- [`Documentation`](docs/README.md): The entry point for Panurus documentation.
19+
- [`Releases`](https://github.com/LFDT-Panurus/panurus/releases): Current and past releases, with
20+
release notes. The latest release is always at
21+
[`releases/latest`](https://github.com/LFDT-Panurus/panurus/releases/latest).
1822
- [`Development`](docs/development/development.md): All about the development guidelines.
1923
- [`Contributing`](CONTRIBUTING.md): How to contribute to the project.
24+
- [`Adopters`](ADOPTERS.md): Who is using Panurus. **Using Panurus? Please add yourself to
25+
[`ADOPTERS.md`](ADOPTERS.md)** — it helps the community understand where the project is deployed.
26+
- [`Security`](SECURITY.md): How to report a security vulnerability.
2027
- [`Fabric Samples`](https://github.com/hyperledger/fabric-samples/tree/main/token-sdk) Panurus sample application is the
2128
quickest way to get a full network running with a REST API to issue, transfer and redeem tokens right away.
2229
- [`Benchmarks`](./docs/drivers/benchmark/benchmark.md): Benchmark guidelines and reports.
@@ -30,7 +37,7 @@ Panurus provides a collection of APIs and services that streamline development f
3037

3138
# Additional Resources
3239

33-
- (March 17, 2022) [`Hyperledger in-Depth: Tokens in Hyperledger Fabric: What’s possible today and what’s coming`](https://www.hyperledger.org/learn/webinars/hyperledger-in-depth-tokens-in-hyperledger-fabric-whats-possible-today-and-whats-coming):
40+
- (March 17, 2022) [`Hyperledger in-Depth: Tokens in Hyperledger Fabric: What’s possible today and what’s coming`](https://lfdecentralizedtrust.org/learn/webinars/hyperledger-in-depth-tokens-in-hyperledger-fabric-whats-possible-today-and-whats-coming):
3441
Tokenizing the physical world is a hot blockchain topic in the industry, especially as it relates to the
3542
trade of tokens as a basis of new forms of commerce. In this Hyperledger Foundation member webinar,
3643
the IBM Research team describes in this webinar what tokenization use cases are possible with Hyperledger Fabric today,

0 commit comments

Comments
 (0)