Core libraries, services and CLIs for Monetæ

Overview

Architecture Overview

monetae-sdk (library, CLI) | | state in invalid. | | | | | | | | SDK for interacting with monetae currency files. | | | | | | +----------------------^-------+-----------------------------+ | +--------------------------+-------------------------------------+ | | | | Requests permission | | Authority responds with | +--------------------------v-------------------------------------+ from an authority | | the signed public key of the | | monetae-promissory-schema (library) | | | mint and the issuance limit | | | | | allowed to the mint. | | The flatbuffer schema representing a monetae-promissory file. | | | | | | +----------------------+-------v-----------------------------+ | | Flatbuffers are a memory efficient, and light weight wire | | monetae-mint (service, CLI) | | | format. See benchmark results: | | | | | | | Issues new currency files. +----+ | https://google.github.io/flatbuffers/md__benchmarks.html | | | | | | | Each mint has its own ed25519 signing keys. Mints are | | | Flatbuffers support SDKs for multiple programming languages, | | delegated currency issuers. | | | enabling groups to write software for reading and writing | | | | | monetae-promissory files in their desired language. | | Mints receive permission programmatically from an | | | | | authority. When a mint is granted permission, its ed25519 | | | The initial implementation of the monetae-promissory is | | public key is kept in a registry. Each mint is given | | | written in the Rust programming language. | | limits on the amount of currency it may issue. | | | | | | | | The monetae-promissory-schema is semantic versioned, and is | | A mint's ed25519 public key is signed by an authority and | | | designed to be forward and backward compatible, due to | | is included in each currency file, such that any holder | | | flatbuffers optional design pattern. Furthermore, this design | | of the file may check it has been issued by an authorized | | | pattern ensures the file size of the note does not become | | mint. | | | bloated with extraneous fields. See: | | | | | | | Mints can check their issuance limits with an authority. | | | https://google.github.io/flatbuffers/md__schemas.html | | Mints provide an endpoint accessible by the authority | | | | | that returns the amount of currency issued. An authority | | | | | uses this endpoint to check the current amounts issued by | | | | | a mint. | | | | | | | | | | If a mint exceeds its limits, an authority may increase | | +----------------------------------------------------------------+ | the mint's limits, or it may restrict issuance of new | | | currency. | | +----------------------------------------------------------------+ | | | | monetae-promissory (file) | | Each currency file contains an issuance date which <----+----+ | | is used to determine the validity of a currency file with | | | File representing a note issued by a mint. | | the status of a mint. For example, if the mint's authority | | | | | has been revoked at a certain date, any currency files | | | Example file name: | | issued after that date (but before a reinstated date) are | | | | | considered invalid or fraudulent. | | | | | | | | | | | | | USD-100-2-C3-A6-DE8F1D7B-3322-4BE9-AD61-9CB801E748C1.ae | | | | | | +-----------------------------+------------------------------+ | | | | | | | +-----------------------------v------------------------------+ | | The first three characters are the ISO-4217 currency | | monetae-treasury (service, CLI) | | | code. | | | | | | | Holds domestic and foreign currency files, and provides | | | The second section, delimitted by `-`, is the amount | | foreign exchange services. | | | represented as a unsigned integer expanded decimal format. | | | | | | | Treasuries may be run by authorities and other commercial | | | The third section, delimitted by `-`, is the decimal precision | | or institutional actors. +----+ | of the amount. In the example above, the amount of the note | | | | | is one U.S. dollar and zero cents, i.e. $1.00. | | In the example of commercial actors, the treasury service | | | | | may provide internal mechanisms for settling payments | | | The fourth section, delimitted by `-`, is the prefix | | denominated in foreign amounts. | | | for monetae protocol notes, i.e. `C3-A6`. | | | | | | +----------------------------+-------------------------------+ | | The remainder of the file is the universally unique identifier | | | | (UUID) of the note. This UUID is registered with both the mint,| +----------------------------v-------------------------------+ | | and the issuing authority. The UUID is upper cased. | | monetae-sanctions (service, CLI) | | | | | | | | The file type of a monetae-promissory currency file is `.ae`. | | Sanctions provides a list of public keys mapped to +----+ | | | personal identifiable information (PII). This service | | The contents of the file is defined by the | | is operated by the authority managing the sactions list. | | monetae-promissory-schema, a flatbuffer schema. | | | | | +------------------------------------------------------------+ +----------------------------------------------------------------+ ">
+------------------------------------------------------------+         +----------------------------------------------------------------+
| monetae-authority (service, CLI)                           |         | monetae-wallet (library, CLI)                                  |
|                                                            |         |                                                                |
| "Lex Monetae"                                              |         | Wallet holds currency files and ed25519 private keys for       |
|                                                            |         | signing currency files.                                        |
| “The law of money.” The law governing the printing, use,   |         |                                                                |
| and disposal of currency in the issuing state.             |         | Wallets can be implemented in local storage or a hardware      |
|                                                            |         | wallet.                                                        |
| Authority is responsible for delegating the issuance       |         |                                                                |
| and disposal of currency.                                  |         | User interfaces for the wallet can be mobile applications      |
|                                                            |         | or web applications.                                           |
| Mints receive permission to create new money from the      |         |                                                                |
| authority.                                                 |         | Wallets can hold currency files issued by                      |
|                                                            |         | multiple authorities.                                          |
| An authority is managed by a governing board. Each         |         |                                                                |
| member of the board has its own ed25519 signing key.       |         +--------------------------^-------------------------------------+
|                                                            |                                    |
| Money that has been issued by a mint that has not been     |         +--------------------------+-------------------------------------+
| granted permission by an authority in an issuing           +----+----> monetae-sdk (library, CLI)                                     |
| state in invalid.                                          |    |    |                                                                |
|                                                            |    |    | SDK for interacting with monetae currency files.               |
|                                                            |    |    |                                                                |
+----------------------^-------+-----------------------------+    |    +--------------------------+-------------------------------------+
                       |       |                                  |                               |
  Requests permission  |       | Authority responds with          |    +--------------------------v-------------------------------------+
  from an authority    |       | the signed public key of the     |    | monetae-promissory-schema (library)                            |
                       |       | mint and the issuance limit      |    |                                                                |
                       |       | allowed to the mint.             |    | The flatbuffer schema representing a monetae-promissory file.  |
                       |       |                                  |    |                                                                |
+----------------------+-------v-----------------------------+    |    | Flatbuffers are a memory efficient, and light weight wire      |
| monetae-mint (service, CLI)                                |    |    | format. See benchmark results:                                 |
|                                                            |    |    |                                                                |
| Issues new currency files.                                 +----+    | https://google.github.io/flatbuffers/md__benchmarks.html       |
|                                                            |    |    |                                                                |
| Each mint has its own ed25519 signing keys. Mints are      |    |    | Flatbuffers support SDKs for multiple programming languages,   |
| delegated currency issuers.                                |    |    | enabling groups to write software for reading and writing      |
|                                                            |    |    | monetae-promissory files in their desired language.            |
| Mints receive permission programmatically from an          |    |    |                                                                |
| authority. When a mint is granted permission, its ed25519  |    |    | The initial implementation of the monetae-promissory is        |
| public key is kept in a registry. Each mint is given       |    |    | written in the Rust programming language.                      |
| limits on the amount of currency it may issue.             |    |    |                                                                |
|                                                            |    |    | The monetae-promissory-schema is semantic versioned, and is    |
| A mint's ed25519 public key is signed by an authority and  |    |    | designed to be forward and backward compatible, due to         |
| is included in each currency file, such that any holder    |    |    | flatbuffers optional design pattern. Furthermore, this design  |
| of the file may check it has been issued by an authorized  |    |    | pattern ensures the file size of the note does not become      |
| mint.                                                      |    |    | bloated with extraneous fields. See:                           |
|                                                            |    |    |                                                                |
| Mints can check their issuance limits with an authority.   |    |    | https://google.github.io/flatbuffers/md__schemas.html          |
| Mints provide an endpoint accessible by the authority      |    |    |                                                                |
| that returns the amount of currency issued. An authority   |    |    |                                                                |
| uses this endpoint to check the current amounts issued by  |    |    |                                                                |
| a mint.                                                    |    |    |                                                                |
|                                                            |    |    |                                                                |
| If a mint exceeds its limits, an authority may increase    |    |    +----------------------------------------------------------------+
| the mint's limits, or it may restrict issuance of new      |    |
| currency.                                                  |    |    +----------------------------------------------------------------+
|                                                            |    |    | monetae-promissory (file)                                      |
| Each currency file contains an issuance date which         <----+----+                                                                |
| is used to determine the validity of a currency file with  |    |    | File representing a note issued by a mint.                     |
| the status of a mint. For example, if the mint's authority |    |    |                                                                |
| has been revoked at a certain date, any currency files     |    |    | Example file name:                                             |
| issued after that date (but before a reinstated date) are  |    |    |                                                                |
| considered invalid or fraudulent.                          |    |    |                                                                |
|                                                            |    |    |                                                                |
|                                                            |    |    |   USD-100-2-C3-A6-DE8F1D7B-3322-4BE9-AD61-9CB801E748C1.ae      |
|                                                            |    |    |                                                                |
+-----------------------------+------------------------------+    |    |                                                                |
                              |                                   |    |                                                                |
+-----------------------------v------------------------------+    |    | The first three characters are the ISO-4217 currency           |
| monetae-treasury (service, CLI)                            |    |    | code.                                                          |
|                                                            |    |    |                                                                |
| Holds domestic and foreign currency files, and provides    |    |    | The second section, delimitted by `-`, is the amount           |
| foreign exchange services.                                 |    |    | represented as a unsigned integer expanded decimal format.     |
|                                                            |    |    |                                                                |
| Treasuries may be run by authorities and other commercial  |    |    | The third section, delimitted by `-`, is the decimal precision |
| or institutional actors.                                   +----+    | of the amount. In the example above, the amount of the note    |
|                                                            |    |    | is one U.S. dollar and zero cents, i.e. $1.00.                 |
| In the example of commercial actors, the treasury service  |    |    |                                                                |
| may provide internal mechanisms for settling payments      |    |    | The fourth section, delimitted by `-`, is the prefix           |
| denominated in foreign amounts.                            |    |    | for monetae protocol notes, i.e. `C3-A6`.                      |
|                                                            |    |    |                                                                |
+----------------------------+-------------------------------+    |    | The remainder of the file is the universally unique identifier |
                             |                                    |    | (UUID) of the note. This UUID is registered with both the mint,|
+----------------------------v-------------------------------+    |    | and the issuing authority. The UUID is upper cased.            |
| monetae-sanctions (service, CLI)                           |    |    |                                                                |
|                                                            |    |    | The file type of a monetae-promissory currency file is `.ae`.  |
| Sanctions provides a list of public keys mapped to         +----+    |                                                                |
| personal identifiable information (PII). This service      |         | The contents of the file is defined by the                     |
| is operated by the authority managing the sactions list.   |         | monetae-promissory-schema, a flatbuffer schema.                |
|                                                            |         |                                                                |
+------------------------------------------------------------+         +----------------------------------------------------------------+

Copyright (C) 2021 Emergent Financial, LLC - All Rights Reserved

This file is part of Monetae. Unauthorized copying of this file, via any medium is strictly prohibited. The file is proprietary and confidential. See LICENSE in root Monetae project repository End User License Agreement (UELA).

You might also like...
Safe, efficient, and ergonomic bindings to Wolfram LibraryLink and the Wolfram Language

wolfram-library-link Bindings to the Wolfram LibraryLink interface, making it possible to call Rust code from the Wolfram Language. This library is us

This blog provides detailed status updates and useful information about Theseus OS and its development

The Theseus OS Blog This blog provides detailed status updates and useful information about Theseus OS and its development. Attribution This blog was

Omeglib, a portmanteau of "omegle" and "library", is a crate for interacting with omegle, simply and asynchronously

Omeglib, a portmanteau of "omegle" and "library", is a crate for interacting with omegle, simply and asynchronously. It is intended to suit one's every requirement regarding chat on omegle.

Fast and simple datetime, date, time and duration parsing for rust.

speedate Fast and simple datetime, date, time and duration parsing for rust. speedate is a lax† RFC 3339 date and time parser, in other words, it pars

In this repository you can find modules with code and comments that explain rust syntax and all about Rust lang.
In this repository you can find modules with code and comments that explain rust syntax and all about Rust lang.

Learn Rust What is this? In this repository you can find modules with code and comments that explain rust syntax and all about Rust lang. This is usef

A tool and library to losslessly join multiple .mp4 files shot with same camera and settings

mp4-merge A tool and library to losslessly join multiple .mp4 files shot with same camera and settings. This is useful to merge multiple files that ar

A tray application for Windows that gives you push notifications and instant downloads of new posts, messages and stories posted by models you subscribe to on Onlyfans.

OF-notifier A tray application for Windows that gives you push notifications and instant downloads of new posts, messages and stories posted by models

A simpler and 5x faster alternative to HashMap in Rust, which doesn't use hashing and doesn't use heap

At least 5x faster alternative of HashMap, for very small maps. It is also faster than FxHashMap, hashbrown, ArrayMap, and nohash-hasher. The smaller

A comprehensive and FREE Online Rust hacking tutorial utilizing the x64, ARM64 and ARM32 architectures going step-by-step into the world of reverse engineering Rust from scratch.
A comprehensive and FREE Online Rust hacking tutorial utilizing the x64, ARM64 and ARM32 architectures going step-by-step into the world of reverse engineering Rust from scratch.

FREE Reverse Engineering Self-Study Course HERE Hacking Rust A comprehensive and FREE Online Rust hacking tutorial utilizing the x64, ARM64 and ARM32

Owner
monetæ
Money for the Masses
monetæ
Rust 核心库和标准库的源码级中文翻译,可作为 IDE 工具的智能提示 (Rust core library and standard library translation. can be used as IntelliSense for IDE tools)

Rust 标准库中文版 这是翻译 Rust 库 的地方, 相关源代码来自于 https://github.com/rust-lang/rust。 如果您不会说英语,那么拥有使用中文的文档至关重要,即使您会说英语,使用母语也仍然能让您感到愉快。Rust 标准库是高质量的,不管是新手还是老手,都可以从中

wtklbm 493 Jan 4, 2023
Core Temporal SDK that can be used as a base for language specific Temporal SDKs

Core SDK that can be used as a base for all other Temporal SDKs. Getting started See the Architecture doc for some high-level information. This repo u

temporal.io 136 Dec 21, 2022
Purplecoin Core integration/staging tree

ℙurplecoin Official implementation of Purplecoin, the first stateless cryptocurrency. Requires Rust Nightly >=v1.63.0. WARNING The source code is stil

Purplecoin 5 Dec 31, 2022
Purplecoin Core integration/staging tree

ℙurplecoin Official implementation of Purplecoin, the first stateless cryptocurrency. Requires Rust Nightly >=v1.63.0. WARNING The source code is stil

Purplecoin 8 Jan 12, 2023
Rust library provides a standalone implementation of the ROS (Robot Operating System) core

ROS-core implementation in Rust This Rust library provides a standalone implementation of the ROS (Robot Operating System) core. It allows you to run

Patrick Wieschollek 3 Apr 26, 2023
Repo for apps for the Pocket RISC-V core for Analogue Pocket/OpenFPGA. Multiple branches.

This is a repo meant to host Rust programs for agg23's Pocket RISC-V platform. While Rust can be built out of the openfpga-litex repo directly, this r

null 3 Dec 12, 2023
memchr vs stringzilla - up to 7x throughput difference between two SIMD-accelerated substring search libraries in Rust

memchr vs stringzilla Rust Substring Search Benchmarks Substring search is one of the most common operations in text processing, and one of the slowes

Ash Vardanian 38 Mar 5, 2024
This is a lightweight audio-video player built in Rust using FFmpeg libraries. It demonstrates the usage of FFmpeg with Rust to play back video files.

FFmpeg Rust Video Player This is a lightweight audio-video player built in Rust using FFmpeg libraries. It demonstrates the usage of FFmpeg with Rust

Jenin Sutradhar 3 Apr 10, 2024
An API for getting questions from http://either.io implemented fully in Rust, using reqwest and some regex magic. Provides asynchronous and blocking clients respectively.

eithers_rust An API for getting questions from http://either.io implemented fully in Rust, using reqwest and some regex magic. Provides asynchronous a

null 2 Oct 24, 2021