forked from oreoslabs/oreowallet-mono
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'oreoslabs:developer' into developer
- Loading branch information
Showing
51 changed files
with
1,757 additions
and
1,776 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,50 +1,52 @@ | ||
## 1. Overview | ||
|
||
This repo consists of `chain_loader`, `dservice`, `dworker`, `server` and `prover`, is the core service of `OreoWallet`. | ||
|
||
### 1.1 crates/server | ||
Core service stores imported viewKeys from users and serves as data provider of OreoWallet. | ||
|
||
### 1.2 crates/prover | ||
Standalone service to generate zk proof for user transactions, serves as prover of OreoWallet. | ||
|
||
### 1.3 crates/dservice | ||
Quickscan server to schedule decryption tasks among all connected dworkers. | ||
|
||
### 1.4 crates/dworker | ||
Decryption worker connects to dservice and handles decryption tasks from dservice. | ||
|
||
### 1.5 crates/chain_loader | ||
A tool to fetch blocks from rpc and save in local db for better performance during dservice getBlocks. | ||
|
||
## 2. Guide-level explanation | ||
|
||
![basic arch](assets/arch_v2.png) | ||
|
||
## Docker | ||
|
||
Build | ||
|
||
```bash | ||
docker build -t oreowallet . | ||
``` | ||
|
||
Run node: | ||
|
||
```bash | ||
ironfish start -d ~/.ironfish-testnet --rpc.http --rpc.http.port 9092 --rpc.http.host 0.0.0.0 | ||
``` | ||
|
||
Run | ||
|
||
```bash | ||
DB_USER=postgres \ | ||
DB_PASSWORD=postgres \ | ||
DB_PORT=5444 \ | ||
NODE_HOST=host.docker.internal \ | ||
NODE_PORT=9092 \ | ||
SECRET_KEY=a0882c5ac5e2fa771dde52b2d5639734a4411df14f4748c6f991a96e5dd9f997 \ | ||
PUBLIC_KEY=03221b2a0ebd9d6798aadee2861a5307ced1a33d143f34c571a98ab4fa534b7d3e \ | ||
SERVER_PORT=8080 \ | ||
docker-compose up | ||
``` | ||
<p align="center"> | ||
<img src="assets/logo.svg" width="80" alt="Logo for OreoWallet" /> | ||
</p> | ||
|
||
<h1 align="center"> | ||
OreoWallet-mono | ||
</h1> | ||
|
||
<p align="center"> | ||
A repository maintains backend/server-side components that power OreoWallet. | ||
</p> | ||
|
||
<div align="center"> | ||
|
||
[![Twitter Follow](https://img.shields.io/twitter/follow/oreowallet?style=social)](https://twitter.com/oreowallet) | ||
|
||
</div> | ||
|
||
## Introduction | ||
|
||
There are 4 types wallet for privacy blockchain like IronFish. | ||
|
||
- Type1: Cex wallet, fully-custodial wallet. | ||
- Type2: PrivateKey is safely saved locally while viewkey is uploaded to a backend server for better experience. Transactions are signed locally while transaction decryption and utxos-indexing rely on customsized remote server. | ||
- Type3: Both transaction decryption and creation are performed locally while transaction fetching/broadcasting rely on a public remote rpc like metamask. | ||
- Type4: A wallet embedded with a full node, syncs blocks/transactions with P2P network directly. | ||
|
||
OreoWallet aims to build an easy-to-use Type2 extension wallet for Ironfish blockchain. To make OreoWallet easy to use, we need server-side transaction indexing, quick-scanning and fast proof generation, and this repo maintains necessary components mentioned above. | ||
|
||
## Features | ||
|
||
| Feature | Status | | ||
| ------------------------ | ------ | | ||
| Account creation/import | ✅ | | ||
| IRON native token | ✅ | | ||
| User created asset | ✅ | | ||
| Orescriptions NFT | ✅ | | ||
| Dapp provider | ✅ | | ||
| Local data provider | ✅ | | ||
| Local prover | ✅ | | ||
| Privacy on routing layer | ✅ | | ||
| Quick scan | ✅ | | ||
| ... | ... | | ||
|
||
## Project structure | ||
<pre> | ||
OreoWallet | ||
├── crates/server: OreoWallet data provider, stores viewkey in db and handles api service | ||
├── crates/prover: OreoWallet prover, generate proof for IronFish transaction | ||
├── crates/scanner: OreoWallet scanner, quick scanning service | ||
├── crates/dworker: OreoWallet worker, running decryption taskes | ||
</pre> |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.