Skip to content

Commit 6a9342c

Browse files
authored
Merge branch 'oreoslabs:developer' into developer
2 parents 6ae1a69 + 46d8a28 commit 6a9342c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+1757
-1776
lines changed

.DS_Store

-6 KB
Binary file not shown.

Cargo.lock

Lines changed: 370 additions & 734 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@
22
resolver = "2"
33
members = [
44
"crates/networking",
5-
"crates/constants",
65
"crates/db_handler",
76
"crates/oreo_errors",
87
"crates/server",
98
"crates/utils",
109
"crates/prover",
1110
"crates/dworker",
12-
"crates/dservice",
13-
"crates/chain_loader", "crates/transfer-tool",
11+
"crates/scanner",
12+
"crates/params",
1413
]

README.md

Lines changed: 52 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,52 @@
1-
## 1. Overview
2-
3-
This repo consists of `chain_loader`, `dservice`, `dworker`, `server` and `prover`, is the core service of `OreoWallet`.
4-
5-
### 1.1 crates/server
6-
Core service stores imported viewKeys from users and serves as data provider of OreoWallet.
7-
8-
### 1.2 crates/prover
9-
Standalone service to generate zk proof for user transactions, serves as prover of OreoWallet.
10-
11-
### 1.3 crates/dservice
12-
Quickscan server to schedule decryption tasks among all connected dworkers.
13-
14-
### 1.4 crates/dworker
15-
Decryption worker connects to dservice and handles decryption tasks from dservice.
16-
17-
### 1.5 crates/chain_loader
18-
A tool to fetch blocks from rpc and save in local db for better performance during dservice getBlocks.
19-
20-
## 2. Guide-level explanation
21-
22-
![basic arch](assets/arch_v2.png)
23-
24-
## Docker
25-
26-
Build
27-
28-
```bash
29-
docker build -t oreowallet .
30-
```
31-
32-
Run node:
33-
34-
```bash
35-
ironfish start -d ~/.ironfish-testnet --rpc.http --rpc.http.port 9092 --rpc.http.host 0.0.0.0
36-
```
37-
38-
Run
39-
40-
```bash
41-
DB_USER=postgres \
42-
DB_PASSWORD=postgres \
43-
DB_PORT=5444 \
44-
NODE_HOST=host.docker.internal \
45-
NODE_PORT=9092 \
46-
SECRET_KEY=a0882c5ac5e2fa771dde52b2d5639734a4411df14f4748c6f991a96e5dd9f997 \
47-
PUBLIC_KEY=03221b2a0ebd9d6798aadee2861a5307ced1a33d143f34c571a98ab4fa534b7d3e \
48-
SERVER_PORT=8080 \
49-
docker-compose up
50-
```
1+
<p align="center">
2+
<img src="assets/logo.svg" width="80" alt="Logo for OreoWallet" />
3+
</p>
4+
5+
<h1 align="center">
6+
OreoWallet-mono
7+
</h1>
8+
9+
<p align="center">
10+
A repository maintains backend/server-side components that power OreoWallet.
11+
</p>
12+
13+
<div align="center">
14+
15+
[![Twitter Follow](https://img.shields.io/twitter/follow/oreowallet?style=social)](https://twitter.com/oreowallet)
16+
17+
</div>
18+
19+
## Introduction
20+
21+
There are 4 types wallet for privacy blockchain like IronFish.
22+
23+
- Type1: Cex wallet, fully-custodial wallet.
24+
- 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.
25+
- Type3: Both transaction decryption and creation are performed locally while transaction fetching/broadcasting rely on a public remote rpc like metamask.
26+
- Type4: A wallet embedded with a full node, syncs blocks/transactions with P2P network directly.
27+
28+
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.
29+
30+
## Features
31+
32+
| Feature | Status |
33+
| ------------------------ | ------ |
34+
| Account creation/import ||
35+
| IRON native token ||
36+
| User created asset ||
37+
| Orescriptions NFT ||
38+
| Dapp provider ||
39+
| Local data provider ||
40+
| Local prover ||
41+
| Privacy on routing layer ||
42+
| Quick scan ||
43+
| ... | ... |
44+
45+
## Project structure
46+
<pre>
47+
OreoWallet
48+
├── crates/server: OreoWallet data provider, stores viewkey in db and handles api service
49+
├── crates/prover: OreoWallet prover, generate proof for IronFish transaction
50+
├── crates/scanner: OreoWallet scanner, quick scanning service
51+
├── crates/dworker: OreoWallet worker, running decryption taskes
52+
</pre>

assets/logo.svg

Lines changed: 4 additions & 0 deletions
Loading

crates/chain_loader/Cargo.toml

Lines changed: 0 additions & 18 deletions
This file was deleted.

crates/chain_loader/src/lib.rs

Lines changed: 0 additions & 58 deletions
This file was deleted.

crates/chain_loader/src/main.rs

Lines changed: 0 additions & 34 deletions
This file was deleted.

crates/constants/Cargo.toml

Lines changed: 0 additions & 8 deletions
This file was deleted.

crates/constants/src/lib.rs

Lines changed: 0 additions & 15 deletions
This file was deleted.

0 commit comments

Comments
 (0)