Skip to content

Commit e015fe5

Browse files
Updated ReadMe to include :
1. Brief smart contract usage details 2. Brief introduction to the ecosystem components 3. Updated download guide link to point to Beacon 4. Updated project structure according to the current ecosystem directory Added an integration and troubleshooting guide for ResVault
1 parent ee21e87 commit e015fe5

File tree

2 files changed

+184
-23
lines changed

2 files changed

+184
-23
lines changed

README.md

Lines changed: 79 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ Download address for run-directly software package: https://downloads.apache.org
4444
4. ResilientDB exposes a wide range of interfaces such as a **Key-Value** store, **Smart Contracts**, **UTXO**, and **Python SDK**. Following are some of the decentralized applications (DApps) built on top of ResilientDB: **[NFT Marketplace](https://nft.resilientdb.com/)** and **[Debitable](https://debitable.resilientdb.com/)**.
4545
5. To persist blockchain, chain state, and metadata, ResilientDB provides durability through **LevelDB**.
4646
6. ResilientDB provides access to a seamless **GUI display** for deployment and maintenance, and supports **Grafana** for plotting monitoring data.
47-
7. **[Historial Facts]** The ResilientDB project was founded by **[Mohammad Sadoghi](https://expolab.org/)** along with his students ([Suyash Gupta](https://gupta-suyash.github.io/index.html) as the lead Architect, [Sajjad Rahnama](https://sajjadrahnama.com/) as the lead System Designer, and [Jelle Hellings](https://www.jhellings.nl/)) at **[UC Davis](https://www.ucdavis.edu/)** in 2018 and was open-sourced in late 2019. On September 30, 2021, we released ResilientDB v-3.0. In 2022, ResilientDB was completely re-written and re-architected ([Junchao Chen](https://github.com/cjcchen) as the lead Architect, [Dakai Kang](https://github.com/DakaiKang) as the lead Recovery Architect along with the entire [NexRes Team](https://expolab.resilientdb.com/)), paving the way for a new sustainable foundation, referred to as NexRes (Next Generation ResilientDB). Thus, on September 30, 2022, NexRes-v1.0.0 was born, marking a new beginning for **[ResilientDB](https://resilientdb.com/)**. On October 21, 2023, **[ResilientDB](https://cwiki.apache.org/confluence/display/INCUBATOR/ResilientDBProposal)** was officially accepted into **[Apache Incubation](https://incubator.apache.org/projects/resilientdb.html)**.
47+
7. ResilientDB ships with a rich **ecosystem** of first‑class tools under the `ecosystem/` directory, including **wallets (ResVault)**, **SDKs and ORMs (Python, Rust, ResDB‑ORM)**, **APIs (GraphQL, REST)**, and **monitoring & deployment tooling (ResLens, Ansible/Docker, Orbit, etc.)**, making it easy to build, observe, and operate applications on top of ResilientDB.
48+
8. **[Historial Facts]** The ResilientDB project was founded by **[Mohammad Sadoghi](https://expolab.org/)** along with his students ([Suyash Gupta](https://gupta-suyash.github.io/index.html) as the lead Architect, [Sajjad Rahnama](https://sajjadrahnama.com/) as the lead System Designer, and [Jelle Hellings](https://www.jhellings.nl/)) at **[UC Davis](https://www.ucdavis.edu/)** in 2018 and was open-sourced in late 2019. On September 30, 2021, we released ResilientDB v-3.0. In 2022, ResilientDB was completely re-written and re-architected ([Junchao Chen](https://github.com/cjcchen) as the lead Architect, [Dakai Kang](https://github.com/DakaiKang) as the lead Recovery Architect along with the entire [NexRes Team](https://expolab.resilientdb.com/)), paving the way for a new sustainable foundation, referred to as NexRes (Next Generation ResilientDB). Thus, on September 30, 2022, NexRes-v1.0.0 was born, marking a new beginning for **[ResilientDB](https://resilientdb.com/)**. On October 21, 2023, **[ResilientDB](https://cwiki.apache.org/confluence/display/INCUBATOR/ResilientDBProposal)** was officially accepted into **[Apache Incubation](https://incubator.apache.org/projects/resilientdb.html)**.
4849

4950
<div align = "center">
5051
<img src="./img/resdb-v2.png" width="220">
@@ -56,8 +57,9 @@ Download address for run-directly software package: https://downloads.apache.org
5657

5758

5859
## Online Documentation:
59-
60-
The latest ResilientDB documentation, including a programming guide, is available on our **[blog repository](https://blog.resilientdb.com/archive.html?tag=NexRes)**. This README file provides basic setup instructions.
60+
The latest ResilientDB documentation is available on **[Beacon](https://beacon.resilientdb.com/docs/installation)**, our unified documentation portal.
61+
For a deep, chapter‑wise explanation of how ResilientDB works, see the **[ResilientDB overview and chapters](https://beacon.resilientdb.com/docs/resilientdb)**.
62+
Historical and supplementary guides are also available on our **[blog repository](https://blog.resilientdb.com/archive.html?tag=NexRes)**.
6163

6264
#### Table of Contents
6365
1. Software Stack Architecture
@@ -79,6 +81,19 @@ The latest ResilientDB documentation, including a programming guide, is availabl
7981
<img src="./img/nexres_architecture.png" width="600">
8082
</div>
8183

84+
## Ecosystem Overview
85+
86+
Beyond the core NexRes engine, ResilientDB ships with a rich ecosystem of tools that make it easier to build applications and data/AI pipelines on top of the ledger:
87+
88+
- **Core Node (NexRes)**: High-throughput, BFT-replicated state machine that orders and executes transactions with strong consistency and durability.
89+
- **APIs (GraphQL & REST)**: ResilientDB exposes HTTP and GraphQL services for committing and querying transactions, making it easy to integrate with web backends, data services, and AI workflows.
90+
- **ResVault (Wallet & Extension)**: Browser extension wallet that manages keys, lets users authenticate, and approve transactions from web apps, tying writes on-chain to user-controlled identities.
91+
- **SDKs & ORMs**: Language-specific libraries (e.g., Python ORM, Rust SDK, ResVault SDK) that provide higher-level APIs for modeling assets, talking to GraphQL/REST, and wiring ResVault into applications.
92+
- **Monitoring (ResLens & dashboards)**: Monitoring UIs and middleware (ResLens stack) that surface cluster health, performance metrics, and profiling data for running deployments.
93+
- **Deployment Tooling (Orbit, Ansible, Docker)**: Tools and playbooks for bringing up ResilientDB clusters and supporting services (GraphQL, Nginx, etc.) on local and cloud environments using Docker, Ansible, and the Orbit desktop deployer.
94+
95+
Together, these components provide an end-to-end path from user-facing applications (web, services, or AI agents) through wallets and APIs down to the ResilientDB core.
96+
8297
## OS Requirements
8398
Ubuntu 20+
8499

@@ -103,27 +118,33 @@ incubator-resilientdb/
103118
│ ├── test/ # Testing utilities
104119
│ └── utils/ # General utilities
105120
├── ecosystem/ # Ecosystem components (git subtrees)
106-
│ ├── cache/ # Caching implementations
107-
│ │ ├── resilient-node-cache/ # Node.js caching
108-
│ │ └── resilient-python-cache/ # Python caching
109-
│ ├── deployment/ # Deployment and infrastructure
121+
│ ├── ai-tools/ # AI, docs, and MCP tools
122+
│ │ ├── beacon/ # Beacon docs site
123+
│ │ ├── nexus/ # Nexus research / LLM tools
124+
│ │ └── mcp/ # MCP integrations (GraphQL, ResInsight)
125+
│ ├── cache/ # Caching libraries
126+
│ │ ├── resilient-node-cache/ # Node.js cache
127+
│ │ └── resilient-python-cache/ # Python cache
128+
│ ├── deployment/ # Deployment tooling
110129
│ │ ├── ansible/ # Ansible playbooks
111-
│ │ └── orbit/ # Orbit deployment tool
112-
│ ├── graphql/ # GraphQL service
113-
│ ├── monitoring/ # Monitoring and observability
114-
│ │ ├── reslens/ # ResLens monitoring tool
115-
│ │ └── reslens-middleware/ # ResLens middleware
116-
│ ├── sdk/ # Software Development Kits
130+
│ │ └── orbit/ # Orbit desktop deployer
131+
│ ├── graphql/ # GraphQL + HTTP services
132+
│ ├── monitoring/ # Monitoring stack
133+
│ │ ├── reslens/ # ResLens UI
134+
│ │ └── reslens-middleware/ # ResLens backend
135+
│ ├── sdk/ # SDKs and ORMs
117136
│ │ ├── resdb-orm/ # Python ORM
118137
│ │ ├── resvault-sdk/ # ResVault SDK
119138
│ │ └── rust-sdk/ # Rust SDK
120-
│ ├── smart-contract/ # Smart contract ecosystem
121-
│ │ ├── rescontract/ # ResContract repository
122-
│ │ ├── resilient-contract-kit/ # Contract development toolkit
123-
│ │ └── smart-contract-graphql/ # Smart contract GraphQL service
124-
│ └── tools/ # Development and operational tools
125-
│ ├── create-resilient-app/ # App scaffolding tool
126-
│ └── resvault/ # ResVault tool
139+
│ ├── smart-contract/ # Smart contract stack
140+
│ │ ├── rescontract/ # Contracts and examples
141+
│ │ ├── resilient-contract-kit/ # Contract dev toolkit
142+
│ │ └── smart-contract-graphql/ # Contract GraphQL service
143+
│ ├── third_party/ # External tools (e.g., PocketFlow)
144+
│ └── tools/ # Dev and app tools
145+
│ ├── create-resilient-app/ # App scaffolding CLI
146+
│ ├── drawing-lib/ # Shared drawing widget
147+
│ └── resvault/ # ResVault wallet extension
127148
├── executor/ # Transaction execution engine
128149
│ ├── common/ # Common execution utilities
129150
│ ├── contract/ # Smart contract execution
@@ -477,8 +498,43 @@ Then re-run the start script:
477498
./service/tools/kv/server_tools/start_kv_service.sh
478499
```
479500

501+
## Smart Contract ##
480502

503+
ResilientDB includes a built‑in smart contract service that lets you deploy and execute Solidity contracts on top of NexRes. There are two primary ways to work with smart contracts:
504+
505+
1. **Low‑level flow via `contract_service_tools`**
506+
This flow uses the `contract_service_tools` client and JSON payloads:
507+
508+
- **Create an owner account**: call `contract_service_tools` with a JSON file containing `{"command": "create_account"}` to obtain an on‑chain owner address.
509+
- **Compile and deploy your contract**:
510+
- Write your contract in Solidity (e.g., `token.sol`).
511+
- Compile to JSON using `solc`, for example:
512+
`solc --evm-version homestead --combined-json bin,hashes --pretty-json --optimize token.sol > token.json`
513+
- Deploy with a JSON payload that includes:
514+
- `command: "deploy"`
515+
- `contract_path`: path to the compiled JSON (e.g., `service/tools/kv/api_tools/example_contract/token.json`)
516+
- `contract_name`: contract identifier (e.g., `"token.sol:Token"`)
517+
- `init_params`: constructor parameters (if any)
518+
- `owner_address`: the owner account address
519+
- The response returns a **contract address** for future calls.
520+
- **Execute contract functions**: call `contract_service_tools` with a JSON payload that includes:
521+
- `command: "execute"`
522+
- `contract_address`: deployed contract address
523+
- `caller_address`: account invoking the function
524+
- `func_name`: function signature (e.g., `"transfer(address,uint256)"`)
525+
- `params`: encoded parameters
526+
527+
2. **Higher‑level tools: ResContract CLI and ResVault**
528+
Instead of crafting JSON by hand, you can use tools from the `ecosystem/` directory that wrap this functionality:
529+
530+
- **ResContract CLI** (`ecosystem/smart-contract/rescontract/`):
531+
Command‑line interface for creating accounts, deploying contracts, and invoking methods, with a friendlier UX and helpers around contract artifacts.
532+
- **ResVault** (`ecosystem/tools/resvault/`):
533+
Browser wallet and extension that can create accounts, approve transactions, and drive contract interactions from web apps, tying on‑chain activity to user identities.
534+
535+
These tools provide full functionality up to and including **deployment and interaction with smart contracts**. See their individual READMEs for detailed usage and examples.
536+
537+
In addition, you can use the **Key‑Value interfaces** to query or update associated balances via `get_balance` and `set_balance` commands when needed.
538+
539+
For a full, step‑by‑step tutorial (including example JSON files, commands, and responses), see **[Getting Started with Smart Contract on ResilientDB](https://blog.resilientdb.com/2025/02/14/GettingStartedSmartContract.html)**.
481540

482-
## Smart Contract ##
483-
If you want to use smart contracts, please go to:
484-
https://blog.resilientdb.com/2025/02/14/GettingStartedSmartContract.html

0 commit comments

Comments
 (0)