chainstate / docs /quickstart.md
CPater's picture
Upload folder using huggingface_hub
37f9067 verified
|
Raw
History Blame Contribute Delete
4.84 kB
# CHAINSTATE Quick Start Guide
Get up and running with CHAINSTATE in 5 minutes.
## Prerequisites
- Python 3.11+
- Node.js 18+
- Git
- 8GB+ RAM
- (Optional) CUDA-capable GPU
## Installation
### 1. Clone Repository
```bash
git clone https://github.com/CPater/chainstate.git
cd chainstate
```
### 2. Install Python Dependencies
```bash
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
```
### 3. Install Node Dependencies
```bash
npm install
```
### 4. Configure Environment
```bash
cp .env.example .env
# Edit .env with your API keys
```
## Running Locally
### Start the API Server
```bash
python -m src.api.server
```
Server will start on `http://localhost:7860`
### Run Tests
```bash
pytest tests/ -v
```
### Launch HF Space UI
```bash
python -m http.server 7860
# Open http://localhost:7860/chainstate.html
```
## Deploying to Cloudflare Workers
### 1. Authenticate
```bash
npx wrangler login
```
### 2. Create KV Namespaces
```bash
npx wrangler kv:namespace create CHAINSTATE_CACHE
npx wrangler kv:namespace create CHAINSTATE_NODES
npx wrangler kv:namespace create CHAINSTATE_CONSENSUS
```
### 3. Update wrangler.toml
Replace the namespace IDs in `wrangler.toml` with your created namespaces.
### 4. Deploy
```bash
npm run deploy
```
## Deploying to Hugging Face Spaces
### 1. Create Space
Go to https://huggingface.co/spaces/CPater/chainstate
### 2. Upload Files
```bash
git clone https://huggingface.co/spaces/CPater/chainstate
cp chainstate.html chainstate/
cd chainstate
git add .
git commit -m "Initial CHAINSTATE deployment"
git push
```
## First Query
### Using curl
```bash
curl -X POST https://your-worker.your-subdomain.workers.dev/query \
-H "Content-Type: application/json" \
-d '{
"query": "∫∂x → ?",
"consensusDepth": 3,
"swarmSize": 50
}'
```
### Using Python
```python
import requests
response = requests.post(
"https://your-worker.your-subdomain.workers.dev/query",
json={
"query": "☉☽☿ in alchemy",
"consensusDepth": 3,
"swarmSize": 50,
"quantumOffload": "ibm"
}
)
print(response.json())
```
### Using JavaScript
```javascript
const response = await fetch('https://your-worker.your-subdomain.workers.dev/query', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
query: '🧬🔬⚗ → ?',
consensusDepth: 3,
swarmSize: 50
})
});
const result = await response.json();
console.log(result);
```
## Running a Swarm Node
### 1. Register Node
```python
from chainstate.swarm import SwarmNode
from chainstate.symbolic import UniversalSemioticEmbedding
# Initialize
embedding = UniversalSemioticEmbedding()
node = SwarmNode(
node_id="my-node-001",
embedding_model=embedding,
inference_fn=my_inference_function,
endpoint="https://my-node.example.com"
)
# Register with beacon
await node.register("https://chainstate-beacon.workers.dev")
```
### 2. Start Processing
```python
await node.start_listening()
```
## Development
### Project Structure
```
chainstate/
├── src/
│ ├── symbolic/ # Universal Semiotic Embedding
│ ├── consensus/ # Proof-of-Cognitive-Work
│ ├── chain/ # Blockchain logic
│ ├── quantum/ # Quantum integration
│ └── edge/ # Edge computing
├── workers/ # Cloudflare Workers
├── contracts/ # Smart contracts
├── tests/ # Test suite
└── docs/ # Documentation
```
### Running Tests
```bash
# Unit tests
pytest tests/unit/ -v
# Integration tests
pytest tests/integration/ -v
# With coverage
pytest --cov=src --cov-report=html
```
### Code Style
```bash
# Format code
black src/
isort src/
# Type checking
mypy src/
# Linting
flake8 src/
```
## Troubleshooting
### Issue: Out of memory
**Solution:** Reduce batch size or use CPU instead of GPU
```python
# In .env
DEVICE=cpu
BATCH_SIZE=16
```
### Issue: Worker deployment fails
**Solution:** Check wrangler.toml configuration
```bash
npx wrangler config list
npx wrangler whoami
```
### Issue: Query timeout
**Solution:** Increase timeout or reduce swarm size
```python
response = requests.post(
url,
json={"swarmSize": 10}, # Reduce from 50
timeout=60 # Increase from default 30
)
```
## Next Steps
- Read the [Whitepaper](docs/whitepaper.md)
- Explore [API Documentation](docs/api.md)
- Join the [Discord](https://discord.gg/chainstate)
- Contribute on [GitHub](https://github.com/CPater/chainstate)
## Support
- GitHub Issues: https://github.com/CPater/chainstate/issues
- Email: chainstate@nwo.capital
- Telegram: @chainstate_dev
---
**Happy building!** 🚀⛓