oasyce 0.9.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- oasyce-0.9.0/LICENSE +21 -0
- oasyce-0.9.0/PKG-INFO +442 -0
- oasyce-0.9.0/README.md +407 -0
- oasyce-0.9.0/oasyce.egg-info/PKG-INFO +442 -0
- oasyce-0.9.0/oasyce.egg-info/SOURCES.txt +66 -0
- oasyce-0.9.0/oasyce.egg-info/dependency_links.txt +1 -0
- oasyce-0.9.0/oasyce.egg-info/entry_points.txt +2 -0
- oasyce-0.9.0/oasyce.egg-info/requires.txt +12 -0
- oasyce-0.9.0/oasyce.egg-info/top_level.txt +1 -0
- oasyce-0.9.0/oasyce_plugin/__init__.py +2 -0
- oasyce-0.9.0/oasyce_plugin/bridge/__init__.py +0 -0
- oasyce-0.9.0/oasyce_plugin/bridge/core_bridge.py +209 -0
- oasyce-0.9.0/oasyce_plugin/cli.py +682 -0
- oasyce-0.9.0/oasyce_plugin/config.py +93 -0
- oasyce-0.9.0/oasyce_plugin/crypto/__init__.py +4 -0
- oasyce-0.9.0/oasyce_plugin/crypto/keys.py +89 -0
- oasyce-0.9.0/oasyce_plugin/crypto/merkle.py +35 -0
- oasyce-0.9.0/oasyce_plugin/engines/__init__.py +0 -0
- oasyce-0.9.0/oasyce_plugin/engines/core_engines.py +415 -0
- oasyce-0.9.0/oasyce_plugin/engines/l3_tee/__init__.py +10 -0
- oasyce-0.9.0/oasyce_plugin/engines/l3_tee/zk_poe_engine.py +39 -0
- oasyce-0.9.0/oasyce_plugin/engines/result.py +27 -0
- oasyce-0.9.0/oasyce_plugin/engines/schema.py +65 -0
- oasyce-0.9.0/oasyce_plugin/fingerprint/__init__.py +4 -0
- oasyce-0.9.0/oasyce_plugin/fingerprint/engine.py +178 -0
- oasyce-0.9.0/oasyce_plugin/fingerprint/registry.py +67 -0
- oasyce-0.9.0/oasyce_plugin/gui/__init__.py +0 -0
- oasyce-0.9.0/oasyce_plugin/gui/app.py +1088 -0
- oasyce-0.9.0/oasyce_plugin/logging/__init__.py +93 -0
- oasyce-0.9.0/oasyce_plugin/models.py +21 -0
- oasyce-0.9.0/oasyce_plugin/network/__init__.py +3 -0
- oasyce-0.9.0/oasyce_plugin/network/node.py +287 -0
- oasyce-0.9.0/oasyce_plugin/scripts/__init__.py +0 -0
- oasyce-0.9.0/oasyce_plugin/scripts/auto_test_genesis.py +101 -0
- oasyce-0.9.0/oasyce_plugin/scripts/demo_network.py +202 -0
- oasyce-0.9.0/oasyce_plugin/security/__init__.py +17 -0
- oasyce-0.9.0/oasyce_plugin/security/keymanager.py +167 -0
- oasyce-0.9.0/oasyce_plugin/services/__init__.py +1 -0
- oasyce-0.9.0/oasyce_plugin/services/settlement/__init__.py +1 -0
- oasyce-0.9.0/oasyce_plugin/services/settlement/engine.py +315 -0
- oasyce-0.9.0/oasyce_plugin/services/staking/__init__.py +392 -0
- oasyce-0.9.0/oasyce_plugin/services/verification/__init__.py +1 -0
- oasyce-0.9.0/oasyce_plugin/services/verification/api.py +175 -0
- oasyce-0.9.0/oasyce_plugin/services/verification/engine.py +482 -0
- oasyce-0.9.0/oasyce_plugin/services/verification/models.py +165 -0
- oasyce-0.9.0/oasyce_plugin/skills/__init__.py +0 -0
- oasyce-0.9.0/oasyce_plugin/skills/agent_skills.py +379 -0
- oasyce-0.9.0/oasyce_plugin/storage/__init__.py +4 -0
- oasyce-0.9.0/oasyce_plugin/storage/ipfs_client.py +300 -0
- oasyce-0.9.0/oasyce_plugin/storage/ledger.py +621 -0
- oasyce-0.9.0/pyproject.toml +65 -0
- oasyce-0.9.0/setup.cfg +4 -0
- oasyce-0.9.0/setup.py +7 -0
- oasyce-0.9.0/tests/test_blockchain.py +180 -0
- oasyce-0.9.0/tests/test_consensus.py +325 -0
- oasyce-0.9.0/tests/test_core_bridge.py +170 -0
- oasyce-0.9.0/tests/test_core_flow.py +146 -0
- oasyce-0.9.0/tests/test_crypto.py +78 -0
- oasyce-0.9.0/tests/test_engines.py +46 -0
- oasyce-0.9.0/tests/test_fingerprint.py +312 -0
- oasyce-0.9.0/tests/test_integration.py +219 -0
- oasyce-0.9.0/tests/test_l3_tee_engine.py +70 -0
- oasyce-0.9.0/tests/test_network.py +235 -0
- oasyce-0.9.0/tests/test_privacy_and_storage.py +258 -0
- oasyce-0.9.0/tests/test_settlement_engine.py +218 -0
- oasyce-0.9.0/tests/test_staking.py +295 -0
- oasyce-0.9.0/tests/test_sync.py +215 -0
- oasyce-0.9.0/tests/test_verification_service.py +358 -0
oasyce-0.9.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Shangrila / Oasyce Project
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
oasyce-0.9.0/PKG-INFO
ADDED
|
@@ -0,0 +1,442 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: oasyce
|
|
3
|
+
Version: 0.9.0
|
|
4
|
+
Summary: Decentralized data ownership and settlement protocol for the AI era
|
|
5
|
+
Author-email: Shangrila <wutc@oasyce.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/Shangri-la-0428/Oasyce_Claw_Plugin_Engine
|
|
8
|
+
Project-URL: Documentation, https://github.com/Shangri-la-0428/Oasyce_Claw_Plugin_Engine/tree/main/docs
|
|
9
|
+
Project-URL: Issues, https://github.com/Shangri-la-0428/Oasyce_Claw_Plugin_Engine/issues
|
|
10
|
+
Keywords: oasyce,data-ownership,settlement,ai,web3,bonding-curve,p2p,staking
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Topic :: Security :: Cryptography
|
|
20
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
21
|
+
Requires-Python: >=3.9
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
Requires-Dist: cryptography>=41.0
|
|
25
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
26
|
+
Requires-Dist: aiohttp>=3.9.0
|
|
27
|
+
Provides-Extra: test
|
|
28
|
+
Requires-Dist: pytest>=7.0; extra == "test"
|
|
29
|
+
Requires-Dist: pytest-cov>=4.0; extra == "test"
|
|
30
|
+
Provides-Extra: dev
|
|
31
|
+
Requires-Dist: black>=23.0; extra == "dev"
|
|
32
|
+
Requires-Dist: flake8>=6.0; extra == "dev"
|
|
33
|
+
Requires-Dist: mypy>=1.0; extra == "dev"
|
|
34
|
+
Dynamic: license-file
|
|
35
|
+
|
|
36
|
+
# Oasyce Claw Plugin Engine
|
|
37
|
+
|
|
38
|
+
<div align="center">
|
|
39
|
+
|
|
40
|
+
**Decentralized data ownership and settlement protocol engine.**
|
|
41
|
+
**Local-first, zero-server, every node is the network.**
|
|
42
|
+
|
|
43
|
+
[](https://github.com/Shangri-la-0428/Oasyce_Claw_Plugin_Engine)
|
|
44
|
+
[](https://www.python.org/downloads/)
|
|
45
|
+
[](tests/)
|
|
46
|
+
[](LICENSE)
|
|
47
|
+
|
|
48
|
+
[Quick Start](#quick-start) · [CLI Reference](#cli-reference) · [Architecture](#architecture) · [Economics](docs/ECONOMICS.md) · [Testing](#testing)
|
|
49
|
+
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Why Oasyce? Why Now?
|
|
55
|
+
|
|
56
|
+
For twenty years, "data is the new oil" remained a slogan. Humans couldn't coordinate data trade at scale — the cost of contracts, lawyers, reconciliation, and enforcement exceeded the value of the data itself.
|
|
57
|
+
|
|
58
|
+
Then AI agents arrived. For the first time in history, the primary consumers of data are machines, not people. Machines can verify signatures in milliseconds, settle atomically, price algorithmically, and trace leaks cryptographically. Everything that made human-to-human data commerce impractical is exactly what machine-to-machine commerce does natively.
|
|
59
|
+
|
|
60
|
+
**Oasyce is the settlement network for this new economy.** A protocol where AI agents autonomously own, price, trade, and protect data — and humans simply run nodes and collect revenue.
|
|
61
|
+
|
|
62
|
+
- **PoPC (Proof of Physical Capture)** — Cryptographic certificates proving data provenance at the physical layer
|
|
63
|
+
- **Bancor Bonding Curves** — Algorithmic pricing: no negotiation, no middlemen, price emerges from demand
|
|
64
|
+
- **Staking Economy** — Run a node, stake OAS, become a stakeholder — your interests are the network's interests
|
|
65
|
+
- **Fingerprint Watermarking** — Steganographic watermarks embedded per-buyer; leak a file and we trace it back to you
|
|
66
|
+
- **P2P Network** — TCP+JSON mesh networking on port 9527, no central server, every node validates
|
|
67
|
+
|
|
68
|
+
**Core principle:** Your data, your keys, your revenue. No intermediaries.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Architecture
|
|
73
|
+
|
|
74
|
+
Built across 9 development phases:
|
|
75
|
+
|
|
76
|
+
| Phase | Component | What it does |
|
|
77
|
+
|-------|-----------|-------------|
|
|
78
|
+
| 1 | **Ed25519 Cryptography** | Key generation, digital signatures, certificate signing |
|
|
79
|
+
| 2 | **SQLite Persistent Ledger** | Blockchain-structured storage with Merkle trees and chained hashes |
|
|
80
|
+
| 3 | **Blockchain Structure** | Block mining, hash chaining, Merkle root computation |
|
|
81
|
+
| 4 | **P2P Networking** | TCP+JSON peer discovery and message relay (port 9527) |
|
|
82
|
+
| 5 | **Block Synchronization** | 3-way validation, chain download, fork detection |
|
|
83
|
+
| 6 | **Consensus** | Longest-chain rule, chain reorganization, rate limiting |
|
|
84
|
+
| 7 | **Multi-Node Demo** | `oasyce demo-network` spins up N local nodes with consensus |
|
|
85
|
+
| 8 | **Staking Economy** | Proof-of-Stake, validator lifecycle, slashing, halving rewards |
|
|
86
|
+
| 9 | **Fingerprint Watermarking** | Steganographic embedding, extraction, leak tracing |
|
|
87
|
+
|
|
88
|
+
**Plus:** Web GUI dashboard, settlement engine (Bancor curves), privacy filter, IPFS-compatible storage, PoPC verification service, oasyce_core bridge layer.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Economics Overview
|
|
93
|
+
|
|
94
|
+
Oasyce has two complementary economic layers. For full formulas, game theory analysis, and worked examples, see [docs/ECONOMICS.md](docs/ECONOMICS.md).
|
|
95
|
+
|
|
96
|
+
### Data Access Fee Split (Settlement Layer)
|
|
97
|
+
|
|
98
|
+
Each data purchase flows through the Bancor bonding curve:
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
Payment: 100 OAS
|
|
102
|
+
├── Protocol Fee: 5% → 5 OAS
|
|
103
|
+
│ ├── Burn: 50% → 2.5 OAS (permanent deflation)
|
|
104
|
+
│ └── Verifier: 50% → 2.5 OAS
|
|
105
|
+
└── Net Deposit: 95% → 95 OAS → enters bonding curve → pushes price up
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**Bancor formula:** `ΔTokens = S × ((1 + ΔR/R)^F − 1)` where S=supply, R=reserve, F=0.20 (connector weight)
|
|
109
|
+
|
|
110
|
+
### Transaction Fee Distribution (Network Layer)
|
|
111
|
+
|
|
112
|
+
For each data access fee collected at the network level:
|
|
113
|
+
|
|
114
|
+
| Recipient | Share | Purpose |
|
|
115
|
+
|-----------|-------|---------|
|
|
116
|
+
| Creator | 70% | Data creator gets the lion's share |
|
|
117
|
+
| Validators | 20% | Split by stake weight |
|
|
118
|
+
| Burn | 10% | Permanent deflation |
|
|
119
|
+
|
|
120
|
+
### Block Rewards & Staking
|
|
121
|
+
|
|
122
|
+
- **Block reward:** 50 OAS/block, halving every 525,600 blocks (~1 year)
|
|
123
|
+
- **Minimum stake:** 1,000 OAS
|
|
124
|
+
- **Unbonding period:** 7 days
|
|
125
|
+
- **Slashing:** 100% for malicious blocks, 50% for double blocks, 5%/day for offline
|
|
126
|
+
|
|
127
|
+
### Fingerprint Economics
|
|
128
|
+
|
|
129
|
+
Each buyer receives a uniquely watermarked copy. Leak detection: extract watermark → identify leaker → on-chain proof (fingerprint ↔ caller_id ↔ timestamp).
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Quick Start
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
# Clone and install
|
|
137
|
+
git clone https://github.com/Shangri-la-0428/Oasyce_Claw_Plugin_Engine.git
|
|
138
|
+
cd Oasyce_Claw_Plugin_Engine
|
|
139
|
+
python3 -m venv venv
|
|
140
|
+
source venv/bin/activate
|
|
141
|
+
pip install -e .
|
|
142
|
+
|
|
143
|
+
# Configure
|
|
144
|
+
cp .env.example .env
|
|
145
|
+
# Edit .env with your settings (OASYCE_VAULT_DIR, OASYCE_OWNER, OASYCE_SIGNING_KEY)
|
|
146
|
+
|
|
147
|
+
# Verify installation
|
|
148
|
+
oasyce --help
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### Register your first asset
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
oasyce register /path/to/file.pdf --owner "Alice" --tags "Research,Genesis"
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Run the full demo (register → quote → buy → shares)
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
oasyce demo
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Launch the web dashboard
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
oasyce gui
|
|
167
|
+
# Opens at http://localhost:8420
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Spin up a local P2P network
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
oasyce demo-network --nodes 3
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## CLI Reference
|
|
179
|
+
|
|
180
|
+
### Asset Management
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
# Register a file as an Oasyce asset
|
|
184
|
+
oasyce register <file_path> --owner "Name" --tags "Tag1,Tag2"
|
|
185
|
+
|
|
186
|
+
# Search assets by tag
|
|
187
|
+
oasyce search <tag> [--json]
|
|
188
|
+
|
|
189
|
+
# Get Bancor pricing quote
|
|
190
|
+
oasyce quote <asset_id> [--use-core]
|
|
191
|
+
|
|
192
|
+
# Buy access to an asset
|
|
193
|
+
oasyce buy <asset_id> --buyer "BuyerName" --amount 10.0
|
|
194
|
+
|
|
195
|
+
# Verify a PoPC certificate
|
|
196
|
+
oasyce verify <asset_id>
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Staking
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
# Stake OAS tokens for a validator
|
|
203
|
+
oasyce stake <validator_id> <amount>
|
|
204
|
+
|
|
205
|
+
# View share holdings
|
|
206
|
+
oasyce shares <owner>
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### P2P Node
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
# Start a P2P node
|
|
213
|
+
oasyce node start [--port 9527]
|
|
214
|
+
|
|
215
|
+
# Show node info
|
|
216
|
+
oasyce node info
|
|
217
|
+
|
|
218
|
+
# Ping a peer
|
|
219
|
+
oasyce node ping <host:port>
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### Fingerprint Watermarking
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
# Embed a watermark
|
|
226
|
+
oasyce fingerprint embed <file_path> --caller "buyer_id" [--output watermarked.png]
|
|
227
|
+
|
|
228
|
+
# Extract watermark from a file
|
|
229
|
+
oasyce fingerprint extract <file_path>
|
|
230
|
+
|
|
231
|
+
# Trace a fingerprint to its distribution record
|
|
232
|
+
oasyce fingerprint trace <fingerprint_hash>
|
|
233
|
+
|
|
234
|
+
# List all distributions for an asset
|
|
235
|
+
oasyce fingerprint list <asset_id>
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### Utilities
|
|
239
|
+
|
|
240
|
+
```bash
|
|
241
|
+
# Launch web GUI dashboard
|
|
242
|
+
oasyce gui [--port 8420]
|
|
243
|
+
|
|
244
|
+
# Run multi-node demo with consensus
|
|
245
|
+
oasyce demo-network [--nodes 3]
|
|
246
|
+
|
|
247
|
+
# Run end-to-end protocol demo
|
|
248
|
+
oasyce demo
|
|
249
|
+
|
|
250
|
+
# JSON output for any command
|
|
251
|
+
oasyce <command> --json
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## Python SDK
|
|
257
|
+
|
|
258
|
+
```python
|
|
259
|
+
from oasyce_plugin.config import Config
|
|
260
|
+
from oasyce_plugin.skills.agent_skills import OasyceSkills
|
|
261
|
+
|
|
262
|
+
# Initialize
|
|
263
|
+
config = Config.from_env()
|
|
264
|
+
skills = OasyceSkills(config)
|
|
265
|
+
|
|
266
|
+
# Register a file
|
|
267
|
+
file_info = skills.scan_data_skill("/path/to/file.pdf")
|
|
268
|
+
metadata = skills.generate_metadata_skill(file_info, ["Core"], "Alice")
|
|
269
|
+
signed = skills.create_certificate_skill(metadata)
|
|
270
|
+
result = skills.register_data_asset_skill(signed)
|
|
271
|
+
|
|
272
|
+
print(f"Asset ID: {signed['asset_id']}")
|
|
273
|
+
|
|
274
|
+
# Get pricing quote
|
|
275
|
+
quote = skills.trade_data_skill(signed['asset_id'])
|
|
276
|
+
print(f"Price: {quote['current_price_oas']} OAS")
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
### Settlement Engine (direct)
|
|
280
|
+
|
|
281
|
+
```python
|
|
282
|
+
from oasyce_plugin.services.settlement.engine import SettlementEngine
|
|
283
|
+
|
|
284
|
+
engine = SettlementEngine()
|
|
285
|
+
pool = engine.register_asset("ASSET_001", owner="Alice")
|
|
286
|
+
receipt = engine.execute("ASSET_001", buyer="Bob", payment_oas=100.0)
|
|
287
|
+
|
|
288
|
+
print(f"Tokens received: {receipt.quote.equity_minted}")
|
|
289
|
+
print(f"Burned: {receipt.quote.burn_amount} OAS")
|
|
290
|
+
print(f"New spot price: {receipt.quote.spot_price_after} OAS")
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
### Staking Engine (direct)
|
|
294
|
+
|
|
295
|
+
```python
|
|
296
|
+
from oasyce_plugin.services.staking import StakingEngine
|
|
297
|
+
|
|
298
|
+
staking = StakingEngine()
|
|
299
|
+
staking.stake("validator_1", 5000.0)
|
|
300
|
+
reward = staking.produce_block("validator_1", block_height=1)
|
|
301
|
+
fees = staking.distribute_fees(100.0, creator="Alice")
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
## Project Structure
|
|
307
|
+
|
|
308
|
+
```
|
|
309
|
+
Oasyce_Claw_Plugin_Engine/
|
|
310
|
+
├── oasyce_plugin/ # Core package
|
|
311
|
+
│ ├── cli.py # CLI entry point (argparse)
|
|
312
|
+
│ ├── config.py # Configuration management
|
|
313
|
+
│ ├── models.py # Data models
|
|
314
|
+
│ ├── bridge/
|
|
315
|
+
│ │ └── core_bridge.py # Bridge to oasyce_core protocol
|
|
316
|
+
│ ├── crypto/
|
|
317
|
+
│ │ ├── keys.py # Ed25519 key generation & signing
|
|
318
|
+
│ │ └── merkle.py # Merkle tree implementation
|
|
319
|
+
│ ├── engines/
|
|
320
|
+
│ │ ├── core_engines.py # Local verification engines
|
|
321
|
+
│ │ ├── schema.py # Data validation schemas
|
|
322
|
+
│ │ ├── result.py # Unified result types
|
|
323
|
+
│ │ └── l3_tee/ # TEE / ZK-PoE engine
|
|
324
|
+
│ ├── fingerprint/
|
|
325
|
+
│ │ ├── engine.py # Steganographic watermarking
|
|
326
|
+
│ │ └── registry.py # Distribution tracking
|
|
327
|
+
│ ├── gui/
|
|
328
|
+
│ │ └── app.py # Web dashboard
|
|
329
|
+
│ ├── network/
|
|
330
|
+
│ │ └── node.py # P2P TCP+JSON node
|
|
331
|
+
│ ├── security/
|
|
332
|
+
│ │ └── keymanager.py # Key management
|
|
333
|
+
│ ├── services/
|
|
334
|
+
│ │ ├── settlement/
|
|
335
|
+
│ │ │ └── engine.py # Bancor bonding curve settlement
|
|
336
|
+
│ │ ├── staking/
|
|
337
|
+
│ │ │ └── __init__.py # PoS staking, slashing, rewards
|
|
338
|
+
│ │ └── verification/
|
|
339
|
+
│ │ ├── api.py # Verification API
|
|
340
|
+
│ │ └── engine.py # PoPC verification engine
|
|
341
|
+
│ ├── skills/
|
|
342
|
+
│ │ └── agent_skills.py # AI agent integration (OpenClaw)
|
|
343
|
+
│ ├── storage/
|
|
344
|
+
│ │ ├── __init__.py # Storage backends
|
|
345
|
+
│ │ ├── ledger.py # SQLite blockchain ledger
|
|
346
|
+
│ │ └── ipfs_client.py # IPFS integration
|
|
347
|
+
│ └── scripts/
|
|
348
|
+
│ └── demo_network.py # Multi-node demo orchestrator
|
|
349
|
+
├── tests/ # 220 tests across 15 test files
|
|
350
|
+
├── examples/ # Usage examples
|
|
351
|
+
├── scripts/ # Setup & utility scripts
|
|
352
|
+
├── docs/ # Documentation
|
|
353
|
+
│ └── ECONOMICS.md # Detailed economic model
|
|
354
|
+
├── setup.py # Package config (v0.9.0)
|
|
355
|
+
└── README.md # This file
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
---
|
|
359
|
+
|
|
360
|
+
## Testing
|
|
361
|
+
|
|
362
|
+
```bash
|
|
363
|
+
# Run all tests
|
|
364
|
+
python3 -m pytest tests/ -v
|
|
365
|
+
|
|
366
|
+
# Run with coverage
|
|
367
|
+
python3 -m pytest tests/ -v --cov=oasyce_plugin --cov-report=term-missing
|
|
368
|
+
|
|
369
|
+
# Run a specific test file
|
|
370
|
+
python3 -m pytest tests/test_settlement_engine.py -v
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
**Test suite:** 220 tests across 15 test files covering:
|
|
374
|
+
|
|
375
|
+
| Test File | Coverage Area |
|
|
376
|
+
|-----------|-------------|
|
|
377
|
+
| `test_blockchain.py` | Block mining, hash chains, Merkle trees |
|
|
378
|
+
| `test_consensus.py` | Longest chain, reorg, rate limiting |
|
|
379
|
+
| `test_core_bridge.py` | oasyce_core protocol integration |
|
|
380
|
+
| `test_core_flow.py` | End-to-end registration flow |
|
|
381
|
+
| `test_crypto.py` | Ed25519 signatures, key management |
|
|
382
|
+
| `test_engines.py` | Local verification engines |
|
|
383
|
+
| `test_fingerprint.py` | Watermark embed/extract/trace |
|
|
384
|
+
| `test_integration.py` | Cross-module integration |
|
|
385
|
+
| `test_l3_tee_engine.py` | TEE/ZK proof engine |
|
|
386
|
+
| `test_network.py` | P2P networking, peer discovery |
|
|
387
|
+
| `test_privacy_and_storage.py` | Privacy filter, storage backends |
|
|
388
|
+
| `test_settlement_engine.py` | Bancor curves, fee splits |
|
|
389
|
+
| `test_staking.py` | Staking, slashing, rewards |
|
|
390
|
+
| `test_sync.py` | Block synchronization |
|
|
391
|
+
| `test_verification_service.py` | PoPC verification service |
|
|
392
|
+
|
|
393
|
+
---
|
|
394
|
+
|
|
395
|
+
## Configuration
|
|
396
|
+
|
|
397
|
+
### .env file (recommended)
|
|
398
|
+
|
|
399
|
+
```env
|
|
400
|
+
OASYCE_VAULT_DIR=~/oasyce/genesis_vault
|
|
401
|
+
OASYCE_OWNER=YourName
|
|
402
|
+
OASYCE_SIGNING_KEY=your-secret-key-here
|
|
403
|
+
OASYCE_SIGNING_KEY_ID=my_key_001
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
### Environment variables
|
|
407
|
+
|
|
408
|
+
```bash
|
|
409
|
+
export OASYCE_VAULT_DIR=~/oasyce/genesis_vault
|
|
410
|
+
export OASYCE_OWNER=YourName
|
|
411
|
+
export OASYCE_SIGNING_KEY=your-secret-key
|
|
412
|
+
export OASYCE_SIGNING_KEY_ID=my_key_001
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
**Security:** Use a strong random key (32+ characters) in production. Development can use `DEFAULT_INSECURE_DEV_KEY_0x123`.
|
|
416
|
+
|
|
417
|
+
---
|
|
418
|
+
|
|
419
|
+
## Stats
|
|
420
|
+
|
|
421
|
+
| Metric | Value |
|
|
422
|
+
|--------|-------|
|
|
423
|
+
| Tests | 220 passing |
|
|
424
|
+
| Source files | ~50 |
|
|
425
|
+
| Development phases | 9 |
|
|
426
|
+
| Core dependencies | Zero (stdlib only for protocol) |
|
|
427
|
+
|
|
428
|
+
---
|
|
429
|
+
|
|
430
|
+
## License
|
|
431
|
+
|
|
432
|
+
Proprietary - All rights reserved.
|
|
433
|
+
|
|
434
|
+
---
|
|
435
|
+
|
|
436
|
+
<div align="center">
|
|
437
|
+
|
|
438
|
+
*Your AI works for you every day. Oasyce makes sure it gets paid.*
|
|
439
|
+
|
|
440
|
+
[GitHub](https://github.com/Shangri-la-0428/Oasyce_Claw_Plugin_Engine) · [Protocol Overview](docs/OASYCE_PROTOCOL_OVERVIEW.md) · [Economics](docs/ECONOMICS.md) · [Contributing](CONTRIBUTING.md)
|
|
441
|
+
|
|
442
|
+
</div>
|