Skip to content

Commit

Permalink
Add verkle trie implementation (#3)
Browse files Browse the repository at this point in the history
Implementing the Verkle Trie library. It sets up the initial version of the repository by adding the necessary code and librairies for Verkle Trie.

---------

Signed-off-by: Thomas Zamojski <[email protected]>
Co-authored-by: Karim TAAM <[email protected]>
Co-authored-by: Paweł <[email protected]>
  • Loading branch information
matkt and neotheprogramist authored Nov 6, 2023
1 parent c671e5d commit c3dff8c
Show file tree
Hide file tree
Showing 49 changed files with 4,230 additions and 54 deletions.
24 changes: 24 additions & 0 deletions .github/issue_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<!--
By filing an Issue, you are expected to comply with the Code of Conduct,
including treating everyone with respect.
Not all sections will apply to all issue types.
-->

### Description
[Detailed description of the problem and the impact it has]

### Steps to Reproduce (Bug)
[Please be as specific as possible]

**Expected behavior:** [What you expect to happen]

**Actual behavior:** [What actually happens]

**Frequency:** [How regularly does it occur?]

### Versions (Add all that apply)
* Java version: [`java -version`]
* OS Name & Version: [`cat /etc/*release`]
* Docker Version: [`docker version`]
* Cloud VM, type, size: [Amazon Web Services I3-large]
7 changes: 7 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<!-- Thanks for sending a pull request! Please check out our contribution guidelines: -->

## PR description

## Fixed Issue(s)
<!-- Please link to fixed issue(s) here using format: fixes #<issue number> -->
<!-- Example: "fixes #2" -->
33 changes: 33 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Build and Publish

on:
pull_request:
push:
branches:
- main

jobs:
build-and-publish:
runs-on: ubuntu-latest
if: ${{ github.actor != 'dependabot[bot]' }}
steps:
- name: Checkout Repo
uses: actions/checkout@v3
- name: Set up Java
uses: actions/setup-java@v3
with:
distribution: adopt
java-version: 17
cache: gradle
- name: spotless
run: ./gradlew --no-daemon --parallel clean spotlessCheck
- name: Build with Gradle
run: ./gradlew build
- name: Publish to Artifactory
uses: gradle/gradle-build-action@v2
if: contains('refs/heads/release-', github.ref) || github.ref == 'refs/heads/main'
env:
ARTIFACTORY_USER: ${{ secrets.ARTIFACTORY_USER}}
ARTIFACTORY_KEY: ${{ secrets.BESU_ARTIFACTORY }}
with:
arguments: --no-daemon --parallel publish artifactoryPublish --scan
10 changes: 10 additions & 0 deletions .github/workflows/dco-merge-group.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: dco
on:
merge_group:

jobs:
dco:
runs-on: [besu-research-ubuntu-8]
if: ${{ github.actor != 'dependabot[bot]' }}
steps:
- run: echo "This DCO job runs on merge_queue event and doesn't check PR contents"
20 changes: 20 additions & 0 deletions .github/workflows/dco.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: dco
on:
pull_request:
workflow_dispatch:

jobs:
dco:
runs-on: [besu-research-ubuntu-8]
if: ${{ github.actor != 'dependabot[bot]' }}
steps:
- run: echo "This DCO job runs on pull_request event and workflow_dispatch"
- name: Get PR Commits
id: 'get-pr-commits'
uses: tim-actions/[email protected]
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: DCO Check
uses: tim-actions/[email protected]
with:
commits: ${{ steps.get-pr-commits.outputs.commits }}
20 changes: 20 additions & 0 deletions .github/workflows/pr-checklist-on-open.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: "comment on pr with checklist"
on:
pull_request_target:
types: [ opened ]
branches: [ main ]
jobs:
checklist:
name: "add checklist as a comment on newly opened PRs"
runs-on: [besu-research-ubuntu-8]
steps:
- uses: actions/github-script@v5
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: '- [ ] I thought about the changelog.'
})
24 changes: 24 additions & 0 deletions .github/workflows/repolinter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# SPDX-License-Identifier: Apache-2.0
# Hyperledger Repolinter Action
name: Repolinter

on:
workflow_dispatch:
push:
branches:
- master
- main
pull_request:
branches:
- master
- main

jobs:
build:
runs-on: [besu-research-ubuntu-16]
container: ghcr.io/todogroup/repolinter:v0.10.1
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Lint Repo
run: bundle exec /app/bin/repolinter.js --rulesetUrl https://raw.githubusercontent.com/hyperledger-labs/hyperledger-community-management-tools/main/repo_structure/repolint.json --format markdown
73 changes: 37 additions & 36 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,42 +1,43 @@
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/

### IntelliJ IDEA ###
.idea/modules.xml
.idea/jarRepositories.xml
.idea/compiler.xml
.idea/libraries/
*.iws
*.bak
*.swp
*.tmp
*~.nib
*.iml
*.ipr
out/
!**/src/main/**/out/
!**/src/test/**/out/

### Eclipse ###
.apt_generated
*.launch
*.log
.lh/*
db/
db.version
.classpath
.factorypath
.DS_Store
.gradletasknamecache
.externalToolBuilders/
.gradle/
.idea/
.loadpath
.metadata
.prefs
.project
.recommenders/
.settings
.springBeans
.sts4-cache
.vertx
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/

### VS Code ###
.vscode/

### Mac OS ###
.DS_Store
local.properties
target/
tmp/
**/build/
out/
*.vscode/
gradle/flow/
*.rlib
*.d
*.a
*.class
scripts/.java-version
**/src/jmh/generated_tests/
**/src/jmh/generated/*
hs_err_pid*
/shomei.db
node_modules
/**/build/
166 changes: 166 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
# [Hyperledger Code of Conduct](https://wiki.hyperledger.org/community/hyperledger-project-code-of-conduct)

Hyperledger is a collaborative project at The Linux Foundation. It is an open-source and open
community project where participants choose to work together, and in that process experience
differences in language, location, nationality, and experience. In such a diverse environment,
misunderstandings and disagreements happen, which in most cases can be resolved informally. In rare
cases, however, behavior can intimidate, harass, or otherwise disrupt one or more people in the
community, which Hyperledger will not tolerate.

A **Code of Conduct** is useful to define accepted and acceptable behaviors and to promote high
standards of professional practice. It also provides a benchmark for self evaluation and acts as a
vehicle for better identity of the organization.

This code (**CoC**) applies to any member of the Hyperledger community – developers, participants in
meetings, teleconferences, mailing lists, conferences or functions, etc. Note that this code
complements rather than replaces legal rights and obligations pertaining to any particular
situation.

## Statement of Intent

Hyperledger is committed to maintain a **positive** [work environment](#work-environment). This
commitment calls for a workplace where [participants](#participant) at all levels behave according
to the rules of the following code. A foundational concept of this code is that we all share
responsibility for our work environment.

## Code

1. Treat each other with [respect](#respect), professionalism, fairness, and sensitivity to our many
differences and strengths, including in situations of high pressure and urgency.

2. Never [harass](#harassment) or [bully](#workplace-bullying) anyone verbally, physically or
[sexually](#sexual-harassment).

3. Never [discriminate](#discrimination) on the basis of personal characteristics or group
membership.

4. Communicate constructively and avoid [demeaning](#demeaning-behavior) or
[insulting](#insulting-behavior) behavior or language.

5. Seek, accept, and offer objective work criticism, and [acknowledge](#acknowledgement) properly
the contributions of others.

6. Be honest about your own qualifications, and about any circumstances that might lead to conflicts
of interest.

7. Respect the privacy of others and the confidentiality of data you access.

8. With respect to cultural differences, be conservative in what you do and liberal in what you
accept from others, but not to the point of accepting disrespectful, unprofessional or unfair or
[unwelcome behavior](#unwelcome-behavior) or [advances](#unwelcome-sexual-advance).

9. Promote the rules of this Code and take action (especially if you are in a
[leadership position](#leadership-position)) to bring the discussion back to a more civil level
whenever inappropriate behaviors are observed.

10. Stay on topic: Make sure that you are posting to the correct channel and avoid off-topic
discussions. Remember when you update an issue or respond to an email you are potentially
sending to a large number of people.

11. Step down considerately: Members of every project come and go, and the Hyperledger is no
different. When you leave or disengage from the project, in whole or in part, we ask that you do
so in a way that minimizes disruption to the project. This means you should tell people you are
leaving and take the proper steps to ensure that others can pick up where you left off.

## Glossary

### Demeaning Behavior

is acting in a way that reduces another person's dignity, sense of self-worth or respect within the
community.

### Discrimination

is the prejudicial treatment of an individual based on criteria such as: physical appearance, race,
ethnic origin, genetic differences, national or social origin, name, religion, gender, sexual
orientation, family or health situation, pregnancy, disability, age, education, wealth, domicile,
political view, morals, employment, or union activity.

### Insulting Behavior

is treating another person with scorn or disrespect.

### Acknowledgement

is a record of the origin(s) and author(s) of a contribution.

### Harassment

is any conduct, verbal or physical, that has the intent or effect of interfering with an individual,
or that creates an intimidating, hostile, or offensive environment.

### Leadership Position

includes group Chairs, project maintainers, staff members, and Board members.

### Participant

includes the following persons:

- Developers
- Member representatives
- Staff members
- Anyone from the Public partaking in the Hyperledger work environment (e.g. contribute code,
comment on our code or specs, email us, attend our conferences, functions, etc)

### Respect

is the genuine consideration you have for someone (if only because of their status as participant in
Hyperledger, like yourself), and that you show by treating them in a polite and kind way.

### Sexual Harassment

includes visual displays of degrading sexual images, sexually suggestive conduct, offensive remarks
of a sexual nature, requests for sexual favors, unwelcome physical contact, and sexual assault.

### Unwelcome Behavior

Hard to define? Some questions to ask yourself are:

- how would I feel if I were in the position of the recipient?
- would my spouse, parent, child, sibling or friend like to be treated this way?
- would I like an account of my behavior published in the organization's newsletter?
- could my behavior offend or hurt other members of the work group?
- could someone misinterpret my behavior as intentionally harmful or harassing?
- would I treat my boss or a person I admire at work like that ?
- Summary: if you are unsure whether something might be welcome or unwelcome, don't do it.

### Unwelcome Sexual Advance

includes requests for sexual favors, and other verbal or physical conduct of a sexual nature, where:

- submission to such conduct is made either explicitly or implicitly a term or condition of an
individual's employment,
- submission to or rejection of such conduct by an individual is used as a basis for employment
decisions affecting the individual,
- such conduct has the purpose or effect of unreasonably interfering with an individual's work
performance or creating an intimidating hostile or offensive working environment.

### Workplace Bullying

is a tendency of individuals or groups to use persistent aggressive or unreasonable behavior (e.g.
verbal or written abuse, offensive conduct or any interference which undermines or impedes work)
against a co-worker or any professional relations.

### Work Environment

is the set of all available means of collaboration, including, but not limited to messages to
mailing lists, private correspondence, Web pages, chat channels, phone and video teleconferences,
and any kind of face-to-face meetings or discussions.

## Incident Procedure

To report incidents or to appeal reports of incidents, send email to Mike Dolan
([email protected]) or Angela Brown ([email protected]). Please include any
available relevant information, including links to any publicly accessible material relating to the
matter. Every effort will be taken to ensure a safe and collegial environment in which to
collaborate on matters relating to the Project. In order to protect the community, the Project
reserves the right to take appropriate action, potentially including the removal of an individual
from any and all participation in the project. The Project will work towards an equitable resolution
in the event of a misunderstanding.

## Credits

This code is based on the
[W3C’s Code of Ethics and Professional Conduct](https://www.w3.org/Consortium/cepc) with some
additions from the [Cloud Foundry](https://www.cloudfoundry.org/)‘s Code of Conduct.
Loading

0 comments on commit c3dff8c

Please sign in to comment.