Skip to content

Commit

Permalink
Initial Commit
Browse files Browse the repository at this point in the history
Co-authored-by: James Lovejoy <[email protected]>
Co-authored-by: Spencer Connaughton <[email protected]>
Co-authored-by: Gert-Jaap Glasbergen <[email protected]>
Co-authored-by: Cory Fields <[email protected]>
Co-authored-by: Neha Narula <[email protected]>
Co-authored-by: Sam Stuewe <[email protected]>
Co-authored-by: Kevin Karwaski <[email protected]>
Co-authored-by: Viktor Urvantsev <[email protected]>
Co-authored-by: jallen-frb <[email protected]>
Co-authored-by: Anders Brownworth <[email protected]>
Signed-off-by: Sam Stuewe <[email protected]>
  • Loading branch information
10 people committed Apr 5, 2022
0 parents commit f617c4e
Show file tree
Hide file tree
Showing 309 changed files with 35,949 additions and 0 deletions.
90 changes: 90 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
AccessModifierOffset: -2
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: false
AlignConsecutiveBitFields: false
AlignConsecutiveDeclarations: false
AlignConsecutiveMacros: true
AlignEscapedNewlines: Left
AlignOperands: AlignAfterOperator
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: false
AllowAllConstructorInitializersOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: Empty
AllowShortCaseLabelsOnASingleLine: false
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Empty
AllowShortIfStatementsOnASingleLine: Never
AllowShortLambdasOnASingleLine: Empty
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: false
BinPackParameters: false
BraceWrapping:
AfterCaseLabel: false
AfterClass: false
AfterControlStatement: Never
AfterEnum: false
AfterFunction: false
AfterNamespace: false
AfterStruct: false
AfterUnion: false
AfterExternBlock: false
BeforeCatch: false
BeforeElse: false
BeforeLambdaBody: false
BeforeWhile: false
IndentBraces: false
BreakBeforeBinaryOperators: All
BreakBeforeBraces: Attach
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeColon
BreakInheritanceList: BeforeColon
BreakStringLiterals: true
ColumnLimit: 79
CommentPragmas: '^\\.+'
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: true
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
FixNamespaceComments: false
IncludeBlocks: Regroup
IndentCaseBlocks: false
IndentCaseLabels: true
IndentExternBlock: Indent
IndentPPDirectives: None
IndentWidth: 4
IndentWrappedFunctionNames: false
InsertTrailingCommas: None
KeepEmptyLinesAtTheStartOfBlocks: false
Language: Cpp
MaxEmptyLinesToKeep: 1
NamespaceIndentation: All
PointerAlignment: Left
ReflowComments: true
SortIncludes: true
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: Never
SpaceBeforeRangeBasedForLoopColon: true
SpaceBeforeSquareBrackets: false
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInCStyleCastParentheses: false
SpacesInConditionalStatement: false
SpacesInContainerLiterals: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Latest
UseTab: Never
15 changes: 15 additions & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# TODO: Renable bugprone-easily-swappable-parameters
Checks: '
clang-analyzer-*,
bugprone-*,
-bugprone-easily-swappable-parameters,
modernize-*,
performance-*,
portability-*,
cppcoreguidelines-*,
-cppcoreguidelines-pro-bounds-array-to-pointer-decay,
readability-*,
google-explicit-constructor'
WarningsAsErrors: '*'
FormatStyle: 'file'
HeaderFilterRegex: 'hpp'
6 changes: 6 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
build
run
benchmarks
plots
.vscode
.deps
56 changes: 56 additions & 0 deletions .github/ISSUE_TEMPLATE/bug.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Bug Report
description: >
Report undesirable/unexpected behavior in the code.
title: "[A short, descriptive title]"
labels:
- fix/bug
assignees:
- halosghost
body:
- type: textarea
id: branch
attributes:
label: Affected Branch
description: >
What branch of the code is affected by the issue?
placeholder: trunk
validations:
required: true
- type: checkboxes
id: latest
attributes:
label: Basic Diagnostics
options:
- label: >
I've pulled the latest changes on the affected branch and the
issue is still present.
required: true
- label: The issue is reproducible in docker
- type: textarea
id: Description
attributes:
label: Description
description: >
Tell us as much about the problem as you can.
Include steps-to-reproduce, any relevant errors/logs/tracebacks, as
well as links to any related commits/issues/resources that you've found
so far.
value: |
In order to reproduce the issue, follow these steps:
1. …
2. …
3. …
validations:
required: true
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: >
By submitting this bug report, you agree to follow the project's
[Code of Conduct](https://github.com/mit-dci/opencbdc-tx/tree/trunk/docs/code_of_conduct.md)
options:
- label: I agree to follow this project's Code of Conduct
required: true

51 changes: 51 additions & 0 deletions .github/ISSUE_TEMPLATE/logistics.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Logistical Change
description: >
Submit a proposal to modify the project's governance or model
of collaboration.
title: "[A short, descriptive title]"
labels:
- feedback/logistics
assignees:
- halosghost
body:
- type: textarea
id: abstract
attributes:
label: Abstract
description: >
Give a brief (200 words or less) summary of the changes you are
proposing.
placeholder: ex. This proposal officially recognizes a new Working Group…
validations:
required: true
- type: textarea
id: Description
attributes:
label: Description
description: >
Flesh out any specifics that could not fit in the abstract as well as
the reason for the changes proposed.
If relevant, include possible alternative solutions to the problem
being solved and why you feel your proposed changes are the best course
of action.
Include any possible draw-backs you can foresee and how they may be
avoided.
Additionally, if any of the changes you propose have possible conflicts
with the project's
[principles](https://github.com/mit-dci/opencbdc-tx/tree/trunk/docs/contributing.md#OpenCBDCs-Guiding-Principles),
walk through them here.
validations:
required: true
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: >
By submitting this proposal, you agree to follow the project's
[Code of Conduct](https://github.com/mit-dci/opencbdc-tx/tree/trunk/docs/code_of_conduct.md)
options:
- label: I agree to follow this project's Code of Conduct
required: true

85 changes: 85 additions & 0 deletions .github/ISSUE_TEMPLATE/research.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: Research Proposal
description: >
Submit a proposal to research a potential solution for a given
question or problem.
title: "[A short, descriptive title]"
labels:
- feedback/proposal
assignees:
- halosghost
body:
- type: textarea
id: question
attributes:
label: Question
description: Give a concise (100 words or less) summary of a question about CBDCs.
placeholder: ex. Could a CBDC offer support for <some feature> and still perform at-scale?
validations:
required: true
- type: textarea
id: value
attributes:
label: Benefit
description: >
Even if it feels obvious, offer an explanation of the benefits of answering this question.
For example, would it clarify the practical potential of CBDCs to solve problems,
or offer more concrete information for policymakers to consider when planning implementation?
placeholder: ex. Answering this question could help policymakers determine if the proposed design is practical.
validations:
required: true
- type: textarea
id: solution
attributes:
label: Proposed Solution
description: >
An ideal proposal will include a potential avenue that could be followed
to find an answer.
Walk through options you have identified (even if they are not fully-formed).
For example, answering your question may require creating new designs,
implementing some feature, designing a representative benchmark, etc.
Any specifics that you know in-advance should be written out here.
validations:
required: false
- type: textarea
id: challenges
attributes:
label: Possible Difficulties
description: >
Answering a research question is not always easy.
If you can forsee any possible pitfalls or difficulties, mention them
here; if possible, include how they may be avoided.
Additionally, if answering your question would involve possible conflicts
with the project's
[principles](https://github.com/mit-dci/opencbdc-tx/tree/trunk/docs/contributing.md#OpenCBDCs-Guiding-Principles),
walk through them here.
validations:
required: false
- type: textarea
id: prior
attributes:
label: Prior Work
description: >
If you referred to any published material in the creation of this proposal,
reference it here (e.g., papers which explored similar questions, projects
which inspired the proposed solution, etc.).
Where possible, please offer a very short description of how the reference
contributed to the formation of this proposal.
validations:
required: false
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: >
By submitting this proposal, you agree to follow the project's
[Code of Conduct](https://github.com/mit-dci/opencbdc-tx/tree/trunk/docs/code_of_conduct.md)
options:
- label: I agree to follow this project's Code of Conduct
required: true

90 changes: 90 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
name: CI

on:
pull_request:
branches:
- trunk
push:
branches:
- trunk

defaults:
run:
shell: bash

env:
BUILD_DIR: x86_64

jobs:
build-release:
name: Build Release Candidate
runs-on: ubuntu-20.04
env:
BUILD_RELEASE: 1
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Configure
run: sudo ./scripts/configure.sh
- name: Build
run: scripts/build.sh
lint:
name: Lint
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Configure
run: sudo ./scripts/configure.sh
- name: Build
run: scripts/build.sh
- name: Lint
run: scripts/lint.sh
unit-and-integration-test:
name: Unit and Integration Tests
runs-on: ubuntu-20.04
timeout-minutes: 15
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Configure
run: sudo ./scripts/configure.sh
- name: Build
run: scripts/build.sh
- name: Run Unit Tests
run: scripts/test.sh
- name: Shorten SHA
id: vars
run: echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
- uses: actions/upload-artifact@v2
if: ${{ !env.ACT }}
name: Archive Test Results
with:
name: Test Results for ${{ steps.vars.outputs.sha_short }}
path: |
${{env.BUILD_DIR}}/unit_tests_coverage/output/*
${{env.BUILD_DIR}}/integration_tests_coverage/output/*
retention-days: 7
doxygen:
name: doxygen
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Install Doxygen
run: |
sudo apt-get update
sudo apt-get install -y doxygen graphviz
- name: Run Doxygen
run: doxygen Doxyfile
- name: Upload Docs artifacts
if: ${{ !env.ACT }}
uses: actions/upload-artifact@v2
with:
name: OpenCBDC Transaction Processor docs for ${{ steps.vars.outputs.sha_short }}
path: ./doxygen_generated/html/*
retention-days: 7
Loading

0 comments on commit f617c4e

Please sign in to comment.