docs: restructure website, optimize HTML, gitignore private files

Website docs (website/docs/):
- Delete 6 stale -md.html duplicates
- Rename docs-clients/miners/developers → clients/miners/developers.html
- Unify header/nav across all 15 pages (new .site-header pattern)
- Fix 34 dead href=# links with real targets
- Upgrade Font Awesome v4→v6 in index.html
- Replace search stub with live client-side search (15-page index)
- Extract all inline CSS into shared docs.css (+630 lines)
- Extract inline theme JS into shared theme.js
- Strip inline style= attributes from 10+ pages
- Add .announce-banner, .source-links, .search-results CSS classes
- Add Markdown Source links to clients/miners/developers pages
- Update components.html title to Architecture & Components
- Move browser-wallet.html to website/wallet/, leave redirect
- Update all dates to February 2026

Website root:
- Delete 6 root-level duplicate HTML files (160KB saved)
- Rewire index.html and 404.html links

Root README.md:
- Fix 8 broken doc links to new numbered folder structure
- Update copyright to 2026

.gitignore + .example files:
- Gitignore private files: .aitbc.yaml, .env, deploy scripts,
  GPU scripts, service scripts, infra configs, .windsurf/, website README
- Create 7 .example files for GitHub users with sanitized templates
- Untrack 47 previously committed private files

Live server:
- Push all website files to aitbc-cascade:/var/www/html/
- Clean stale admin.html and index.nginx-debian.html
This commit is contained in:
oib
2026-02-13 23:18:52 +01:00
parent 06e48ef34b
commit 07f3a87328
87 changed files with 1699 additions and 17311 deletions

View File

@@ -5,183 +5,26 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>API Documentation - AITBC</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<style>
:root {
--primary-color: #2563eb;
--secondary-color: #1e40af;
--success-color: #10b981;
--text-dark: #1f2937;
--text-light: #6b7280;
--bg-light: #f9fafb;
--bg-white: #ffffff;
--border-color: #e5e7eb;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
line-height: 1.6;
color: var(--text-dark);
background: var(--bg-white);
margin: 0;
padding: 0;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
header {
background: var(--text-dark);
color: white;
padding: 1rem 0;
position: sticky;
top: 0;
z-index: 100;
}
nav {
display: flex;
justify-content: space-between;
align-items: center;
}
.logo {
font-size: 1.5rem;
font-weight: bold;
color: white;
text-decoration: none;
}
.nav-links {
display: flex;
gap: 2rem;
list-style: none;
margin: 0;
padding: 0;
}
.nav-links a {
color: white;
text-decoration: none;
transition: color 0.3s;
}
.nav-links a:hover {
color: var(--primary-color);
}
.doc-header {
padding: 3rem 0;
background: var(--bg-light);
margin-bottom: 2rem;
}
.doc-header h1 {
font-size: 2.5rem;
margin-bottom: 1rem;
color: var(--text-dark);
}
.doc-header p {
font-size: 1.2rem;
color: var(--text-light);
max-width: 800px;
}
.api-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 2rem;
margin: 2rem 0;
}
.api-card {
background: var(--bg-white);
border: 1px solid var(--border-color);
border-radius: 8px;
padding: 2rem;
transition: all 0.3s;
}
.api-card:hover {
box-shadow: 0 8px 25px rgba(0,0,0,0.1);
transform: translateY(-5px);
}
.api-card h3 {
margin-top: 0;
color: var(--primary-color);
font-size: 1.5rem;
}
.api-card .endpoint {
font-family: monospace;
background: var(--bg-light);
padding: 0.5rem 1rem;
border-radius: 4px;
margin: 1rem 0;
color: var(--text-dark);
}
.method {
display: inline-block;
padding: 0.25rem 0.5rem;
border-radius: 4px;
font-size: 0.875rem;
font-weight: 600;
margin-right: 0.5rem;
}
.method.get { background: #10b981; color: white; }
.method.post { background: #3b82f6; color: white; }
.method.put { background: #f59e0b; color: white; }
.method.delete { background: #ef4444; color: white; }
.back-button {
display: inline-flex;
align-items: center;
gap: 0.5rem;
color: var(--primary-color);
text-decoration: none;
margin-bottom: 2rem;
font-weight: 600;
}
.back-button:hover {
color: var(--secondary-color);
}
footer {
background: var(--text-dark);
color: white;
padding: 2rem 0;
text-align: center;
margin-top: 4rem;
}
@media (max-width: 768px) {
.nav-links {
display: none;
}
.doc-header h1 {
font-size: 2rem;
}
}
</style>
<link rel="stylesheet" href="css/docs.css">
</head>
<body>
<header>
<nav class="container">
<a href="../index.html" class="logo">AITBC</a>
<ul class="nav-links">
<li><a href="../index.html">Home</a></li>
<li><a href="../docs/index.html">Documentation</a></li>
<li><a href="mailto:aitbc@bubuit.net">Contact</a></li>
</ul>
</nav>
<!-- Header -->
<header class="site-header">
<div class="container">
<div class="header-inner">
<a href="/" class="brand">
<i class="fas fa-cube"></i>
<span>AITBC</span>
</a>
<nav class="header-nav">
<a href="/">Home</a>
<a href="/explorer/">Explorer</a>
<a href="/Exchange/">Exchange</a>
<a href="/docs/index.html" class="active">Docs</a>
<button id="theme-toggle" class="theme-toggle" title="Toggle theme"><i class="fas fa-sun"></i></button>
</nav>
</div>
</div>
</header>
<main>
@@ -328,12 +171,12 @@
</div>
<!-- Authentication -->
<section style="margin-top: 3rem;">
<section class="content-section">
<h2>Authentication</h2>
<p>All API requests must include an API key in the header:</p>
<pre style="background: #1f2937; color: #f9fafb; padding: 1rem; border-radius: 8px; overflow-x: auto;"><code>X-Api-Key: your_api_key_here</code></pre>
<pre class="code-inline"><code>X-Api-Key: your_api_key_here</code></pre>
<h3 style="margin-top: 2rem;">Getting API Keys</h3>
<h3>Getting API Keys</h3>
<ul>
<li>Clients: Register through the web interface or contact support</li>
<li>Miners: Generated upon registration</li>
@@ -342,23 +185,23 @@
</section>
<!-- Base URL -->
<section style="margin-top: 3rem;">
<section class="content-section">
<h2>Base URL</h2>
<p>All API endpoints are relative to the base URL:</p>
<pre style="background: #1f2937; color: #f9fafb; padding: 1rem; border-radius: 8px; overflow-x: auto;"><code>https://aitbc.bubuit.net/api</code></pre>
<pre class="code-inline"><code>https://aitbc.bubuit.net/api</code></pre>
<p>For development:</p>
<pre style="background: #1f2937; color: #f9fafb; padding: 1rem; border-radius: 8px; overflow-x: auto;"><code>http://localhost:18000</code></pre>
<pre class="code-inline"><code>http://localhost:18000</code></pre>
</section>
<!-- WebSocket -->
<section style="margin-top: 3rem;">
<section class="content-section">
<h2>WebSocket API</h2>
<p>Real-time updates are available through WebSocket connections:</p>
<pre style="background: #1f2937; color: #f9fafb; padding: 1rem; border-radius: 8px; overflow-x: auto;"><code>ws://aitbc.bubuit.net:18001/ws</code></pre>
<pre class="code-inline"><code>ws://aitbc.bubuit.net:18001/ws</code></pre>
<p>Subscribe to events:</p>
<pre style="background: #1f2937; color: #f9fafb; padding: 1rem; border-radius: 8px; overflow-x: auto;"><code>{
<pre class="code-inline"><code>{
"method": "subscribe",
"params": ["job_updates", "miner_heartbeats"]
}</code></pre>
@@ -368,8 +211,9 @@
<footer>
<div class="container">
<p>&copy; 2025 AITBC. All rights reserved.</p>
<p>&copy; 2026 AITBC. All rights reserved.</p>
</div>
</footer>
<script src="js/theme.js"></script>
</body>
</html>

View File

@@ -1,488 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Blockchain Node - AITBC Documentation</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<style>
:root {
--primary-color: #2563eb;
--secondary-color: #1e40af;
--success-color: #10b981;
--warning-color: #f59e0b;
--danger-color: #ef4444;
--text-dark: #1f2937;
--text-light: #6b7280;
--bg-light: #f9fafb;
--bg-white: #ffffff;
--border-color: #e5e7eb;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
line-height: 1.6;
color: var(--text-dark);
background: var(--bg-white);
margin: 0;
padding: 0;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
header {
background: var(--text-dark);
color: white;
padding: 1rem 0;
position: sticky;
top: 0;
z-index: 100;
}
nav {
display: flex;
justify-content: space-between;
align-items: center;
}
.logo {
font-size: 1.5rem;
font-weight: bold;
color: white;
text-decoration: none;
}
.nav-links {
display: flex;
gap: 2rem;
list-style: none;
margin: 0;
padding: 0;
}
.nav-links a {
color: white;
text-decoration: none;
transition: color 0.3s;
}
.nav-links a:hover {
color: var(--primary-color);
}
.breadcrumb {
padding: 1rem 0;
color: var(--text-light);
font-size: 0.9rem;
}
.breadcrumb a {
color: var(--text-light);
text-decoration: none;
}
.breadcrumb a:hover {
color: var(--primary-color);
}
.doc-header {
padding: 3rem 0;
background: var(--bg-light);
margin-bottom: 2rem;
}
.doc-header h1 {
font-size: 2.5rem;
margin-bottom: 1rem;
color: var(--text-dark);
}
.doc-header p {
font-size: 1.2rem;
color: var(--text-light);
max-width: 800px;
}
.status-badge {
display: inline-block;
padding: 0.25rem 0.75rem;
background: #10b98120;
color: var(--success-color);
border-radius: 20px;
font-size: 0.875rem;
font-weight: 600;
margin-top: 1rem;
}
.content-section {
margin-bottom: 3rem;
}
.content-section h2 {
font-size: 1.8rem;
margin-bottom: 1.5rem;
color: var(--text-dark);
border-bottom: 2px solid var(--border-color);
padding-bottom: 0.5rem;
}
.content-section h3 {
font-size: 1.4rem;
margin: 2rem 0 1rem;
color: var(--text-dark);
}
.content-section h4 {
font-size: 1.2rem;
margin: 1.5rem 0 0.5rem;
color: var(--text-dark);
}
.content-section p {
margin-bottom: 1rem;
color: var(--text-dark);
}
.content-section ul {
margin-bottom: 1rem;
padding-left: 2rem;
}
.content-section li {
margin-bottom: 0.5rem;
}
.feature-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 1.5rem;
margin: 2rem 0;
}
.feature-card {
background: var(--bg-white);
padding: 1.5rem;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.feature-card h4 {
margin-top: 0;
color: var(--primary-color);
}
.api-endpoint {
background: var(--bg-light);
padding: 1rem;
border-radius: 8px;
margin: 1rem 0;
border-left: 4px solid var(--primary-color);
}
.api-endpoint code {
display: block;
font-weight: bold;
margin-bottom: 0.5rem;
color: var(--primary-color);
}
pre {
background: #1f2937;
color: #f9fafb;
padding: 1.5rem;
border-radius: 8px;
overflow-x: auto;
margin: 1rem 0;
}
code {
font-family: 'Courier New', Courier, monospace;
font-size: 0.9rem;
}
pre code {
background: none;
padding: 0;
}
.back-button {
display: inline-flex;
align-items: center;
gap: 0.5rem;
color: var(--primary-color);
text-decoration: none;
margin-bottom: 2rem;
font-weight: 600;
}
.back-button:hover {
color: var(--secondary-color);
}
footer {
background: var(--text-dark);
color: white;
padding: 2rem 0;
text-align: center;
margin-top: 4rem;
}
@media (max-width: 768px) {
.nav-links {
display: none;
}
.doc-header h1 {
font-size: 2rem;
}
}
</style>
</head>
<body>
<header>
<nav class="container">
<a href="../index.html" class="logo">AITBC</a>
<ul class="nav-links">
<li><a href="../index.html">Home</a></li>
<li><a href="index.html">Documentation</a></li>
<li><a href="mailto:aitbc@bubuit.net">Contact</a></li>
</ul>
</nav>
</header>
<main>
<div class="container">
<!-- Breadcrumb -->
<div class="breadcrumb">
<a href="index.html">Documentation</a>
<span></span>
<a href="#">Components</a>
<span></span>
<span>Blockchain Node</span>
</div>
<!-- Back Button -->
<a href="components.html" class="back-button">
<i class="fas fa-arrow-left"></i>
Back to Components
</a>
<!-- Header -->
<div class="doc-header">
<h1><i class="fas fa-cube"></i> Blockchain Node</h1>
<p>PoA/PoS consensus blockchain with REST/WebSocket RPC, real-time gossip layer, and comprehensive observability</p>
<span class="status-badge">● Live</span>
</div>
<!-- Overview -->
<section class="content-section">
<h2>Overview</h2>
<p>The AITBC Blockchain Node is the core infrastructure component that maintains the distributed ledger. It implements a hybrid Proof-of-Authority/Proof-of-Stake consensus mechanism with fast finality and supports high throughput for AI workload transactions.</p>
<h3>Key Features</h3>
<ul>
<li>Hybrid PoA/PoS consensus with sub-second finality</li>
<li>REST and WebSocket RPC APIs</li>
<li>Real-time gossip protocol for block propagation</li>
<li>Comprehensive observability with Prometheus metrics</li>
<li>SQLModel-based data persistence</li>
<li>Built-in devnet tooling and scripts</li>
</ul>
</section>
<!-- Architecture -->
<section class="content-section">
<h2>Architecture</h2>
<p>The blockchain node is built with a modular architecture separating concerns for consensus, storage, networking, and API layers.</p>
<div class="feature-grid">
<div class="feature-card">
<h4>Consensus Engine</h4>
<p>Hybrid PoA/PoS with proposer rotation and validator sets</p>
</div>
<div class="feature-card">
<h4>Storage Layer</h4>
<p>SQLModel with SQLite/PostgreSQL support</p>
</div>
<div class="feature-card">
<h4>Networking</h4>
<p>WebSocket gossip + REST API</p>
</div>
<div class="feature-card">
<h4>Observability</h4>
<p>Prometheus metrics + structured logging</p>
</div>
</div>
</section>
<!-- API Reference -->
<section class="content-section">
<h2>API Reference</h2>
<p>The blockchain node exposes both REST and WebSocket APIs for interaction.</p>
<h3>REST Endpoints</h3>
<div class="api-endpoint">
<code>GET /rpc/get_head</code>
<p>Get the latest block header</p>
</div>
<div class="api-endpoint">
<code>POST /rpc/send_tx</code>
<p>Submit a new transaction</p>
</div>
<div class="api-endpoint">
<code>GET /rpc/get_balance/{address}</code>
<p>Get account balance</p>
</div>
<div class="api-endpoint">
<code>GET /rpc/get_block/{height}</code>
<p>Get block by height</p>
</div>
<h3>WebSocket Subscriptions</h3>
<ul>
<li><code>new_blocks</code> - Real-time block notifications</li>
<li><code>new_transactions</code> - Transaction pool updates</li>
<li><code>consensus_events</code> - Consensus round updates</li>
</ul>
</section>
<!-- Configuration -->
<section class="content-section">
<h2>Configuration</h2>
<p>The node can be configured via environment variables or configuration file.</p>
<h3>Key Settings</h3>
<pre><code># Database
DATABASE_URL=sqlite:///blockchain.db
# Network
RPC_HOST=0.0.0.0
RPC_PORT=9080
WS_PORT=9081
# Consensus
CONSENSUS_MODE=poa
VALIDATOR_ADDRESS=0x...
BLOCK_TIME=1s
# Observability
METRICS_PORT=9090
LOG_LEVEL=info</code></pre>
</section>
<!-- Running a Node -->
<section class="content-section">
<h2>Running a Node</h2>
<h3>Development Mode</h3>
<pre><code># Initialize devnet
python -m blockchain.scripts.init_devnet
# Start node
python -m blockchain.main --config devnet.yaml</code></pre>
<h3>Production Mode</h3>
<pre><code># Using Docker
docker run -d \
-v /data/blockchain:/data \
-p 9080:9080 \
-p 9081:9081 \
-p 9090:9090 \
aitbc/blockchain-node:latest</code></pre>
</section>
<!-- Monitoring -->
<section class="content-section">
<h2>Monitoring</h2>
<h3>Prometheus Metrics</h3>
<p>Available at <code>http://localhost:9090/metrics</code></p>
<p>Key metrics:</p>
<ul>
<li><code>blockchain_blocks_total</code> - Total blocks produced</li>
<li><code>blockchain_transactions_total</code> - Total transactions processed</li>
<li><code>blockchain_consensus_rounds</code> - Consensus rounds completed</li>
<li><code>blockchain_network_peers</code> - Active peer connections</li>
</ul>
<h3>Health Checks</h3>
<pre><code># Node status
curl http://localhost:9080/health
# Sync status
curl http://localhost:9080/sync_status</code></pre>
</section>
<!-- Troubleshooting -->
<section class="content-section">
<h2>Troubleshooting</h2>
<h3>Common Issues</h3>
<ol>
<li><strong>Node not syncing</strong>
<ul>
<li>Check peer connections: <code>curl /rpc/peers</code></li>
<li>Verify network connectivity</li>
<li>Check logs for consensus errors</li>
</ul>
</li>
<li><strong>High memory usage</strong>
<ul>
<li>Reduce <code>block_cache_size</code> in config</li>
<li>Enable block pruning</li>
</ul>
</li>
<li><strong>RPC timeouts</strong>
<ul>
<li>Increase <code>rpc_timeout</code> setting</li>
<li>Check system resources</li>
</ul>
</li>
</ol>
</section>
<!-- Development -->
<section class="content-section">
<h2>Development</h2>
<h3>Building from Source</h3>
<pre><code>git clone https://github.com/aitbc/blockchain
cd blockchain
pip install -e .</code></pre>
<h3>Running Tests</h3>
<pre><code># Unit tests
pytest tests/
# Integration tests
pytest tests/integration/</code></pre>
</section>
<!-- Security Considerations -->
<section class="content-section">
<h2>Security Considerations</h2>
<ul>
<li>Validator keys should be kept secure</li>
<li>Use HTTPS in production</li>
<li>Implement rate limiting on RPC endpoints</li>
<li>Regular security updates for dependencies</li>
</ul>
</section>
</div>
</main>
<footer>
<div class="container">
<p>&copy; 2025 AITBC. All rights reserved.</p>
</div>
</footer>
</body>
</html>

View File

@@ -5,272 +5,26 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Blockchain Node - AITBC Documentation</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
:root {
--primary-color: #2563eb;
--secondary-color: #1e40af;
--accent-color: #3b82f6;
--success-color: #10b981;
--warning-color: #f59e0b;
--danger-color: #ef4444;
--text-dark: #1f2937;
--text-light: #6b7280;
--bg-light: #f9fafb;
--bg-white: #ffffff;
--border-color: #e5e7eb;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
line-height: 1.6;
color: var(--text-dark);
background: var(--bg-light);
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
/* Header */
header {
background: var(--bg-white);
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
position: fixed;
width: 100%;
top: 0;
z-index: 1000;
}
nav {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem 0;
}
.logo {
font-size: 1.5rem;
font-weight: bold;
color: var(--primary-color);
text-decoration: none;
}
.nav-links {
display: flex;
gap: 2rem;
list-style: none;
}
.nav-links a {
color: var(--text-dark);
text-decoration: none;
transition: color 0.3s;
}
.nav-links a:hover,
.nav-links a.active {
color: var(--primary-color);
}
/* Main Content */
main {
margin-top: 80px;
padding: 40px 0;
}
.doc-header {
background: var(--bg-white);
padding: 3rem 0;
margin-bottom: 2rem;
border-radius: 10px;
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.doc-header h1 {
font-size: 2.5rem;
color: var(--text-dark);
margin-bottom: 1rem;
}
.doc-header p {
color: var(--text-light);
font-size: 1.1rem;
}
.breadcrumb {
margin-bottom: 2rem;
}
.breadcrumb a {
color: var(--primary-color);
text-decoration: none;
}
.breadcrumb span {
color: var(--text-light);
margin: 0 0.5rem;
}
/* Content Sections */
.content-section {
background: var(--bg-white);
padding: 2.5rem;
margin-bottom: 2rem;
border-radius: 10px;
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.content-section h2 {
font-size: 1.8rem;
margin-bottom: 1.5rem;
color: var(--text-dark);
display: flex;
align-items: center;
gap: 0.5rem;
}
.content-section h3 {
font-size: 1.4rem;
margin: 2rem 0 1rem;
color: var(--text-dark);
}
.content-section p {
margin-bottom: 1rem;
color: var(--text-light);
}
.content-section ul {
margin-left: 2rem;
margin-bottom: 1rem;
}
.content-section li {
margin-bottom: 0.5rem;
color: var(--text-light);
}
.content-section code {
background: var(--bg-light);
padding: 0.2rem 0.4rem;
border-radius: 4px;
font-family: 'Courier New', monospace;
color: var(--primary-color);
}
.content-section pre {
background: var(--bg-light);
padding: 1rem;
border-radius: 8px;
overflow-x: auto;
margin: 1rem 0;
}
.content-section pre code {
background: none;
padding: 0;
color: var(--text-dark);
}
/* Feature Grid */
.feature-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 1.5rem;
margin: 2rem 0;
}
.feature-card {
padding: 1.5rem;
border: 1px solid var(--border-color);
border-radius: 8px;
background: var(--bg-light);
}
.feature-card h4 {
color: var(--primary-color);
margin-bottom: 0.5rem;
}
/* API Endpoints */
.api-endpoint {
background: var(--bg-light);
padding: 1rem;
border-radius: 8px;
margin: 1rem 0;
border-left: 4px solid var(--primary-color);
}
.api-endpoint code {
display: block;
font-weight: bold;
margin-bottom: 0.5rem;
}
/* Status Badge */
.status-badge {
display: inline-block;
padding: 0.25rem 0.75rem;
border-radius: 20px;
font-size: 0.875rem;
font-weight: 600;
}
.status-badge.live {
background: #10b98120;
color: var(--success-color);
}
/* Back Button */
.back-button {
display: inline-flex;
align-items: center;
gap: 0.5rem;
color: var(--primary-color);
text-decoration: none;
margin-bottom: 2rem;
font-weight: 600;
}
.back-button:hover {
color: var(--secondary-color);
}
/* Responsive */
@media (max-width: 768px) {
.nav-links {
display: none;
}
.doc-header h1 {
font-size: 2rem;
}
.content-section {
padding: 1.5rem;
}
}
</style>
<link rel="stylesheet" href="css/docs.css">
</head>
<body>
<!-- Header -->
<header>
<nav class="container">
<a href="../index.html" class="logo">AITBC</a>
<ul class="nav-links">
<li><a href="../index.html">Home</a></li>
<li><a href="index.html" class="active">Documentation</a></li>
<li><a href="mailto:aitbc@bubuit.net">Contact</a></li>
</ul>
</nav>
<header class="site-header">
<div class="container">
<div class="header-inner">
<a href="/" class="brand">
<i class="fas fa-cube"></i>
<span>AITBC</span>
</a>
<nav class="header-nav">
<a href="/">Home</a>
<a href="/explorer/">Explorer</a>
<a href="/Exchange/">Exchange</a>
<a href="/docs/index.html" class="active">Docs</a>
<button id="theme-toggle" class="theme-toggle" title="Toggle theme"><i class="fas fa-sun"></i></button>
</nav>
</div>
</div>
</header>
<!-- Main Content -->
@@ -280,7 +34,7 @@
<div class="breadcrumb">
<a href="index.html">Documentation</a>
<span></span>
<a href="#">Components</a>
<a href="components.html">Components</a>
<span></span>
<span>Blockchain Node</span>
</div>
@@ -450,5 +204,6 @@ python -m aitbc_chain.node</code></pre>
<script>
// Add any interactive functionality here
</script>
<script src="js/theme.js"></script>
</body>
</html>

View File

@@ -1,417 +1,12 @@
<!DOCTYPE html>
<html lang="en">
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AITBC Browser Wallet - Secure Crypto Wallet</title>
<link rel="stylesheet" href="/assets/css/aitbc.css">
<script src="/assets/js/lucide.js"></script>
<style>
.hero-gradient {
background: linear-gradient(135deg, #f97316 0%, #ea580c 100%);
}
.feature-card {
transition: all 0.3s ease;
border: 1px solid #e5e7eb;
}
.feature-card:hover {
transform: translateY(-4px);
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
}
.browser-button {
display: flex;
align-items: center;
justify-content: center;
gap: 12px;
padding: 16px 32px;
border-radius: 12px;
font-size: 18px;
font-weight: 600;
transition: all 0.3s ease;
text-decoration: none;
color: white;
}
.browser-button:hover {
transform: scale(1.05);
}
.chrome-button {
background: linear-gradient(135deg, #4285f4 0%, #1a73e8 100%);
}
.firefox-button {
background: linear-gradient(135deg, #ff9500 0%, #ff6611 100%);
}
.step-number {
width: 40px;
height: 40px;
background: #f97316;
color: white;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-weight: bold;
flex-shrink: 0;
}
.code-block {
background: #1e293b;
color: #e2e8f0;
padding: 16px;
border-radius: 8px;
font-family: monospace;
overflow-x: auto;
}
.security-icon {
width: 64px;
height: 64px;
margin: 0 auto 16px;
}
</style>
<meta http-equiv="refresh" content="0;url=/wallet/">
<title>Redirecting to AITBC Wallet...</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<link rel="stylesheet" href="css/docs.css">
</head>
<body class="bg-gray-50">
<!-- Header -->
<header class="hero-gradient text-white">
<nav class="container mx-auto px-4 py-6">
<div class="flex items-center justify-between">
<div class="flex items-center space-x-3">
<i data-lucide="wallet" class="w-8 h-8"></i>
<span class="text-2xl font-bold">AITBC</span>
</div>
<div class="flex items-center space-x-6">
<a href="/docs/" class="hover:text-orange-200 transition">Documentation</a>
<a href="/Exchange/" class="hover:text-orange-200 transition">Exchange</a>
<a href="/explorer/" class="hover:text-orange-200 transition">Explorer</a>
</div>
</div>
</nav>
<div class="container mx-auto px-4 py-20 text-center">
<h1 class="text-5xl font-bold mb-6">AITBC Browser Wallet</h1>
<p class="text-xl mb-8 max-w-2xl mx-auto">
The most secure way to store, send, and receive AITBC tokens.
Connect to the AITBC Trade Exchange with just one click.
</p>
<div class="flex justify-center gap-6 flex-wrap">
<a href="/chrome-wallet/install.html" class="browser-button chrome-button">
<i data-lucide="chrome" class="w-6 h-6"></i>
Install for Chrome
</a>
<a href="/firefox-wallet/install.html" class="browser-button firefox-button">
<i data-lucide="globe" class="w-6 h-6"></i>
Install for Firefox
</a>
</div>
</div>
</header>
<!-- Features Section -->
<section class="py-20">
<div class="container mx-auto px-4">
<h2 class="text-3xl font-bold text-center mb-12">Why Choose AITBC Wallet?</h2>
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
<div class="feature-card bg-white p-8 rounded-xl text-center">
<i data-lucide="shield" class="security-icon text-orange-600"></i>
<h3 class="text-xl font-semibold mb-4">Bank-Grade Security</h3>
<p class="text-gray-600">
Your private keys never leave your device.
Encrypted locally with military-grade security.
</p>
</div>
<div class="feature-card bg-white p-8 rounded-xl text-center">
<i data-lucide="link" class="security-icon text-orange-600"></i>
<h3 class="text-xl font-semibold mb-4">Seamless dApp Integration</h3>
<p class="text-gray-600">
Connect to any AITBC-powered dApp with a single click.
No more copying and pasting addresses.
</p>
</div>
<div class="feature-card bg-white p-8 rounded-xl text-center">
<i data-lucide="zap" class="security-icon text-orange-600"></i>
<h3 class="text-xl font-semibold mb-4">Lightning Fast</h3>
<p class="text-gray-600">
Built for performance.
Instant transactions and real-time balance updates.
</p>
</div>
</div>
</div>
</section>
<!-- Chrome Installation -->
<section id="chrome-install" class="py-20 bg-gray-100">
<div class="container mx-auto px-4">
<h2 class="text-3xl font-bold text-center mb-12">Install for Chrome / Edge / Brave</h2>
<div class="max-w-3xl mx-auto">
<div class="bg-white rounded-xl p-8 shadow-lg">
<h3 class="text-2xl font-semibold mb-6 flex items-center">
<i data-lucide="chrome" class="w-8 h-8 mr-3"></i>
Chrome Installation Steps
</h3>
<div class="space-y-6">
<div class="flex gap-4">
<div class="step-number">1</div>
<div>
<h4 class="font-semibold mb-2">Download the Extension</h4>
<p class="text-gray-600 mb-4">
Download the AITBC Wallet extension files to your computer.
</p>
<a href="/assets/aitbc-wallet.zip" class="inline-flex items-center gap-2 bg-blue-600 text-white px-6 py-3 rounded-lg hover:bg-blue-700 transition">
<i data-lucide="download" class="w-5 h-5"></i>
Download Chrome Extension
</a>
</div>
</div>
<div class="flex gap-4">
<div class="step-number">2</div>
<div>
<h4 class="font-semibold mb-2">Open Chrome Extensions</h4>
<p class="text-gray-600 mb-4">
Open Chrome and navigate to the extensions page:
</p>
<div class="code-block">chrome://extensions/</div>
</div>
</div>
<div class="flex gap-4">
<div class="step-number">3</div>
<div>
<h4 class="font-semibold mb-2">Enable Developer Mode</h4>
<p class="text-gray-600 mb-4">
Toggle the "Developer mode" switch in the top right corner.
</p>
</div>
</div>
<div class="flex gap-4">
<div class="step-number">4</div>
<div>
<h4 class="font-semibold mb-2">Load Extension</h4>
<p class="text-gray-600 mb-4">
Click "Load unpacked" and select the <code>aitbc-wallet</code> folder.
</p>
</div>
</div>
<div class="flex gap-4">
<div class="step-number">5</div>
<div>
<h4 class="font-semibold mb-2">Start Using!</h4>
<p class="text-gray-600">
Click the AITBC Wallet icon in your toolbar to create or import an account.
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Firefox Installation -->
<section id="firefox-install" class="py-20">
<div class="container mx-auto px-4">
<h2 class="text-3xl font-bold text-center mb-12">Install for Firefox</h2>
<div class="max-w-3xl mx-auto">
<div class="bg-white rounded-xl p-8 shadow-lg">
<h3 class="text-2xl font-semibold mb-6 flex items-center">
<i data-lucide="globe" class="w-8 h-8 mr-3 text-orange-600"></i>
Firefox Installation Steps
</h3>
<div class="space-y-6">
<div class="flex gap-4">
<div class="step-number">1</div>
<div>
<h4 class="font-semibold mb-2">Visit Install Page</h4>
<p class="text-gray-600 mb-4">
Click the button below to go to the Firefox installation page.
</p>
<a href="/firefox-wallet/install.html" class="inline-flex items-center gap-2 bg-orange-600 text-white px-6 py-3 rounded-lg hover:bg-orange-700 transition">
<i data-lucide="download" class="w-5 h-5"></i>
Install Firefox Extension
</a>
</div>
</div>
<div class="flex gap-4">
<div class="step-number">2</div>
<div>
<h4 class="font-semibold mb-2">Click "Add to Firefox"</h4>
<p class="text-gray-600">
On the install page, click the "Add to Firefox" button to install the extension.
</p>
</div>
</div>
<div class="flex gap-4">
<div class="step-number">3</div>
<div>
<h4 class="font-semibold mb-2">Start Using!</h4>
<p class="text-gray-600">
The AITBC Wallet will appear in your toolbar with an orange icon. Click to create your first account!
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Usage Guide -->
<section class="py-20 bg-gray-100">
<div class="container mx-auto px-4">
<h2 class="text-3xl font-bold text-center mb-12">Using Your AITBC Wallet</h2>
<div class="grid grid-cols-1 md:grid-cols-2 gap-8 max-w-5xl mx-auto">
<div class="bg-white p-8 rounded-xl">
<h3 class="text-xl font-semibold mb-4 flex items-center">
<i data-lucide="plus-circle" class="w-6 h-6 mr-2 text-green-600"></i>
Create a New Wallet
</h3>
<ol class="space-y-2 text-gray-600">
<li>1. Click the AITBC Wallet icon</li>
<li>2. Select "Create New Account"</li>
<li>3. Securely save your private key</li>
<li>4. Your wallet is ready!</li>
</ol>
</div>
<div class="bg-white p-8 rounded-xl">
<h3 class="text-xl font-semibold mb-4 flex items-center">
<i data-lucide="download" class="w-6 h-6 mr-2 text-blue-600"></i>
Import Existing Wallet
</h3>
<ol class="space-y-2 text-gray-600">
<li>1. Click the AITBC Wallet icon</li>
<li>2. Select "Import Private Key"</li>
<li>3. Enter your private key</li>
<li>4. Access your restored wallet</li>
</ol>
</div>
<div class="bg-white p-8 rounded-xl">
<h3 class="text-xl font-semibold mb-4 flex items-center">
<i data-lucide="link" class="w-6 h-6 mr-2 text-purple-600"></i>
Connect to Exchange
</h3>
<ol class="space-y-2 text-gray-600">
<li>1. Visit <a href="/Exchange/" class="text-blue-600 hover:underline">AITBC Exchange</a></li>
<li>2. Toggle to "Real Mode"</li>
<li>3. Click "Connect AITBC Wallet"</li>
<li>4. Approve the connection</li>
</ol>
</div>
<div class="bg-white p-8 rounded-xl">
<h3 class="text-xl font-semibold mb-4 flex items-center">
<i data-lucide="send" class="w-6 h-6 mr-2 text-orange-600"></i>
Send & Receive Tokens
</h3>
<ol class="space-y-2 text-gray-600">
<li>1. Click "Send" to transfer tokens</li>
<li>2. Click "Receive" to get your address</li>
<li>3. All transactions require confirmation</li>
<li>4. View history in the wallet</li>
</ol>
</div>
</div>
</div>
</section>
<!-- Security Tips -->
<section class="py-20">
<div class="container mx-auto px-4">
<h2 class="text-3xl font-bold text-center mb-12">Security Best Practices</h2>
<div class="max-w-3xl mx-auto">
<div class="bg-red-50 border border-red-200 rounded-xl p-8">
<h3 class="text-xl font-semibold mb-6 text-red-800 flex items-center">
<i data-lucide="alert-triangle" class="w-6 h-6 mr-2"></i>
Important Security Reminders
</h3>
<ul class="space-y-4 text-gray-700">
<li class="flex items-start">
<i data-lucide="shield" class="w-5 h-5 mr-3 mt-0.5 text-red-600 flex-shrink-0"></i>
<span><strong>Never share your private key</strong> - Anyone with your private key has full control of your funds</span>
</li>
<li class="flex items-start">
<i data-lucide="file-text" class="w-5 h-5 mr-3 mt-0.5 text-red-600 flex-shrink-0"></i>
<span><strong>Backup your private key</strong> - Write it down and store it in a secure, offline location</span>
</li>
<li class="flex items-start">
<i data-lucide="globe" class="w-5 h-5 mr-3 mt-0.5 text-red-600 flex-shrink-0"></i>
<span><strong>Verify URLs</strong> - Always ensure you're on aitbc.bubuit.net before connecting</span>
</li>
<li class="flex items-start">
<i data-lucide="lock" class="w-5 h-5 mr-3 mt-0.5 text-red-600 flex-shrink-0"></i>
<span><strong>Use a password manager</strong> - Protect your browser with a strong, unique password</span>
</li>
<li class="flex items-start">
<i data-lucide="refresh-cw" class="w-5 h-5 mr-3 mt-0.5 text-red-600 flex-shrink-0"></i>
<span><strong>Keep updated</strong> - Regularly update your browser and the wallet extension</span>
</li>
</ul>
</div>
</div>
</div>
</section>
<!-- Footer -->
<footer class="bg-gray-900 text-white py-12">
<div class="container mx-auto px-4">
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
<div>
<h4 class="text-lg font-semibold mb-4">AITBC Wallet</h4>
<p class="text-gray-400">
The secure browser wallet for AITBC tokens
</p>
</div>
<div>
<h4 class="text-lg font-semibold mb-4">Quick Links</h4>
<ul class="space-y-2 text-gray-400">
<li><a href="/Exchange/" class="hover:text-white transition">Trade Exchange</a></li>
<li><a href="/explorer/" class="hover:text-white transition">Block Explorer</a></li>
<li><a href="/docs/" class="hover:text-white transition">Documentation</a></li>
</ul>
</div>
<div>
<h4 class="text-lg font-semibold mb-4">Support</h4>
<p class="text-gray-400">
Need help? Check our documentation or create an issue on GitHub.
</p>
</div>
</div>
<div class="border-t border-gray-800 mt-8 pt-8 text-center text-gray-400">
<p>&copy; 2025 AITBC. All rights reserved.</p>
</div>
</div>
</footer>
<script>
// Initialize Lucide icons
document.addEventListener('DOMContentLoaded', () => {
lucide.createIcons();
});
// Smooth scroll for anchor links
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function (e) {
e.preventDefault();
const target = document.querySelector(this.getAttribute('href'));
if (target) {
target.scrollIntoView({
behavior: 'smooth',
block: 'start'
});
}
});
});
</script>
<body>
<p>Redirecting to <a href="/wallet/">AITBC Browser Wallet</a></p>
</body>
</html>

View File

@@ -1,586 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Client Documentation - AITBC</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<style>
:root {
--primary-color: #2563eb;
--secondary-color: #1e40af;
--success-color: #10b981;
--warning-color: #f59e0b;
--danger-color: #ef4444;
--text-dark: #1f2937;
--text-light: #6b7280;
--bg-light: #f9fafb;
--bg-white: #ffffff;
--border-color: #e5e7eb;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
line-height: 1.6;
color: var(--text-dark);
background: var(--bg-white);
margin: 0;
padding: 0;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
header {
background: var(--text-dark);
color: white;
padding: 1rem 0;
position: sticky;
top: 0;
z-index: 100;
}
nav {
display: flex;
justify-content: space-between;
align-items: center;
}
.logo {
font-size: 1.5rem;
font-weight: bold;
color: white;
text-decoration: none;
}
.nav-links {
display: flex;
gap: 2rem;
list-style: none;
margin: 0;
padding: 0;
}
.nav-links a {
color: white;
text-decoration: none;
transition: color 0.3s;
}
.nav-links a:hover {
color: var(--primary-color);
}
.breadcrumb {
padding: 1rem 0;
color: var(--text-light);
font-size: 0.9rem;
}
.breadcrumb a {
color: var(--text-light);
text-decoration: none;
}
.breadcrumb a:hover {
color: var(--primary-color);
}
.doc-header {
padding: 3rem 0;
background: var(--bg-light);
margin-bottom: 2rem;
}
.doc-header h1 {
font-size: 2.5rem;
margin-bottom: 1rem;
color: var(--text-dark);
}
.doc-header p {
font-size: 1.2rem;
color: var(--text-light);
max-width: 800px;
}
.content-section {
margin-bottom: 3rem;
}
.content-section h2 {
font-size: 1.8rem;
margin-bottom: 1.5rem;
color: var(--text-dark);
border-bottom: 2px solid var(--border-color);
padding-bottom: 0.5rem;
}
.content-section h3 {
font-size: 1.4rem;
margin: 2rem 0 1rem;
color: var(--text-dark);
}
.content-section h4 {
font-size: 1.2rem;
margin: 1.5rem 0 0.5rem;
color: var(--text-dark);
}
.content-section p {
margin-bottom: 1rem;
color: var(--text-dark);
}
.content-section ul {
margin-bottom: 1rem;
padding-left: 2rem;
}
.content-section li {
margin-bottom: 0.5rem;
}
.feature-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 1.5rem;
margin: 2rem 0;
}
.feature-card {
background: var(--bg-white);
padding: 1.5rem;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.feature-card h4 {
margin-top: 0;
color: var(--primary-color);
}
.pricing-table {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 2rem;
margin: 2rem 0;
}
.pricing-card {
background: var(--bg-white);
padding: 2rem;
border-radius: 12px;
box-shadow: 0 4px 20px rgba(0,0,0,0.08);
text-align: center;
}
.pricing-card h3 {
font-size: 1.5rem;
margin-bottom: 1rem;
color: var(--primary-color);
}
.pricing-card .price {
font-size: 2.5rem;
font-weight: bold;
margin-bottom: 1rem;
}
pre {
background: #1f2937;
color: #f9fafb;
padding: 1.5rem;
border-radius: 8px;
overflow-x: auto;
margin: 1rem 0;
}
code {
font-family: 'Courier New', Courier, monospace;
font-size: 0.9rem;
}
pre code {
background: none;
padding: 0;
}
.inline-code {
background: var(--bg-light);
padding: 0.2rem 0.4rem;
border-radius: 4px;
font-size: 0.9rem;
}
.back-button {
display: inline-flex;
align-items: center;
gap: 0.5rem;
color: var(--primary-color);
text-decoration: none;
margin-bottom: 2rem;
font-weight: 600;
}
.back-button:hover {
color: var(--secondary-color);
}
.alert {
padding: 1rem;
border-radius: 8px;
margin: 1rem 0;
}
.alert-info {
background: #dbeafe;
border-left: 4px solid var(--primary-color);
color: #1e40af;
}
.alert-warning {
background: #fef3c7;
border-left: 4px solid var(--warning-color);
color: #92400e;
}
.alert-success {
background: #d1fae5;
border-left: 4px solid var(--success-color);
color: #065f46;
}
footer {
background: var(--text-dark);
color: white;
padding: 2rem 0;
text-align: center;
margin-top: 4rem;
}
@media (max-width: 768px) {
.nav-links {
display: none;
}
.doc-header h1 {
font-size: 2rem;
}
}
</style>
</head>
<body>
<header>
<nav class="container">
<a href="../index.html" class="logo">AITBC</a>
<ul class="nav-links">
<li><a href="../index.html">Home</a></li>
<li><a href="index.html">Documentation</a></li>
<li><a href="mailto:aitbc@bubuit.net">Contact</a></li>
</ul>
</nav>
</header>
<main>
<div class="container">
<!-- Breadcrumb -->
<div class="breadcrumb">
<a href="index.html">Documentation</a>
<span></span>
<span>Client Documentation</span>
</div>
<!-- Back Button -->
<a href="index.html" class="back-button">
<i class="fas fa-arrow-left"></i>
Back to Documentation
</a>
<!-- Header -->
<div class="doc-header">
<h1><i class="fa fa-users"></i> Client Documentation</h1>
<p>Use AITBC for your AI/ML workloads with privacy and verifiable computation. Ideal for businesses and developers using AI services.</p>
</div>
<!-- Getting Started -->
<section class="content-section">
<h2>Getting Started</h2>
<p>Start using AITBC in minutes with our simple client SDK or web interface.</p>
<h3>Quick Start Options</h3>
<ul>
<li><strong>CLI Wrapper Tool</strong>: Unified bash script for job management</li>
<li><strong>Web Interface</strong>: No installation required</li>
<li><strong>Python SDK</strong>: For AI/ML developers</li>
<li><strong>JavaScript SDK</strong>: For web applications</li>
<li><strong>REST API</strong>: For any platform</li>
</ul>
<h3>CLI Wrapper Tool (Recommended)</h3>
<pre><code># Install the CLI wrapper
curl -O https://github.com/oib/AITBC/releases/download/latest/aitbc-cli.sh
chmod +x aitbc-cli.sh
# Check available services
./aitbc-cli.sh status
# Submit a job
./aitbc-cli.sh submit "Your prompt here" --model llama3.2</code></pre>
<h3>Web Interface</h3>
<p>Visit the <a href="../marketplace/">marketplace</a> to access the web interface.</p>
</section>
<!-- Python SDK -->
<section class="content-section">
<h2>Python SDK</h2>
<p>Install the Python SDK for easy integration into your applications:</p>
<pre><code># Install
pip install aitbc-client
# Basic usage
from aitbc import AITBCClient
client = AITBCClient(api_key="your-api-key")
# Submit a job
job = client.submit_job(
type="inference",
model="llama3.2",
prompt="Explain quantum computing",
max_tokens=500
)
# Wait for completion
result = client.wait_for_job(job.id)
print(result.output)</code></pre>
<h3>Advanced Features</h3>
<ul>
<li>Async/await support</li>
<li>Batch job submission</li>
<li>Streaming responses</li>
<li>Zero-knowledge proof verification</li>
</ul>
</section>
<!-- JavaScript SDK -->
<section class="content-section">
<h2>JavaScript SDK</h2>
<p>For web applications and Node.js:</p>
<pre><code># Install
npm install @aitbc/client
# Usage
import { AITBCClient } from '@aitbc/client';
const client = new AITBCClient({
apiKey: 'your-api-key',
endpoint: 'https://aitbc.bubuit.net/api'
});
// Submit job
const job = await client.submit({
type: 'inference',
model: 'llama3.2',
input: {
prompt: 'Hello, AITBC!',
max_tokens: 100
}
});
// Get result
const result = await client.getResult(job.id);
console.log(result.output);</code></pre>
</section>
<!-- REST API -->
<section class="content-section">
<h2>REST API</h2>
<p>Direct API access for any programming language:</p>
<pre><code># Submit a job
curl -X POST https://aitbc.bubuit.net/api/v1/jobs \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "inference",
"model": "gpt-4",
"input": {
"prompt": "Hello, AITBC!",
"max_tokens": 100
},
"privacy": {
"zk_proof": true
}
}'
# Check job status
curl -X GET https://aitbc.bubuit.net/api/v1/jobs/JOB_ID \
-H "Authorization: Bearer YOUR_TOKEN"</code></pre>
</section>
<!-- Pricing -->
<section class="content-section">
<h2>Pricing</h2>
<p>Flexible pricing options for every use case</p>
<div class="pricing-table">
<div class="pricing-card">
<h3>Pay-per-use</h3>
<div class="price">$0.01/1K tokens</div>
<ul style="text-align: left;">
<li>No minimum commitment</li>
<li>Pay for what you use</li>
<li>All models available</li>
</ul>
</div>
<div class="pricing-card">
<h3>Professional</h3>
<div class="price">$99/month</div>
<ul style="text-align: left;">
<li>10M tokens included</li>
<li>Priority processing</li>
<li>SLA guarantee</li>
</ul>
</div>
<div class="pricing-card">
<h3>Enterprise</h3>
<div class="price">Custom</div>
<ul style="text-align: left;">
<li>Unlimited tokens</li>
<li>Dedicated infrastructure</li>
<li>24/7 support</li>
</ul>
</div>
</div>
</section>
<!-- Privacy & Security -->
<section class="content-section">
<h2>Privacy & Security</h2>
<p>Your data is protected with enterprise-grade security:</p>
<div class="feature-grid">
<div class="feature-card">
<h4><i class="fas fa-shield-alt"></i> Zero-Knowledge Proofs</h4>
<p>Computation is verified without revealing your data</p>
</div>
<div class="feature-card">
<h4><i class="fas fa-lock"></i> End-to-End Encryption</h4>
<p>Your prompts and results are encrypted in transit and at rest</p>
</div>
<div class="feature-card">
<h4><i class="fas fa-certificate"></i> Verifiable Computation</h4>
<p>Every result includes a cryptographic proof of correct execution</p>
</div>
<div class="feature-card">
<h4><i class="fas fa-user-secret"></i> Privacy-Preserving</h4>
<p>Optional privacy mode keeps your data completely confidential</p>
</div>
</div>
</section>
<!-- Supported Models -->
<section class="content-section">
<h2>Supported Models</h2>
<p>Access a wide range of state-of-the-art AI models:</p>
<h3>Language Models</h3>
<ul>
<li>LLaMA 3.2 (8B, 70B)</li>
<li>Mistral (7B, 8x7B)</li>
<li>DeepSeek (67B)</li>
<li>Code Llama (34B)</li>
<li>GPT-4 (via API)</li>
</ul>
<h3>Image Models</h3>
<ul>
<li>Stable Diffusion XL</li>
<li>DALL-E 3 (via API)</li>
<li>Midjourney (via API)</li>
</ul>
<h3>Specialized Models</h3>
<ul>
<li>Embedding models for search</li>
<li>Speech-to-text (Whisper)</li>
<li>Text-to-speech</li>
<li>Translation models</li>
</ul>
</section>
<!-- Best Practices -->
<section class="content-section">
<h2>Best Practices</h2>
<div class="alert alert-info">
<strong>💡 Tip:</strong> Use batch processing for multiple requests to reduce latency and costs.
</div>
<h3>Performance Optimization</h3>
<ul>
<li>Use appropriate model sizes for your task</li>
<li>Implement caching for repeated requests</li>
<li>Use streaming for long responses</li>
<li>Monitor token usage to control costs</li>
<li>Consider subscription plans for regular use</li>
</ul>
<h3>Security Best Practices</h3>
<ul>
<li>Keep your API keys secure</li>
<li>Use environment variables for credentials</li>
<li>Implement proper error handling</li>
<li>Validate inputs before submission</li>
<li>Use HTTPS for all API calls</li>
</ul>
</section>
<!-- Support & Resources -->
<section class="content-section">
<h2>Support & Resources</h2>
<h3>Getting Help</h3>
<ul>
<li><strong>Documentation</strong>: <a href="full-documentation.html">Full API reference</a></li>
<li><strong>Community</strong>: <a href="https://discord.gg/aitbc">Join our Discord</a></li>
<li><strong>Email</strong>: <a href="mailto:aitbc@bubuit.net">aitbc@bubuit.net</a></li>
<li><strong>Status</strong>: System status available in monitoring dashboard</li>
</ul>
<h3>Tutorials</h3>
<ul>
<li><a href="#">Getting Started with AI Inference</a></li>
<li><a href="#">Building a Chat Application</a></li>
<li><a href="#">Image Generation Guide</a></li>
<li><a href="#">Privacy-Preserving ML</a></li>
<li><a href="#">API Integration Best Practices</a></li>
</ul>
<h3>Examples</h3>
<ul>
<li><a href="#">Python Examples Repository</a></li>
<li><a href="#">JavaScript Examples</a></li>
<li><a href="#">API Postman Collection</a></li>
<li><a href="#">Sample Applications</a></li>
</ul>
</section>
</div>
</main>
<footer>
<div class="container">
<p>&copy; 2025 AITBC. All rights reserved.</p>
</div>
</footer>
</body>
</html>

View File

@@ -9,19 +9,19 @@
</head>
<body>
<!-- Header -->
<header class="shadow-lg" style="background: var(--bg-white); position: fixed; width: 100%; top: 0; z-index: 1000; box-shadow: 0 1px 3px rgba(0,0,0,0.1);">
<div class="container" style="max-width: 1200px; margin: 0 auto; padding: 0 20px;">
<div style="display: flex; align-items: center; justify-content: space-between; padding: 1rem 0;">
<div style="display: flex; align-items: center; gap: 0.75rem;">
<i class="fa fa-cube" style="font-size: 2rem; color: var(--primary-color);"></i>
<h1 style="font-size: 1.5rem; font-weight: bold; margin: 0; color: var(--text-dark);">AITBC</h1>
</div>
<nav style="display: flex; align-items: center; gap: 1.5rem;">
<a href="/" style="background: transparent !important; color: var(--text-dark) !important; padding: 0.5rem 0.75rem; border-radius: 0.5rem; font-weight: 500; text-decoration: none; display: inline-flex; align-items: center;">Home</a>
<a href="/explorer/" style="background: transparent !important; color: var(--text-dark) !important; padding: 0.5rem 0.75rem; border-radius: 0.5rem; font-weight: 500; text-decoration: none; display: inline-flex; align-items: center;">Explorer</a>
<a href="/Exchange/" style="background: transparent !important; color: var(--text-dark) !important; padding: 0.5rem 0.75rem; border-radius: 0.5rem; font-weight: 500; text-decoration: none; display: inline-flex; align-items: center;">Exchange</a>
<a href="/docs/index.html" style="background: transparent !important; color: var(--text-dark) !important; padding: 0.5rem 0.75rem; border-radius: 0.5rem; font-weight: 500; text-decoration: none; display: inline-flex; align-items: center;">Documentation</a>
<button id="themeToggle" class="theme-toggle" style="background: rgba(59, 130, 246, 0.1) !important; color: var(--primary-color) !important; border: 2px solid var(--primary-color); padding: 0.5rem 1rem; border-radius: 0.5rem; cursor: pointer; font-size: 1rem;">🌞</button>
<header class="site-header">
<div class="container">
<div class="header-inner">
<a href="/" class="brand">
<i class="fas fa-cube"></i>
<span>AITBC</span>
</a>
<nav class="header-nav">
<a href="/">Home</a>
<a href="/explorer/">Explorer</a>
<a href="/Exchange/">Exchange</a>
<a href="/docs/index.html" class="active">Docs</a>
<button id="theme-toggle" class="theme-toggle" title="Toggle theme"><i class="fas fa-sun"></i></button>
</nav>
</div>
</div>
@@ -34,9 +34,12 @@
<span class="audience-badge">For Clients</span>
<h1>Use AITBC for AI/ML Workloads</h1>
<p>Access secure, private, and verifiable AI/ML computation on the decentralized network</p>
<div style="margin-top: 2rem; padding: 1.5rem; background: linear-gradient(135deg, rgba(16, 185, 129, 0.1) 0%, rgba(59, 130, 246, 0.1) 100%); border-radius: 15px; border: 2px solid rgba(16, 185, 129, 0.2);">
<h3 style="color: var(--success-color); margin-bottom: 0.5rem; font-size: 1.2rem;">✅ Now Available: CLI Wrapper Tool</h3>
<p style="color: var(--text-light); margin: 0;">Submit jobs, check status, and verify receipts with our new bash CLI wrapper. Supporting 13+ Ollama models with real-time blockchain verification!</p>
<div class="source-links">
<a href="https://github.com/oib/AITBC/tree/main/docs/2_clients" target="_blank"><i class="fas fa-file-alt"></i> Markdown Source: docs/2_clients/</a>
</div>
<div class="announce-banner green">
<h3>✅ Now Available: Full CLI with 90+ Commands</h3>
<p>Submit jobs, track lifecycle, manage wallet, and verify receipts. Supporting 13+ Ollama models with real-time blockchain verification!</p>
</div>
</div>
@@ -104,7 +107,7 @@
</div>
</div>
<div class="alert alert-info" style="margin: 1.5rem 0; padding: 1rem; background: rgba(59, 130, 246, 0.1); border-left: 4px solid var(--primary-color); border-radius: 8px;">
<div class="alert alert-info">
<strong>Available Models:</strong> llama3.2, mistral, deepseek-r1:14b, gemma3, qwen2.5-coder, and 8+ more via Ollama integration. Processing time: 11-25 seconds. Rate: 0.02 AITBC per GPU second.
</div>
@@ -391,19 +394,19 @@ curl -X GET https://aitbc.bubuit.net/api/v1/jobs/JOB_ID \
<h3>Tutorials</h3>
<ul>
<li><a href="#">Getting Started with AI Inference</a></li>
<li><a href="#">Building a Chat Application</a></li>
<li><a href="#">Image Generation Guide</a></li>
<li><a href="#">Privacy-Preserving ML</a></li>
<li><a href="#">API Integration Best Practices</a></li>
<li><a href="miners.html">Getting Started with AI Inference</a></li>
<li><a href="https://github.com/oib/AITBC/tree/main/docs/8_development/4_examples.md" target="_blank">Building a Chat Application</a></li>
<li><a href="https://github.com/oib/AITBC/tree/main/docs/8_development/4_examples.md" target="_blank">Image Generation Guide</a></li>
<li><a href="full-documentation.html#security">Privacy-Preserving ML</a></li>
<li><a href="api.html">API Integration Best Practices</a></li>
</ul>
<h3>Examples</h3>
<ul>
<li><a href="#">GitHub Repository</a></li>
<li><a href="#">Code Examples</a></li>
<li><a href="#">Sample Applications</a></li>
<li><a href="#">SDK Documentation</a></li>
<li><a href="https://github.com/oib/AITBC" target="_blank">GitHub Repository</a></li>
<li><a href="https://github.com/oib/AITBC/tree/main/docs/8_development/4_examples.md" target="_blank">Code Examples</a></li>
<li><a href="https://github.com/oib/AITBC/tree/main/docs/8_development" target="_blank">Sample Applications</a></li>
<li><a href="developers.html">SDK Documentation</a></li>
</ul>
</section>
@@ -449,28 +452,8 @@ curl -X GET https://aitbc.bubuit.net/api/v1/jobs/JOB_ID \
<!-- Footer -->
<footer>
<div class="container">
<p>&copy; 2025 AITBC. All rights reserved.</p>
<p>&copy; 2026 AITBC. All rights reserved.</p>
</div>
</footer>
<script>
// Check for saved theme preference or default to dark mode
const currentTheme = localStorage.getItem('theme') || 'dark';
if (currentTheme === 'light') {
document.body.classList.add('light');
const btn = document.getElementById('themeToggle');
if (btn) btn.textContent = '🌙';
}
// Theme toggle functionality
const themeBtn = document.getElementById('themeToggle');
if (themeBtn) {
themeBtn.addEventListener('click', function() {
document.body.classList.toggle('light');
const isLight = document.body.classList.contains('light');
localStorage.setItem('theme', isLight ? 'light' : 'dark');
this.textContent = isLight ? '🌙' : '🌞';
});
}
</script></body>
</footer> <script src="js/theme.js"></script>
</body>
</html>

View File

@@ -1,495 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AITBC System Components - Documentation</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<style>
:root {
--primary-color: #2563eb;
--secondary-color: #1e40af;
--success-color: #10b981;
--text-dark: #1f2937;
--text-light: #6b7280;
--bg-light: #f9fafb;
--bg-white: #ffffff;
--border-color: #e5e7eb;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
line-height: 1.6;
color: var(--text-dark);
background: var(--bg-white);
margin: 0;
padding: 0;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
header {
background: var(--text-dark);
color: white;
padding: 1rem 0;
position: sticky;
top: 0;
z-index: 100;
}
nav {
display: flex;
justify-content: space-between;
align-items: center;
}
.logo {
font-size: 1.5rem;
font-weight: bold;
color: white;
text-decoration: none;
}
.nav-links {
display: flex;
gap: 2rem;
list-style: none;
margin: 0;
padding: 0;
}
.nav-links a {
color: white;
text-decoration: none;
transition: color 0.3s;
}
.nav-links a:hover {
color: var(--primary-color);
}
.breadcrumb {
padding: 1rem 0;
color: var(--text-light);
font-size: 0.9rem;
}
.breadcrumb a {
color: var(--text-light);
text-decoration: none;
}
.breadcrumb a:hover {
color: var(--primary-color);
}
.doc-header {
padding: 3rem 0;
background: var(--bg-light);
margin-bottom: 3rem;
}
.doc-header h1 {
font-size: 2.5rem;
margin-bottom: 1rem;
color: var(--text-dark);
}
.doc-header p {
font-size: 1.2rem;
color: var(--text-light);
max-width: 800px;
}
.content-section {
margin-bottom: 3rem;
}
.content-section h2 {
font-size: 1.8rem;
margin-bottom: 1.5rem;
color: var(--text-dark);
border-bottom: 2px solid var(--border-color);
padding-bottom: 0.5rem;
}
.content-section h3 {
font-size: 1.4rem;
margin: 2rem 0 1rem;
color: var(--text-dark);
}
.content-section p {
margin-bottom: 1rem;
color: var(--text-dark);
}
.components-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 2rem;
margin: 2rem 0;
}
.component-card {
background: var(--bg-white);
padding: 2rem;
border-radius: 12px;
box-shadow: 0 4px 20px rgba(0,0,0,0.08);
transition: transform 0.3s, box-shadow 0.3s;
}
.component-card:hover {
transform: translateY(-5px);
box-shadow: 0 8px 30px rgba(0,0,0,0.12);
}
.component-icon {
font-size: 2.5rem;
color: var(--primary-color);
margin-bottom: 1rem;
}
.component-card h3 {
margin-top: 0;
margin-bottom: 1rem;
color: var(--text-dark);
}
.component-status {
display: inline-flex;
align-items: center;
gap: 0.5rem;
color: var(--success-color);
font-weight: 600;
margin: 1rem 0;
}
.component-status.live::before {
content: "●";
color: var(--success-color);
}
.component-link {
display: inline-flex;
align-items: center;
gap: 0.5rem;
color: var(--primary-color);
text-decoration: none;
font-weight: 600;
margin-top: 1rem;
}
.component-link:hover {
color: var(--secondary-color);
}
.architecture-diagram {
background: var(--bg-light);
padding: 2rem;
border-radius: 12px;
margin: 2rem 0;
text-align: center;
font-family: monospace;
font-size: 0.9rem;
color: var(--text-dark);
overflow-x: auto;
}
.quick-links {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 1rem;
margin: 2rem 0;
}
.quick-link {
display: flex;
align-items: center;
gap: 0.75rem;
padding: 1rem;
background: var(--bg-light);
border-radius: 8px;
text-decoration: none;
color: var(--text-dark);
transition: all 0.3s;
}
.quick-link:hover {
background: var(--primary-color);
color: white;
transform: translateX(5px);
}
.quick-link i {
font-size: 1.2rem;
}
.back-button {
display: inline-flex;
align-items: center;
gap: 0.5rem;
color: var(--primary-color);
text-decoration: none;
margin-bottom: 2rem;
font-weight: 600;
}
.back-button:hover {
color: var(--secondary-color);
}
footer {
background: var(--text-dark);
color: white;
padding: 2rem 0;
text-align: center;
margin-top: 4rem;
}
@media (max-width: 768px) {
.nav-links {
display: none;
}
.doc-header h1 {
font-size: 2rem;
}
}
</style>
</head>
<body>
<header>
<nav class="container">
<a href="../index.html" class="logo">AITBC</a>
<ul class="nav-links">
<li><a href="../index.html">Home</a></li>
<li><a href="index.html">Documentation</a></li>
<li><a href="mailto:aitbc@bubuit.net">Contact</a></li>
</ul>
</nav>
</header>
<main>
<div class="container">
<!-- Breadcrumb -->
<div class="breadcrumb">
<a href="index.html">Documentation</a>
<span></span>
<span>Components</span>
</div>
<!-- Back Button -->
<a href="index.html" class="back-button">
<i class="fas fa-arrow-left"></i>
Back to Documentation
</a>
<!-- Header -->
<div class="doc-header">
<h1>AITBC System Components</h1>
<p>Overview of all components in the AITBC platform, their status, and documentation links.</p>
</div>
<!-- Core Components -->
<section class="content-section">
<h2>Core Components</h2>
<div class="components-grid">
<!-- Blockchain Node -->
<div class="component-card">
<div class="component-icon">
<i class="fas fa-cube"></i>
</div>
<h3>Blockchain Node</h3>
<p>PoA/PoS consensus with REST/WebSocket RPC, real-time gossip layer, and comprehensive observability. Production-ready with devnet tooling.</p>
<div class="component-status live">Live</div>
<a href="blockchain-node-md.html" class="component-link">
Learn More <i class="fas fa-arrow-right"></i>
</a>
</div>
<!-- Coordinator API -->
<div class="component-card">
<div class="component-icon">
<i class="fas fa-server"></i>
</div>
<h3>Coordinator API</h3>
<p>FastAPI service for job submission, miner registration, and receipt management. SQLite persistence with comprehensive endpoints.</p>
<div class="component-status live">Live</div>
<a href="coordinator-api-md.html" class="component-link">
Learn More <i class="fas fa-arrow-right"></i>
</a>
</div>
<!-- Marketplace Web -->
<div class="component-card">
<div class="component-icon">
<i class="fas fa-store"></i>
</div>
<h3>Marketplace Web</h3>
<p>Vite/TypeScript marketplace with offer/bid functionality, stats dashboard, and mock/live data toggle. Production UI ready.</p>
<div class="component-status live">Live</div>
<a href="marketplace-web-md.html" class="component-link">
Learn More <i class="fas fa-arrow-right"></i>
</a>
</div>
<!-- Explorer Web -->
<div class="component-card">
<div class="component-icon">
<i class="fas fa-search"></i>
</div>
<h3>Explorer Web</h3>
<p>Full-featured blockchain explorer with blocks, transactions, addresses, and receipts tracking. Responsive design with live data.</p>
<div class="component-status live">Live</div>
<a href="explorer-web.html" class="component-link">
Learn More <i class="fas fa-arrow-right"></i>
</a>
</div>
<!-- Wallet Daemon -->
<div class="component-card">
<div class="component-icon">
<i class="fas fa-wallet"></i>
</div>
<h3>Wallet Daemon</h3>
<p>Encrypted keystore with Argon2id + XChaCha20-Poly1305, REST/JSON-RPC APIs, and receipt verification capabilities.</p>
<div class="component-status live">Live</div>
<a href="wallet-daemon.html" class="component-link">
Learn More <i class="fas fa-arrow-right"></i>
</a>
</div>
<!-- Trade Exchange -->
<div class="component-card">
<div class="component-icon">
<i class="fas fa-exchange-alt"></i>
</div>
<h3>Trade Exchange</h3>
<p>Bitcoin-to-AITBC exchange with QR payments, user management, and real-time trading. Buy tokens with BTC instantly.</p>
<div class="component-status live">Live</div>
<a href="trade-exchange-md.html" class="component-link">
Learn More <i class="fas fa-arrow-right"></i>
</a>
</div>
<!-- Pool Hub -->
<div class="component-card">
<div class="component-icon">
<i class="fas fa-swimming-pool"></i>
</div>
<h3>Pool Hub</h3>
<p>Miner registry with scoring engine, Redis/PostgreSQL backing, and comprehensive metrics. Live matching API deployed.</p>
<div class="component-status live">Live</div>
<a href="pool-hub.html" class="component-link">
Learn More <i class="fas fa-arrow-right"></i>
</a>
</div>
</div>
</section>
<!-- Architecture Overview -->
<section class="content-section">
<h2>Architecture Overview</h2>
<p>The AITBC platform consists of 7 core components working together to provide a complete AI blockchain computing solution:</p>
<div class="architecture-diagram">
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ Clients │────▶│ Coordinator │────▶│ Blockchain │
│ │ │ API │ │ Node │
└─────────────┘ └──────────────┘ └─────────────┘
│ │ │
▼ ▼ ▼
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ Wallet │ │ Pool Hub │ │ Miners │
│ Daemon │ │ │ │ │
└─────────────┘ └──────────────┘ └─────────────┘
</div>
<h3>Infrastructure Layer</h3>
<ul>
<li><strong>Blockchain Node</strong> - Distributed ledger with PoA/PoS consensus</li>
<li><strong>Coordinator API</strong> - Job orchestration and management</li>
<li><strong>Wallet Daemon</strong> - Secure wallet management</li>
</ul>
<h3>Application Layer</h3>
<ul>
<li><strong>Marketplace Web</strong> - GPU compute marketplace</li>
<li><strong>Trade Exchange</strong> - Token trading platform</li>
<li><strong>Explorer Web</strong> - Blockchain explorer</li>
<li><strong>Pool Hub</strong> - Miner coordination service</li>
</ul>
</section>
<!-- Quick Links -->
<section class="content-section">
<h2>Quick Links</h2>
<div class="quick-links">
<a href="../Exchange/" class="quick-link">
<i class="fas fa-exchange-alt"></i>
<span>Trade Exchange</span>
</a>
<a href="../marketplace/" class="quick-link">
<i class="fas fa-store"></i>
<span>Marketplace</span>
</a>
<a href="../explorer/" class="quick-link">
<i class="fas fa-search"></i>
<span>Explorer</span>
</a>
<a href="../api/docs" class="quick-link">
<i class="fas fa-code"></i>
<span>API Docs</span>
</a>
</div>
</section>
<!-- Status Legend -->
<section class="content-section">
<h2>Status Legend</h2>
<ul>
<li><span class="component-status live">● Live</span> - Production ready and deployed</li>
<li><span class="component-status" style="color: var(--warning-color);">● Beta</span> - In testing, limited availability</li>
<li><span class="component-status" style="color: var(--text-light);">● Development</span> - Under active development</li>
</ul>
</section>
<!-- Deployment Information -->
<section class="content-section">
<h2>Deployment Information</h2>
<p>All components are containerized and can be deployed using Docker Compose:</p>
<pre style="background: #1f2937; color: #f9fafb; padding: 1.5rem; border-radius: 8px; overflow-x: auto;">
# Deploy all components
docker-compose up -d
# Check status
docker-compose ps
# View logs
docker-compose logs -f</pre>
</section>
<!-- Support -->
<section class="content-section">
<h2>Support</h2>
<p>For component-specific issues:</p>
<ul>
<li>Check individual documentation pages</li>
<li>Contact: <a href="mailto:aitbc@bubuit.net">aitbc@bubuit.net</a></li>
</ul>
</section>
</div>
</main>
<footer>
<div class="container">
<p>&copy; 2025 AITBC. All rights reserved.</p>
</div>
</footer>
</body>
</html>

View File

@@ -5,266 +5,26 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Platform Components - AITBC Documentation</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
:root {
--primary-color: #2563eb;
--secondary-color: #1e40af;
--accent-color: #3b82f6;
--success-color: #10b981;
--warning-color: #f59e0b;
--danger-color: #ef4444;
--text-dark: #1f2937;
--text-light: #6b7280;
--bg-light: #f9fafb;
--bg-white: #ffffff;
--border-color: #e5e7eb;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
line-height: 1.6;
color: var(--text-dark);
background: var(--bg-light);
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
/* Header */
header {
background: var(--bg-white);
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
position: fixed;
width: 100%;
top: 0;
z-index: 1000;
}
nav {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem 0;
}
.logo {
font-size: 1.5rem;
font-weight: bold;
color: var(--primary-color);
text-decoration: none;
}
.nav-links {
display: flex;
gap: 2rem;
list-style: none;
}
.nav-links a {
color: var(--text-dark);
text-decoration: none;
transition: color 0.3s;
}
.nav-links a:hover,
.nav-links a.active {
color: var(--primary-color);
}
/* Main Content */
main {
margin-top: 80px;
padding: 40px 0;
}
.doc-header {
background: var(--bg-white);
padding: 3rem 0;
margin-bottom: 2rem;
border-radius: 10px;
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.doc-header h1 {
font-size: 2.5rem;
color: var(--text-dark);
margin-bottom: 1rem;
}
.doc-header p {
color: var(--text-light);
font-size: 1.1rem;
}
.breadcrumb {
margin-bottom: 2rem;
}
.breadcrumb a {
color: var(--primary-color);
text-decoration: none;
}
.breadcrumb span {
color: var(--text-light);
margin: 0 0.5rem;
}
/* Components Grid */
.components-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
gap: 2rem;
margin-bottom: 3rem;
}
.component-card {
background: var(--bg-white);
border-radius: 15px;
padding: 2rem;
box-shadow: 0 4px 20px rgba(0,0,0,0.08);
transition: all 0.3s;
position: relative;
overflow: hidden;
}
.component-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 4px;
background: var(--primary-color);
}
.component-card:hover {
transform: translateY(-5px);
box-shadow: 0 8px 30px rgba(0,0,0,0.12);
}
.component-icon {
width: 70px;
height: 70px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.8rem;
color: white;
margin-bottom: 1.5rem;
background: var(--primary-color);
}
.component-card h3 {
font-size: 1.5rem;
margin-bottom: 1rem;
color: var(--text-dark);
}
.component-card p {
color: var(--text-light);
margin-bottom: 1.5rem;
line-height: 1.8;
}
.component-status {
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.25rem 0.75rem;
border-radius: 20px;
font-size: 0.875rem;
font-weight: 600;
margin-bottom: 1rem;
}
.component-status.live {
background: #10b98120;
color: var(--success-color);
}
.component-link {
display: inline-flex;
align-items: center;
gap: 0.5rem;
color: var(--primary-color);
text-decoration: none;
font-weight: 600;
transition: all 0.3s;
}
.component-link:hover {
color: var(--secondary-color);
transform: translateX(5px);
}
/* Section */
.section {
background: var(--bg-white);
padding: 2.5rem;
margin-bottom: 2rem;
border-radius: 10px;
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.section h2 {
font-size: 1.8rem;
margin-bottom: 1.5rem;
color: var(--text-dark);
}
/* Back Button */
.back-button {
display: inline-flex;
align-items: center;
gap: 0.5rem;
color: var(--primary-color);
text-decoration: none;
margin-bottom: 2rem;
font-weight: 600;
}
.back-button:hover {
color: var(--secondary-color);
}
/* Responsive */
@media (max-width: 768px) {
.nav-links {
display: none;
}
.doc-header h1 {
font-size: 2rem;
}
.components-grid {
grid-template-columns: 1fr;
}
}
</style>
<link rel="stylesheet" href="css/docs.css">
</head>
<body>
<!-- Header -->
<header>
<nav class="container">
<a href="../index.html" class="logo">AITBC</a>
<ul class="nav-links">
<li><a href="../index.html">Home</a></li>
<li><a href="index.html" class="active">Documentation</a></li>
<li><a href="mailto:aitbc@bubuit.net">Contact</a></li>
</ul>
</nav>
<header class="site-header">
<div class="container">
<div class="header-inner">
<a href="/" class="brand">
<i class="fas fa-cube"></i>
<span>AITBC</span>
</a>
<nav class="header-nav">
<a href="/">Home</a>
<a href="/explorer/">Explorer</a>
<a href="/Exchange/">Exchange</a>
<a href="/docs/index.html" class="active">Docs</a>
<button id="theme-toggle" class="theme-toggle" title="Toggle theme"><i class="fas fa-sun"></i></button>
</nav>
</div>
</div>
</header>
<!-- Main Content -->
@@ -285,8 +45,8 @@
<!-- Header -->
<div class="doc-header">
<h1>Platform Components</h1>
<p>Explore the 7 core components that make up the AITBC platform</p>
<h1>Architecture &amp; Components</h1>
<p>Explore the core components and system architecture of the AITBC platform</p>
</div>
<!-- Component Cards -->
@@ -408,16 +168,16 @@
<h2>Architecture Overview</h2>
<p>The AITBC platform consists of 7 core components working together to provide a complete AI blockchain computing solution:</p>
<div style="margin-top: 2rem;">
<div class="mt-4">
<h3>Infrastructure Layer</h3>
<ul style="margin-left: 2rem; color: var(--text-light);">
<ul>
<li><strong>Blockchain Node</strong> - Distributed ledger with PoA/PoS consensus</li>
<li><strong>Coordinator API</strong> - Job orchestration and management</li>
<li><strong>Wallet Daemon</strong> - Secure wallet management</li>
</ul>
<h3 style="margin-top: 1.5rem;">Application Layer</h3>
<ul style="margin-left: 2rem; color: var(--text-light);">
<h3>Application Layer</h3>
<ul>
<li><strong>Marketplace Web</strong> - GPU compute marketplace</li>
<li><strong>Trade Exchange</strong> - Token trading platform</li>
<li><strong>Explorer Web</strong> - Blockchain explorer</li>
@@ -429,17 +189,17 @@
<!-- Quick Links -->
<section class="section">
<h2>Quick Links</h2>
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; margin-top: 1.5rem;">
<a href="../Exchange/" style="padding: 1rem; background: var(--bg-light); border-radius: 8px; text-decoration: none; color: var(--text-dark); transition: all 0.3s;" onmouseover="this.style.background='var(--primary-color)'; this.style.color='white';" onmouseout="this.style.background='var(--bg-light)'; this.style.color='var(--text-dark)';">
<div class="quicklink-grid">
<a href="../Exchange/">
<i class="fas fa-exchange-alt"></i> Trade Exchange
</a>
<a href="../marketplace/" style="padding: 1rem; background: var(--bg-light); border-radius: 8px; text-decoration: none; color: var(--text-dark); transition: all 0.3s;" onmouseover="this.style.background='var(--primary-color)'; this.style.color='white';" onmouseout="this.style.background='var(--bg-light)'; this.style.color='var(--text-dark)';">
<a href="../marketplace/">
<i class="fas fa-store"></i> Marketplace
</a>
<a href="../explorer/" style="padding: 1rem; background: var(--bg-light); border-radius: 8px; text-decoration: none; color: var(--text-dark); transition: all 0.3s;" onmouseover="this.style.background='var(--primary-color)'; this.style.color='white';" onmouseout="this.style.background='var(--bg-light)'; this.style.color='var(--text-dark)';">
<a href="../explorer/">
<i class="fas fa-search"></i> Explorer
</a>
<a href="../api/docs" style="padding: 1rem; background: var(--bg-light); border-radius: 8px; text-decoration: none; color: var(--text-dark); transition: all 0.3s;" onmouseover="this.style.background='var(--primary-color)'; this.style.color='white';" onmouseout="this.style.background='var(--bg-light)'; this.style.color='var(--text-dark)';">
<a href="../api/docs">
<i class="fas fa-code"></i> API Docs
</a>
</div>
@@ -450,5 +210,6 @@
<script>
// Add any interactive functionality here
</script>
<script src="js/theme.js"></script>
</body>
</html>

View File

@@ -5,272 +5,26 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Coordinator API - AITBC Documentation</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
:root {
--primary-color: #2563eb;
--secondary-color: #1e40af;
--accent-color: #3b82f6;
--success-color: #10b981;
--warning-color: #f59e0b;
--danger-color: #ef4444;
--text-dark: #1f2937;
--text-light: #6b7280;
--bg-light: #f9fafb;
--bg-white: #ffffff;
--border-color: #e5e7eb;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
line-height: 1.6;
color: var(--text-dark);
background: var(--bg-light);
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
/* Header */
header {
background: var(--bg-white);
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
position: fixed;
width: 100%;
top: 0;
z-index: 1000;
}
nav {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem 0;
}
.logo {
font-size: 1.5rem;
font-weight: bold;
color: var(--primary-color);
text-decoration: none;
}
.nav-links {
display: flex;
gap: 2rem;
list-style: none;
}
.nav-links a {
color: var(--text-dark);
text-decoration: none;
transition: color 0.3s;
}
.nav-links a:hover,
.nav-links a.active {
color: var(--primary-color);
}
/* Main Content */
main {
margin-top: 80px;
padding: 40px 0;
}
.doc-header {
background: var(--bg-white);
padding: 3rem 0;
margin-bottom: 2rem;
border-radius: 10px;
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.doc-header h1 {
font-size: 2.5rem;
color: var(--text-dark);
margin-bottom: 1rem;
}
.doc-header p {
color: var(--text-light);
font-size: 1.1rem;
}
.breadcrumb {
margin-bottom: 2rem;
}
.breadcrumb a {
color: var(--primary-color);
text-decoration: none;
}
.breadcrumb span {
color: var(--text-light);
margin: 0 0.5rem;
}
/* Content Sections */
.content-section {
background: var(--bg-white);
padding: 2.5rem;
margin-bottom: 2rem;
border-radius: 10px;
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.content-section h2 {
font-size: 1.8rem;
margin-bottom: 1.5rem;
color: var(--text-dark);
display: flex;
align-items: center;
gap: 0.5rem;
}
.content-section h3 {
font-size: 1.4rem;
margin: 2rem 0 1rem;
color: var(--text-dark);
}
.content-section p {
margin-bottom: 1rem;
color: var(--text-light);
}
.content-section ul {
margin-left: 2rem;
margin-bottom: 1rem;
}
.content-section li {
margin-bottom: 0.5rem;
color: var(--text-light);
}
.content-section code {
background: var(--bg-light);
padding: 0.2rem 0.4rem;
border-radius: 4px;
font-family: 'Courier New', monospace;
color: var(--primary-color);
}
.content-section pre {
background: var(--bg-light);
padding: 1rem;
border-radius: 8px;
overflow-x: auto;
margin: 1rem 0;
}
.content-section pre code {
background: none;
padding: 0;
color: var(--text-dark);
}
/* Feature Grid */
.feature-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 1.5rem;
margin: 2rem 0;
}
.feature-card {
padding: 1.5rem;
border: 1px solid var(--border-color);
border-radius: 8px;
background: var(--bg-light);
}
.feature-card h4 {
color: var(--primary-color);
margin-bottom: 0.5rem;
}
/* API Endpoints */
.api-endpoint {
background: var(--bg-light);
padding: 1rem;
border-radius: 8px;
margin: 1rem 0;
border-left: 4px solid var(--primary-color);
}
.api-endpoint code {
display: block;
font-weight: bold;
margin-bottom: 0.5rem;
}
/* Status Badge */
.status-badge {
display: inline-block;
padding: 0.25rem 0.75rem;
border-radius: 20px;
font-size: 0.875rem;
font-weight: 600;
}
.status-badge.live {
background: #10b98120;
color: var(--success-color);
}
/* Back Button */
.back-button {
display: inline-flex;
align-items: center;
gap: 0.5rem;
color: var(--primary-color);
text-decoration: none;
margin-bottom: 2rem;
font-weight: 600;
}
.back-button:hover {
color: var(--secondary-color);
}
/* Responsive */
@media (max-width: 768px) {
.nav-links {
display: none;
}
.doc-header h1 {
font-size: 2rem;
}
.content-section {
padding: 1.5rem;
}
}
</style>
<link rel="stylesheet" href="css/docs.css">
</head>
<body>
<!-- Header -->
<header>
<nav class="container">
<a href="../index.html" class="logo">AITBC</a>
<ul class="nav-links">
<li><a href="../index.html">Home</a></li>
<li><a href="index.html" class="active">Documentation</a></li>
<li><a href="mailto:aitbc@bubuit.net">Contact</a></li>
</ul>
</nav>
<header class="site-header">
<div class="container">
<div class="header-inner">
<a href="/" class="brand">
<i class="fas fa-cube"></i>
<span>AITBC</span>
</a>
<nav class="header-nav">
<a href="/">Home</a>
<a href="/explorer/">Explorer</a>
<a href="/Exchange/">Exchange</a>
<a href="/docs/index.html" class="active">Docs</a>
<button id="theme-toggle" class="theme-toggle" title="Toggle theme"><i class="fas fa-sun"></i></button>
</nav>
</div>
</div>
</header>
<!-- Main Content -->
@@ -280,7 +34,7 @@
<div class="breadcrumb">
<a href="index.html">Documentation</a>
<span></span>
<a href="#">Components</a>
<a href="components.html">Components</a>
<span></span>
<span>Coordinator API</span>
</div>
@@ -502,5 +256,6 @@ sudo journalctl -u aitbc-coordinator -f</code></pre>
<script>
// Add any interactive functionality here
</script>
<script src="js/theme.js"></script>
</body>
</html>

View File

@@ -150,6 +150,72 @@ nav {
color: var(--primary-color);
}
/* Site Header (unified) */
.site-header {
background: var(--bg-white);
position: fixed;
width: 100%;
top: 0;
z-index: 1000;
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
.site-header .header-inner {
display: flex;
align-items: center;
justify-content: space-between;
padding: 1rem 0;
}
.site-header .brand {
display: flex;
align-items: center;
gap: 0.75rem;
text-decoration: none;
}
.site-header .brand i {
font-size: 2rem;
color: var(--primary-color);
}
.site-header .brand span {
font-size: 1.5rem;
font-weight: bold;
color: var(--text-dark);
}
.site-header .header-nav {
display: flex;
align-items: center;
gap: 1.5rem;
list-style: none;
}
.site-header .header-nav a {
color: var(--text-dark);
padding: 0.5rem 0.75rem;
border-radius: 0.5rem;
font-weight: 500;
text-decoration: none;
transition: color 0.3s;
}
.site-header .header-nav a:hover,
.site-header .header-nav a.active {
color: var(--primary-color);
}
@media (max-width: 768px) {
.site-header .header-nav {
gap: 0.5rem;
}
.site-header .header-nav a {
padding: 0.4rem 0.5rem;
font-size: 0.85rem;
}
}
/* Theme Toggle Button */
.theme-toggle {
background: none;
@@ -1235,4 +1301,570 @@ footer p {
flex-direction: column;
align-items: center;
}
.doc-grid {
grid-template-columns: 1fr;
}
.sidebar {
position: static;
max-height: none;
}
.components-grid {
grid-template-columns: 1fr;
}
.api-grid {
grid-template-columns: 1fr;
}
}
/* ============================================
Component Pages: Layout
============================================ */
.breadcrumb {
margin-bottom: 2rem;
}
.breadcrumb a {
color: var(--primary-color);
text-decoration: none;
}
.breadcrumb span {
color: var(--text-light);
margin: 0 0.5rem;
}
.back-button {
display: inline-flex;
align-items: center;
gap: 0.5rem;
color: var(--primary-color);
text-decoration: none;
margin-bottom: 2rem;
font-weight: 600;
}
.back-button:hover {
color: var(--secondary-color);
}
.doc-grid {
display: grid;
grid-template-columns: 280px 1fr;
gap: 2rem;
align-items: start;
}
.sidebar {
background: var(--bg-white);
border-radius: 10px;
padding: 1.5rem;
position: sticky;
top: 100px;
max-height: calc(100vh - 120px);
overflow-y: auto;
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.sidebar h3 {
font-size: 1.1rem;
margin-bottom: 1rem;
color: var(--text-dark);
}
.sidebar ul {
list-style: none;
padding: 0;
}
.sidebar li {
margin-bottom: 0.25rem;
}
.sidebar a {
display: block;
padding: 0.4rem 0.75rem;
color: var(--text-light);
text-decoration: none;
border-radius: 6px;
font-size: 0.9rem;
transition: all 0.2s;
}
.sidebar a:hover,
.sidebar a.active {
background: rgba(59, 130, 246, 0.1);
color: var(--primary-color);
}
.sidebar .sub-item {
padding-left: 1.5rem;
font-size: 0.85rem;
}
.sidebar ul ul {
margin-top: 0.25rem;
}
/* ============================================
Component Pages: Cards
============================================ */
.components-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
gap: 2rem;
margin-bottom: 3rem;
}
.component-card {
background: var(--bg-white);
border-radius: 12px;
padding: 2rem;
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
transition: all 0.3s ease;
border: 1px solid var(--border-color);
}
.component-card:hover {
transform: translateY(-5px);
box-shadow: 0 8px 25px rgba(0,0,0,0.1);
border-color: var(--primary-color);
}
.component-icon {
width: 60px;
height: 60px;
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.5rem;
color: #fff;
background: linear-gradient(135deg, var(--primary-color), var(--accent-color));
margin-bottom: 1.5rem;
}
.component-card h3 {
font-size: 1.4rem;
margin-bottom: 0.75rem;
color: var(--text-dark);
}
.component-card p {
color: var(--text-light);
margin-bottom: 1rem;
line-height: 1.7;
}
.component-status {
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.25rem 0.75rem;
border-radius: 20px;
font-size: 0.85rem;
font-weight: 600;
margin-bottom: 1rem;
}
.component-status.live {
background: rgba(16, 185, 129, 0.15);
color: var(--success-color);
}
.component-status.live i {
font-size: 0.5rem;
}
.component-link {
display: inline-flex;
align-items: center;
gap: 0.5rem;
color: var(--primary-color);
text-decoration: none;
font-weight: 600;
transition: all 0.3s;
}
.component-link:hover {
color: var(--secondary-color);
transform: translateX(5px);
}
/* ============================================
Component Pages: Section blocks
============================================ */
.section {
background: var(--bg-white);
padding: 2.5rem;
margin-bottom: 2rem;
border-radius: 10px;
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.section h2 {
font-size: 1.8rem;
margin-bottom: 1.5rem;
color: var(--text-dark);
}
.inline-code {
background: var(--bg-light);
padding: 0.2rem 0.5rem;
border-radius: 4px;
font-family: 'Fira Code', 'JetBrains Mono', monospace;
font-size: 0.9em;
color: var(--accent-color);
}
/* ============================================
API Pages
============================================ */
.api-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 1.5rem;
margin: 1.5rem 0;
}
.api-card {
background: var(--bg-light);
border-radius: 10px;
padding: 1.5rem;
border-left: 4px solid var(--primary-color);
}
.api-card h4 {
color: var(--primary-color);
margin-bottom: 0.5rem;
}
.api-endpoint,
.endpoint {
background: var(--bg-light);
border-radius: 8px;
padding: 1.25rem;
margin: 1rem 0;
border: 1px solid var(--border-color);
}
.method {
display: inline-block;
padding: 0.2rem 0.6rem;
border-radius: 4px;
font-weight: 700;
font-size: 0.8rem;
color: #fff;
margin-right: 0.5rem;
}
.method.get, .get { background: var(--success-color); }
.method.post, .post { background: var(--primary-color); }
.method.delete, .delete { background: var(--danger-color); }
.http-request {
font-family: 'Fira Code', monospace;
font-size: 0.9rem;
}
.error-box {
background: rgba(239, 68, 68, 0.1);
border: 1px solid var(--danger-color);
border-radius: 8px;
padding: 1rem;
margin: 1rem 0;
}
.status-badge {
display: inline-block;
padding: 0.2rem 0.6rem;
border-radius: 12px;
font-size: 0.8rem;
font-weight: 600;
}
/* ============================================
Tabs
============================================ */
.tabs {
margin: 1.5rem 0;
}
.tab-buttons {
display: flex;
gap: 0.5rem;
margin-bottom: 1rem;
border-bottom: 2px solid var(--border-color);
padding-bottom: 0;
}
.tab-button {
padding: 0.75rem 1.5rem;
background: none;
border: none;
color: var(--text-light);
cursor: pointer;
font-weight: 600;
border-bottom: 2px solid transparent;
margin-bottom: -2px;
transition: all 0.3s;
}
.tab-button:hover,
.tab-button.active {
color: var(--primary-color);
border-bottom-color: var(--primary-color);
}
.tab-content {
display: none;
padding: 1rem 0;
}
.tab-content.active {
display: block;
}
/* ============================================
Code Groups
============================================ */
.code-group {
margin: 1rem 0;
border: 1px solid var(--border-color);
border-radius: 5px;
overflow: hidden;
}
.code-group-header {
background: var(--bg-light);
padding: 0.5rem 1rem;
font-weight: 600;
color: var(--text-dark);
}
.code-group-content {
padding: 0;
}
/* ============================================
Mermaid Diagrams
============================================ */
.mermaid {
text-align: center;
margin: 2rem 0;
}
/* ============================================
Flow Diagram
============================================ */
.flow-diagram {
background: var(--bg-white);
border-radius: 10px;
padding: 2rem;
margin: 2rem 0;
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
overflow-x: auto;
}
/* ============================================
Misc: Timeline, Security, CTA, Browser
============================================ */
.timeline {
position: relative;
padding-left: 2rem;
margin: 1.5rem 0;
}
.timeline::before {
content: '';
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 2px;
background: var(--primary-color);
}
.security-icon {
font-size: 2rem;
color: var(--primary-color);
margin-bottom: 1rem;
}
.cta-button {
display: inline-block;
padding: 1rem 2rem;
background: linear-gradient(135deg, var(--primary-color), var(--accent-color));
color: #fff;
border-radius: 50px;
font-weight: 600;
text-decoration: none;
transition: all 0.3s;
}
.cta-button:hover {
transform: translateY(-2px);
box-shadow: 0 5px 20px rgba(59, 130, 246, 0.4);
color: #fff;
}
.hero-gradient {
background: linear-gradient(135deg, rgba(59, 130, 246, 0.1) 0%, rgba(16, 185, 129, 0.1) 100%);
border-radius: 15px;
padding: 2rem;
margin: 2rem 0;
}
.browser-button, .chrome-button, .firefox-button {
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.75rem 1.5rem;
border-radius: 8px;
font-weight: 600;
text-decoration: none;
transition: all 0.3s;
}
.chrome-button {
background: #4285f4;
color: #fff;
}
.firefox-button {
background: #ff7139;
color: #fff;
}
/* ============================================
Announcement Banners
============================================ */
.announce-banner {
margin-top: 2rem;
padding: 1.5rem;
background: linear-gradient(135deg, rgba(59, 130, 246, 0.1) 0%, rgba(16, 185, 129, 0.1) 100%);
border-radius: 15px;
border: 2px solid rgba(59, 130, 246, 0.2);
}
.announce-banner.green {
border-color: rgba(16, 185, 129, 0.2);
}
.announce-banner h3 {
color: var(--success-color);
margin-bottom: 0.5rem;
font-size: 1.2rem;
}
.announce-banner p {
color: var(--text-light);
margin: 0;
}
/* ============================================
Markdown Source Links
============================================ */
.source-links {
margin-top: 1rem;
display: flex;
gap: 1rem;
flex-wrap: wrap;
}
.source-links a {
color: var(--primary-color);
font-size: 0.9rem;
text-decoration: none;
}
.source-links a:hover {
text-decoration: underline;
}
/* ============================================
Search Results
============================================ */
.search-results {
max-width: 600px;
margin: -3rem auto 2rem;
background: var(--bg-white);
border-radius: 10px;
box-shadow: 0 4px 20px rgba(0,0,0,0.1);
overflow: hidden;
}
.search-results a {
display: block;
padding: 0.75rem 1rem;
border-bottom: 1px solid var(--border-color);
color: var(--text-dark);
text-decoration: none;
}
.search-results a:hover {
background: rgba(59, 130, 246, 0.05);
}
.search-results small {
color: var(--text-light);
}
.search-results .no-results {
padding: 1rem;
color: var(--text-light);
}
/* ============================================
Inline Code Blocks (pre/code in content)
============================================ */
.code-inline {
background: #1f2937;
color: #f9fafb;
padding: 1rem;
border-radius: 8px;
overflow-x: auto;
font-family: 'Fira Code', 'JetBrains Mono', monospace;
font-size: 0.9rem;
}
/* ============================================
Quick-link Grid (components page)
============================================ */
.quicklink-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 1rem;
margin-top: 1.5rem;
}
.quicklink-grid a {
padding: 1rem;
background: var(--bg-light);
border-radius: 8px;
text-decoration: none;
color: var(--text-dark);
transition: all 0.3s;
}
.quicklink-grid a:hover {
background: var(--primary-color);
color: #fff;
}

View File

@@ -1,633 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Developer Documentation - AITBC</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<style>
:root {
--primary-color: #2563eb;
--secondary-color: #1e40af;
--success-color: #10b981;
--warning-color: #f59e0b;
--danger-color: #ef4444;
--text-dark: #1f2937;
--text-light: #6b7280;
--bg-light: #f9fafb;
--bg-white: #ffffff;
--border-color: #e5e7eb;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
line-height: 1.6;
color: var(--text-dark);
background: var(--bg-white);
margin: 0;
padding: 0;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
header {
background: var(--text-dark);
color: white;
padding: 1rem 0;
position: sticky;
top: 0;
z-index: 100;
}
nav {
display: flex;
justify-content: space-between;
align-items: center;
}
.logo {
font-size: 1.5rem;
font-weight: bold;
color: white;
text-decoration: none;
}
.nav-links {
display: flex;
gap: 2rem;
list-style: none;
margin: 0;
padding: 0;
}
.nav-links a {
color: white;
text-decoration: none;
transition: color 0.3s;
}
.nav-links a:hover {
color: var(--primary-color);
}
.breadcrumb {
padding: 1rem 0;
color: var(--text-light);
font-size: 0.9rem;
}
.breadcrumb a {
color: var(--text-light);
text-decoration: none;
}
.breadcrumb a:hover {
color: var(--primary-color);
}
.doc-header {
padding: 3rem 0;
background: var(--bg-light);
margin-bottom: 2rem;
}
.doc-header h1 {
font-size: 2.5rem;
margin-bottom: 1rem;
color: var(--text-dark);
}
.doc-header p {
font-size: 1.2rem;
color: var(--text-light);
max-width: 800px;
}
.content-section {
margin-bottom: 3rem;
}
.content-section h2 {
font-size: 1.8rem;
margin-bottom: 1.5rem;
color: var(--text-dark);
border-bottom: 2px solid var(--border-color);
padding-bottom: 0.5rem;
}
.content-section h3 {
font-size: 1.4rem;
margin: 2rem 0 1rem;
color: var(--text-dark);
}
.content-section h4 {
font-size: 1.2rem;
margin: 1.5rem 0 0.5rem;
color: var(--text-dark);
}
.content-section p {
margin-bottom: 1rem;
color: var(--text-dark);
}
.content-section ul {
margin-bottom: 1rem;
padding-left: 2rem;
}
.content-section li {
margin-bottom: 0.5rem;
}
.tech-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
gap: 1rem;
margin: 2rem 0;
}
.tech-item {
background: var(--bg-light);
padding: 1rem;
border-radius: 8px;
text-align: center;
font-weight: 600;
}
.tech-icon {
font-size: 2rem;
color: var(--primary-color);
margin-bottom: 0.5rem;
}
.feature-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 1.5rem;
margin: 2rem 0;
}
.feature-card {
background: var(--bg-white);
padding: 1.5rem;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.feature-card h4 {
margin-top: 0;
color: var(--primary-color);
}
pre {
background: #1f2937;
color: #f9fafb;
padding: 1.5rem;
border-radius: 8px;
overflow-x: auto;
margin: 1rem 0;
}
code {
font-family: 'Courier New', Courier, monospace;
font-size: 0.9rem;
}
pre code {
background: none;
padding: 0;
}
.inline-code {
background: var(--bg-light);
padding: 0.2rem 0.4rem;
border-radius: 4px;
font-size: 0.9rem;
}
.back-button {
display: inline-flex;
align-items: center;
gap: 0.5rem;
color: var(--primary-color);
text-decoration: none;
margin-bottom: 2rem;
font-weight: 600;
}
.back-button:hover {
color: var(--secondary-color);
}
.alert {
padding: 1rem;
border-radius: 8px;
margin: 1rem 0;
}
.alert-info {
background: #dbeafe;
border-left: 4px solid var(--primary-color);
color: #1e40af;
}
.alert-success {
background: #d1fae5;
border-left: 4px solid var(--success-color);
color: #065f46;
}
.bounty-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 1.5rem;
margin: 2rem 0;
}
.bounty-card {
background: var(--bg-white);
padding: 1.5rem;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
border-top: 4px solid var(--warning-color);
}
.bounty-amount {
font-size: 1.5rem;
font-weight: bold;
color: var(--warning-color);
}
footer {
background: var(--text-dark);
color: white;
padding: 2rem 0;
text-align: center;
margin-top: 4rem;
}
@media (max-width: 768px) {
.nav-links {
display: none;
}
.doc-header h1 {
font-size: 2rem;
}
}
</style>
</head>
<body>
<header>
<nav class="container">
<a href="../index.html" class="logo">AITBC</a>
<ul class="nav-links">
<li><a href="../index.html">Home</a></li>
<li><a href="index.html">Documentation</a></li>
<li><a href="mailto:aitbc@bubuit.net">Contact</a></li>
</ul>
</nav>
</header>
<main>
<div class="container">
<!-- Breadcrumb -->
<div class="breadcrumb">
<a href="index.html">Documentation</a>
<span></span>
<span>Developer Documentation</span>
</div>
<!-- Back Button -->
<a href="index.html" class="back-button">
<i class="fas fa-arrow-left"></i>
Back to Documentation
</a>
<!-- Header -->
<div class="doc-header">
<h1><i class="fa fa-code"></i> Developer Documentation</h1>
<p>Build on AITBC and contribute to the protocol. Designed for developers wanting to extend the platform or integrate with it.</p>
</div>
<!-- Technology Stack -->
<section class="content-section">
<h2>Technology Stack</h2>
<p>AITBC is built with modern technologies to ensure performance, security, and developer productivity.</p>
<div class="tech-grid">
<div class="tech-item">
<div class="tech-icon">
<i class="fab fa-python"></i>
</div>
<div>Python</div>
</div>
<div class="tech-item">
<div class="tech-icon">
<i class="fab fa-rust"></i>
</div>
<div>Rust</div>
</div>
<div class="tech-item">
<div class="tech-icon">
<i class="fab fa-js"></i>
</div>
<div>TypeScript</div>
</div>
<div class="tech-item">
<div class="tech-icon">
<i class="fas fa-database"></i>
</div>
<div>PostgreSQL</div>
</div>
<div class="tech-item">
<div class="tech-icon">
<i class="fas fa-cube"></i>
</div>
<div>Docker</div>
</div>
<div class="tech-item">
<div class="tech-icon">
<i class="fas fa-project-diagram"></i>
</div>
<div>Kubernetes</div>
</div>
</div>
</section>
<!-- Getting Started -->
<section class="content-section">
<h2>Getting Started</h2>
<p>Ready to contribute? Here's how to get started with AITBC development.</p>
<h3>Development Environment Setup</h3>
<div class="alert alert-info">
<strong>Prerequisites:</strong> Python 3.9+, Node.js 18+, Docker, Git
</div>
<pre><code># Fork & Clone
git clone https://github.com/YOUR_USERNAME/AITBC.git
cd aitbc
# Set up Python environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
# Set up frontend
cd website
npm install
npm run dev</code></pre>
<h3>Project Structure</h3>
<pre><code>aitbc/
├── blockchain/ # Blockchain node (Rust)
├── coordinator/ # Coordinator API (Python/FastAPI)
├── miner/ # Miner daemon (Python)
├── wallet/ # Wallet daemon (Python)
├── website/ # Frontend applications
│ ├── marketplace/ # Marketplace UI (React/TypeScript)
│ ├── explorer/ # Blockchain explorer
│ └── exchange/ # Trade exchange
├── docker-compose.yml # Development environment
└── docs/ # Documentation</code></pre>
</section>
<!-- Contributing -->
<section class="content-section">
<h2>Contributing</h2>
<p>We welcome contributions from the community! Here's how you can help:</p>
<h3>Contribution Areas</h3>
<div class="feature-grid">
<div class="feature-card">
<h4><i class="fas fa-bug"></i> Bug Fixes</h4>
<p>Find and fix bugs in any component</p>
</div>
<div class="feature-card">
<h4><i class="fas fa-plus"></i> New Features</h4>
<p>Implement new functionality</p>
</div>
<div class="feature-card">
<h4><i class="fas fa-book"></i> Documentation</h4>
<p>Improve documentation and examples</p>
</div>
<div class="feature-card">
<h4><i class="fas fa-vial"></i> Testing</h4>
<p>Write tests and improve coverage</p>
</div>
</div>
<h3>Pull Request Process</h3>
<ol>
<li>Create an issue describing your proposed change</li>
<li>Fork the repository and create a feature branch</li>
<li>Make your changes with proper tests</li>
<li>Ensure all tests pass and code follows style guidelines</li>
<li>Submit a pull request with detailed description</li>
<li>Respond to code review feedback</li>
</ol>
</section>
<!-- Bounty Program -->
<section class="content-section">
<h2>Bounty Program</h2>
<p>Earn AITBC tokens by contributing to the platform through our bounty program.</p>
<div class="bounty-grid">
<div class="bounty-card">
<h4>Critical Bug</h4>
<div class="bounty-amount">1000-5000 AITBC</div>
<p>Security vulnerabilities or critical issues</p>
</div>
<div class="bounty-card">
<h4>Feature Implementation</h4>
<div class="bounty-amount">500-2000 AITBC</div>
<p>New features as outlined in issues</p>
</div>
<div class="bounty-card">
<h4>Documentation</h4>
<div class="bounty-amount">100-500 AITBC</div>
<p>Comprehensive guides and tutorials</p>
</div>
<div class="bounty-card">
<h4>Performance</h4>
<div class="bounty-amount">300-1500 AITBC</div>
<p>Optimizations and improvements</p>
</div>
</div>
<h3>How to Participate</h3>
<ul>
<li>Check the <a href="full-documentation-md.html">Issues page</a> for bounty-labeled items</li>
<li>Claim an issue by commenting on it</li>
<li>Complete the work and submit a PR</li>
<li>Receive bounty upon merge</li>
</ul>
</section>
<!-- APIs -->
<section class="content-section">
<h2>APIs & SDKs</h2>
<p>Integrate AITBC into your applications using our APIs and SDKs.</p>
<h3>REST APIs</h3>
<ul>
<li><strong>Coordinator API</strong>: Job submission and management</li>
<li><strong>Blockchain RPC</strong>: Blockchain interaction</li>
<li><strong>Wallet API</strong>: Wallet operations</li>
<li><strong>Pool Hub API</strong>: Miner coordination</li>
</ul>
<h3>SDKs</h3>
<ul>
<li><strong>Python SDK</strong>: <code>pip install aitbc-client</code></li>
<li><strong>JavaScript SDK</strong>: <code>npm install @aitbc/client</code></li>
<li><strong>Rust Crate</strong>: <code>cargo add aitbc-rust</code></li>
<li><strong>Go Client</strong>: <code>go get github.com/aitbc/go-client</code></li>
</ul>
<h3>Example: Submitting a Job</h3>
<pre><code>from aitbc import AITBCClient
client = AITBCClient(api_key="your-key")
# Submit inference job
job = client.submit_job(
type="inference",
model="llama3.2",
prompt="Explain AI in simple terms",
max_tokens=500
)
# Wait for result
result = client.wait_for_job(job.id)
print(result.output)</code></pre>
</section>
<!-- Example: Adding an API Endpoint -->
<section class="content-section">
<h2>Example: Adding an API Endpoint</h2>
<p>Here's how to add a new endpoint to the Coordinator API:</p>
<h3>1. Define the Endpoint</h3>
<pre><code># coordinator/api/endpoints/jobs.py
from fastapi import APIRouter, Depends
from ..dependencies import get_current_user
from ..schemas import JobResponse
router = APIRouter(prefix="/jobs", tags=["jobs"])
@router.get("/stats", response_model=JobStats)
async def get_job_stats(
current_user: User = Depends(get_current_user)
):
"""Get job statistics for current user"""
stats = await job_service.get_user_stats(current_user.id)
return stats</code></pre>
<h3>2. Add Tests</h3>
<pre><code># tests/api/test_jobs.py
async def test_get_job_stats(client, auth_headers):
response = await client.get(
"/api/jobs/stats",
headers=auth_headers
)
assert response.status_code == 200
assert "total_jobs" in response.json()</code></pre>
<h3>3. Update Documentation</h3>
<pre><code># docs/api/jobs.md
## Job Statistics
Get statistics about your submitted jobs.
### Request
```
GET /api/jobs/stats
Authorization: Bearer YOUR_TOKEN
```
### Response
```json
{
"total_jobs": 42,
"completed_jobs": 38,
"failed_jobs": 2,
"pending_jobs": 2
}
```</code></pre>
</section>
<!-- Development Tools -->
<section class="content-section">
<h2>Development Tools</h2>
<h3>Local Development</h3>
<pre><code># Start all services
docker-compose up -d
# View logs
docker-compose logs -f coordinator
# Run tests
pytest tests/
# Lint code
flake8 coordinator/
black coordinator/</code></pre>
<h3>Debugging</h3>
<ul>
<li>Use VS Code with Python and Rust extensions</li>
<li>Enable debug mode: <code>DEBUG=true python -m coordinator.main</code></li>
<li>Use the built-in admin dashboard at <code>/admin</code></li>
</ul>
</section>
<!-- Community -->
<section class="content-section">
<h2>Community & Support</h2>
<h3>Get in Touch</h3>
<ul>
<li><strong>Discord</strong>: <a href="#">#dev channel</a></li>
<li><strong>GitHub</strong>: <a href="full-documentation-md.html">Create issues</a></li>
<li><strong>Email</strong>: <a href="mailto:aitbc@bubuit.net">aitbc@bubuit.net</a></li>
</ul>
<h3>Developer Events</h3>
<ul>
<li>Weekly dev standups - Tuesdays 14:00 UTC</li>
<li>Monthly hackathons - First weekend of each month</li>
<li>Quarterly roadmap reviews</li>
</ul>
</section>
<!-- Resources -->
<section class="content-section">
<h2>Additional Resources</h2>
<ul>
<li><a href="blockchain-node-md.html">Blockchain Node Documentation</a></li>
<li><a href="coordinator-api-md.html">Coordinator API Reference</a></li>
<li><a href="full-documentation-md.html">Full Technical Documentation</a></li>
<li><a href="full-documentation-md.html">Developer Wiki</a></li>
<li><a href="full-documentation-md.html">Release Notes</a></li>
</ul>
</section>
</div>
</main>
<footer>
<div class="container">
<p>&copy; 2025 AITBC. All rights reserved.</p>
</div>
</footer>
</body>
</html>

View File

@@ -9,19 +9,19 @@
</head>
<body>
<!-- Header -->
<header class="text-white shadow-lg" style="background: var(--bg-white); position: fixed; width: 100%; top: 0; z-index: 1000; box-shadow: 0 1px 3px rgba(0,0,0,0.1);">
<div class="container" style="max-width: 1200px; margin: 0 auto; padding: 0 20px;">
<div style="display: flex; align-items: center; justify-content: space-between; padding: 1rem 0;">
<div style="display: flex; align-items: center; gap: 0.75rem;">
<i class="fas fa-cube" style="font-size: 2rem; color: var(--primary-color);"></i>
<h1 style="font-size: 1.5rem; font-weight: bold; margin: 0; color: var(--text-dark);">AITBC</h1>
</div>
<nav style="display: flex; align-items: center; gap: 1.5rem;">
<a href="/" style="background: transparent !important; color: var(--text-dark) !important; padding: 0.5rem 0.75rem; border-radius: 0.5rem; font-weight: 500; text-decoration: none; display: inline-flex; align-items: center;">Home</a>
<a href="/explorer/" style="background: transparent !important; color: var(--text-dark) !important; padding: 0.5rem 0.75rem; border-radius: 0.5rem; font-weight: 500; text-decoration: none; display: inline-flex; align-items: center;">Explorer</a>
<a href="/Exchange/" style="background: transparent !important; color: var(--text-dark) !important; padding: 0.5rem 0.75rem; border-radius: 0.5rem; font-weight: 500; text-decoration: none; display: inline-flex; align-items: center;">Exchange</a>
<a href="/docs/index.html" style="background: transparent !important; color: var(--text-dark) !important; padding: 0.5rem 0.75rem; border-radius: 0.5rem; font-weight: 500; text-decoration: none; display: inline-flex; align-items: center;">Documentation</a>
<button id="themeToggle" class="theme-toggle" style="background: rgba(59, 130, 246, 0.1) !important; color: var(--primary-color) !important; border: 2px solid var(--primary-color); padding: 0.5rem 1rem; border-radius: 0.5rem; cursor: pointer; font-size: 1rem;">🌞</button>
<header class="site-header">
<div class="container">
<div class="header-inner">
<a href="/" class="brand">
<i class="fas fa-cube"></i>
<span>AITBC</span>
</a>
<nav class="header-nav">
<a href="/">Home</a>
<a href="/explorer/">Explorer</a>
<a href="/Exchange/">Exchange</a>
<a href="/docs/index.html" class="active">Docs</a>
<button id="theme-toggle" class="theme-toggle" title="Toggle theme"><i class="fas fa-sun"></i></button>
</nav>
</div>
</div>
@@ -34,6 +34,10 @@
<span class="audience-badge">For Developers</span>
<h1>Build on AITBC</h1>
<p>Join our developer community and help build the future of decentralized AI</p>
<div class="source-links">
<a href="https://github.com/oib/AITBC/tree/main/docs/8_development" target="_blank"><i class="fas fa-file-alt"></i> Markdown Source: docs/8_development/</a>
<a href="https://github.com/oib/AITBC/tree/main/docs/5_reference" target="_blank"><i class="fas fa-book"></i> Technical Reference: docs/5_reference/</a>
</div>
</div>
<!-- Tech Stack -->
@@ -364,34 +368,34 @@ make benchmark</div>
<h3>Documentation</h3>
<ul>
<li><a href="full-documentation.html">Full API Documentation</a></li>
<li><a href="#">Architecture Guide</a></li>
<li><a href="#">Protocol Specification</a></li>
<li><a href="#">Security Best Practices</a></li>
<li><a href="components.html">Architecture Guide</a></li>
<li><a href="full-documentation.html#architecture">Protocol Specification</a></li>
<li><a href="full-documentation.html#security">Security Best Practices</a></li>
</ul>
<h3>Tools & SDKs</h3>
<ul>
<li><a href="#">Python SDK</a></li>
<li><a href="#">JavaScript SDK</a></li>
<li><a href="#">Go SDK</a></li>
<li><a href="#">Rust SDK</a></li>
<li><a href="#">CLI Tools</a></li>
<li><a href="https://github.com/oib/AITBC/tree/main/docs/8_development/5_developer-guide.md" target="_blank">Python SDK</a></li>
<li><a href="https://github.com/oib/AITBC/tree/main/docs/8_development/5_developer-guide.md" target="_blank">JavaScript SDK</a></li>
<li><a href="https://github.com/oib/AITBC/tree/main/docs/8_development" target="_blank">Go SDK</a></li>
<li><a href="https://github.com/oib/AITBC/tree/main/docs/8_development" target="_blank">Rust SDK</a></li>
<li><a href="https://github.com/oib/AITBC/tree/main/docs/5_reference/1_cli-reference.md" target="_blank">CLI Tools</a></li>
</ul>
<h3>Development Environment</h3>
<ul>
<li><a href="#">Docker Compose Setup</a></li>
<li><a href="#">Local Testnet</a></li>
<li><a href="#">Faucet for Test Tokens</a></li>
<li><a href="#">Block Explorer</a></li>
<li><a href="https://github.com/oib/AITBC/tree/main/docs/7_deployment" target="_blank">Docker Compose Setup</a></li>
<li><a href="https://github.com/oib/AITBC/tree/main/docs/4_blockchain/1_quick-start.md" target="_blank">Local Testnet</a></li>
<li><a href="https://github.com/oib/AITBC/tree/main/docs/4_blockchain" target="_blank">Faucet for Test Tokens</a></li>
<li><a href="explorer-web.html">Block Explorer</a></li>
</ul>
<h3>Learning Resources</h3>
<ul>
<li><a href="#">Video Tutorials</a></li>
<li><a href="#">Workshop Materials</a></li>
<li><a href="#">Blog Posts</a></li>
<li><a href="#">Research Papers</a></li>
<li><a href="https://github.com/oib/AITBC" target="_blank">Video Tutorials</a></li>
<li><a href="https://github.com/oib/AITBC" target="_blank">Workshop Materials</a></li>
<li><a href="https://github.com/oib/AITBC" target="_blank">Blog Posts</a></li>
<li><a href="https://github.com/oib/AITBC" target="_blank">Research Papers</a></li>
</ul>
</section>
@@ -510,28 +514,8 @@ def test_create_feature_invalid():
<!-- Footer -->
<footer>
<div class="container">
<p>&copy; 2025 AITBC. All rights reserved.</p>
<p>&copy; 2026 AITBC. All rights reserved.</p>
</div>
</footer>
<script>
// Check for saved theme preference or default to dark mode
const currentTheme = localStorage.getItem('theme') || 'dark';
if (currentTheme === 'light') {
document.body.classList.add('light');
const btn = document.getElementById('themeToggle');
if (btn) btn.textContent = '🌙';
}
// Theme toggle functionality
const themeBtn = document.getElementById('themeToggle');
if (themeBtn) {
themeBtn.addEventListener('click', function() {
document.body.classList.toggle('light');
const isLight = document.body.classList.contains('light');
localStorage.setItem('theme', isLight ? 'light' : 'dark');
this.textContent = isLight ? '🌙' : '🌞';
});
}
</script></body>
</footer> <script src="js/theme.js"></script>
</body>
</html>

View File

@@ -5,230 +5,26 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Explorer Web - AITBC Documentation</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<style>
:root {
--primary-color: #2563eb;
--secondary-color: #1e40af;
--success-color: #10b981;
--text-dark: #1f2937;
--text-light: #6b7280;
--bg-light: #f9fafb;
--bg-white: #ffffff;
--border-color: #e5e7eb;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
line-height: 1.6;
color: var(--text-dark);
background: var(--bg-white);
margin: 0;
padding: 0;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
header {
background: var(--text-dark);
color: white;
padding: 1rem 0;
position: sticky;
top: 0;
z-index: 100;
}
nav {
display: flex;
justify-content: space-between;
align-items: center;
}
.logo {
font-size: 1.5rem;
font-weight: bold;
color: white;
text-decoration: none;
}
.nav-links {
display: flex;
gap: 2rem;
list-style: none;
margin: 0;
padding: 0;
}
.nav-links a {
color: white;
text-decoration: none;
transition: color 0.3s;
}
.nav-links a:hover {
color: var(--primary-color);
}
.breadcrumb {
padding: 1rem 0;
color: var(--text-light);
font-size: 0.9rem;
}
.breadcrumb a {
color: var(--text-light);
text-decoration: none;
}
.breadcrumb a:hover {
color: var(--primary-color);
}
.doc-header {
padding: 3rem 0;
background: var(--bg-light);
margin-bottom: 2rem;
}
.doc-header h1 {
font-size: 2.5rem;
margin-bottom: 1rem;
color: var(--text-dark);
}
.doc-header p {
font-size: 1.2rem;
color: var(--text-light);
max-width: 800px;
}
.status-badge {
display: inline-block;
padding: 0.25rem 0.75rem;
background: #10b98120;
color: var(--success-color);
border-radius: 20px;
font-size: 0.875rem;
font-weight: 600;
margin-top: 1rem;
}
.content-section {
margin-bottom: 3rem;
}
.content-section h2 {
font-size: 1.8rem;
margin-bottom: 1.5rem;
color: var(--text-dark);
border-bottom: 2px solid var(--border-color);
padding-bottom: 0.5rem;
}
.content-section h3 {
font-size: 1.4rem;
margin: 2rem 0 1rem;
color: var(--text-dark);
}
.content-section p {
margin-bottom: 1rem;
color: var(--text-dark);
}
.content-section ul {
margin-bottom: 1rem;
padding-left: 2rem;
}
.content-section li {
margin-bottom: 0.5rem;
}
.feature-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 1.5rem;
margin: 2rem 0;
}
.feature-card {
background: var(--bg-white);
padding: 1.5rem;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.feature-card h4 {
margin-top: 0;
color: var(--primary-color);
}
pre {
background: #1f2937;
color: #f9fafb;
padding: 1.5rem;
border-radius: 8px;
overflow-x: auto;
margin: 1rem 0;
}
code {
font-family: 'Courier New', Courier, monospace;
font-size: 0.9rem;
}
pre code {
background: none;
padding: 0;
}
.back-button {
display: inline-flex;
align-items: center;
gap: 0.5rem;
color: var(--primary-color);
text-decoration: none;
margin-bottom: 2rem;
font-weight: 600;
}
.back-button:hover {
color: var(--secondary-color);
}
footer {
background: var(--text-dark);
color: white;
padding: 2rem 0;
text-align: center;
margin-top: 4rem;
}
@media (max-width: 768px) {
.nav-links {
display: none;
}
.doc-header h1 {
font-size: 2rem;
}
}
</style>
<link rel="stylesheet" href="css/docs.css">
</head>
<body>
<header>
<nav class="container">
<a href="../index.html" class="logo">AITBC</a>
<ul class="nav-links">
<li><a href="../index.html">Home</a></li>
<li><a href="index.html">Documentation</a></li>
<li><a href="mailto:aitbc@bubuit.net">Contact</a></li>
</ul>
</nav>
<!-- Header -->
<header class="site-header">
<div class="container">
<div class="header-inner">
<a href="/" class="brand">
<i class="fas fa-cube"></i>
<span>AITBC</span>
</a>
<nav class="header-nav">
<a href="/">Home</a>
<a href="/explorer/">Explorer</a>
<a href="/Exchange/">Exchange</a>
<a href="/docs/index.html" class="active">Docs</a>
<button id="theme-toggle" class="theme-toggle" title="Toggle theme"><i class="fas fa-sun"></i></button>
</nav>
</div>
</div>
</header>
<main>
@@ -237,7 +33,7 @@
<div class="breadcrumb">
<a href="index.html">Documentation</a>
<span></span>
<a href="#">Components</a>
<a href="components.html">Components</a>
<span></span>
<span>Explorer Web</span>
</div>
@@ -415,8 +211,9 @@ npm test</code></pre>
<footer>
<div class="container">
<p>&copy; 2025 AITBC. All rights reserved.</p>
<p>&copy; 2026 AITBC. All rights reserved.</p>
</div>
</footer>
<script src="js/theme.js"></script>
</body>
</html>

View File

@@ -5,278 +5,26 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>System Flow - AITBC Documentation</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<style>
:root {
--primary-color: #2563eb;
--secondary-color: #1e40af;
--success-color: #10b981;
--warning-color: #f59e0b;
--danger-color: #ef4444;
--text-dark: #1f2937;
--text-light: #6b7280;
--bg-light: #f9fafb;
--bg-white: #ffffff;
--border-color: #e5e7eb;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
line-height: 1.6;
color: var(--text-dark);
background: var(--bg-white);
margin: 0;
padding: 0;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
header {
background: var(--text-dark);
color: white;
padding: 1rem 0;
position: sticky;
top: 0;
z-index: 100;
}
nav {
display: flex;
justify-content: space-between;
align-items: center;
}
.logo {
font-size: 1.5rem;
font-weight: bold;
color: white;
text-decoration: none;
}
.nav-links {
display: flex;
gap: 2rem;
list-style: none;
margin: 0;
padding: 0;
}
.nav-links a {
color: white;
text-decoration: none;
transition: color 0.3s;
}
.nav-links a:hover {
color: var(--primary-color);
}
.breadcrumb {
padding: 1rem 0;
color: var(--text-light);
font-size: 0.9rem;
}
.breadcrumb a {
color: var(--text-light);
text-decoration: none;
}
.breadcrumb a:hover {
color: var(--primary-color);
}
.doc-header {
padding: 3rem 0;
background: var(--bg-light);
margin-bottom: 2rem;
}
.doc-header h1 {
font-size: 2.5rem;
margin-bottom: 1rem;
color: var(--text-dark);
}
.doc-header p {
font-size: 1.2rem;
color: var(--text-light);
max-width: 800px;
}
.content-section {
margin-bottom: 3rem;
}
.content-section h2 {
font-size: 1.8rem;
margin-bottom: 1.5rem;
color: var(--text-dark);
border-bottom: 2px solid var(--border-color);
padding-bottom: 0.5rem;
}
.content-section h3 {
font-size: 1.4rem;
margin: 2rem 0 1rem;
color: var(--text-dark);
}
.content-section h4 {
font-size: 1.2rem;
margin: 1.5rem 0 0.5rem;
color: var(--text-dark);
}
.content-section p {
margin-bottom: 1rem;
color: var(--text-dark);
}
.content-section ul {
margin-bottom: 1rem;
padding-left: 2rem;
}
.content-section li {
margin-bottom: 0.5rem;
}
pre {
background: #1f2937;
color: #f9fafb;
padding: 1.5rem;
border-radius: 8px;
overflow-x: auto;
margin: 1rem 0;
font-size: 0.9rem;
}
code {
font-family: 'Courier New', Courier, monospace;
}
pre code {
background: none;
padding: 0;
}
.inline-code {
background: var(--bg-light);
padding: 0.2rem 0.4rem;
border-radius: 4px;
font-size: 0.9rem;
}
.back-button {
display: inline-flex;
align-items: center;
gap: 0.5rem;
color: var(--primary-color);
text-decoration: none;
margin-bottom: 2rem;
font-weight: 600;
}
.back-button:hover {
color: var(--secondary-color);
}
.flow-diagram {
background: var(--bg-light);
padding: 2rem;
border-radius: 8px;
margin: 2rem 0;
overflow-x: auto;
font-family: monospace;
font-size: 0.9rem;
}
.http-request {
background: #e0f2fe;
border-left: 4px solid var(--primary-color);
padding: 1rem;
margin: 1rem 0;
border-radius: 4px;
}
.http-request h4 {
margin-top: 0;
color: var(--primary-color);
}
.timeline {
background: var(--bg-light);
padding: 1.5rem;
border-radius: 8px;
margin: 2rem 0;
font-family: monospace;
white-space: pre;
line-height: 1.4;
}
table {
width: 100%;
border-collapse: collapse;
margin: 2rem 0;
}
th, td {
padding: 0.75rem;
text-align: left;
border-bottom: 1px solid var(--border-color);
}
th {
background: var(--bg-light);
font-weight: 600;
}
.error-box {
background: #fef2f2;
border: 1px solid #fecaca;
border-radius: 8px;
padding: 1rem;
margin: 1rem 0;
}
.error-box h4 {
color: var(--danger-color);
margin-top: 0;
}
footer {
background: var(--text-dark);
color: white;
padding: 2rem 0;
text-align: center;
margin-top: 4rem;
}
@media (max-width: 768px) {
.nav-links {
display: none;
}
.doc-header h1 {
font-size: 2rem;
}
}
</style>
<link rel="stylesheet" href="css/docs.css">
</head>
<body>
<header>
<nav class="container">
<a href="../index.html" class="logo">AITBC</a>
<ul class="nav-links">
<li><a href="../index.html">Home</a></li>
<li><a href="index.html">Documentation</a></li>
<li><a href="mailto:aitbc@bubuit.net">Contact</a></li>
</ul>
</nav>
<!-- Header -->
<header class="site-header">
<div class="container">
<div class="header-inner">
<a href="/" class="brand">
<i class="fas fa-cube"></i>
<span>AITBC</span>
</a>
<nav class="header-nav">
<a href="/">Home</a>
<a href="/explorer/">Explorer</a>
<a href="/Exchange/">Exchange</a>
<a href="/docs/index.html" class="active">Docs</a>
<button id="theme-toggle" class="theme-toggle" title="Toggle theme"><i class="fas fa-sun"></i></button>
</nav>
</div>
</div>
</header>
<main>
@@ -724,8 +472,8 @@ Cost: 0.25 AITBC</code></pre>
<ul>
<li><a href="coordinator-api.html">Coordinator API Documentation</a> - Detailed API reference for the coordinator service</li>
<li><a href="blockchain-node.html">Blockchain Node Documentation</a> - Learn about the blockchain node and RPC API</li>
<li><a href="miner-documentation-md.html">Miner Documentation</a> - Guide to setting up and running a miner</li>
<li><a href="client-documentation-md.html">Client Documentation</a> - Using the CLI and Python client</li>
<li><a href="miners.html">Miner Documentation</a> - Guide to setting up and running a miner</li>
<li><a href="clients.html">Client Documentation</a> - Using the CLI and Python client</li>
<li><a href="components.html">System Components</a> - Overview of all AITBC components</li>
<li><a href="full-documentation.html">Full Documentation</a> - Complete technical documentation</li>
</ul>
@@ -746,8 +494,9 @@ Cost: 0.25 AITBC</code></pre>
<footer>
<div class="container">
<p>&copy; 2025 AITBC. All rights reserved.</p>
<p>&copy; 2026 AITBC. All rights reserved.</p>
</div>
</footer>
<script src="js/theme.js"></script>
</body>
</html>

View File

@@ -1,643 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Full Documentation - AITBC</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<style>
:root {
--primary-color: #2563eb;
--secondary-color: #1e40af;
--success-color: #10b981;
--warning-color: #f59e0b;
--danger-color: #ef4444;
--text-dark: #1f2937;
--text-light: #6b7280;
--bg-light: #f9fafb;
--bg-white: #ffffff;
--border-color: #e5e7eb;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
line-height: 1.6;
color: var(--text-dark);
background: var(--bg-white);
margin: 0;
padding: 0;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
header {
background: var(--text-dark);
color: white;
padding: 1rem 0;
position: sticky;
top: 0;
z-index: 100;
}
nav {
display: flex;
justify-content: space-between;
align-items: center;
}
.logo {
font-size: 1.5rem;
font-weight: bold;
color: white;
text-decoration: none;
}
.nav-links {
display: flex;
gap: 2rem;
list-style: none;
margin: 0;
padding: 0;
}
.nav-links a {
color: white;
text-decoration: none;
transition: color 0.3s;
}
.nav-links a:hover {
color: var(--primary-color);
}
.breadcrumb {
padding: 1rem 0;
color: var(--text-light);
font-size: 0.9rem;
}
.breadcrumb a {
color: var(--text-light);
text-decoration: none;
}
.breadcrumb a:hover {
color: var(--primary-color);
}
.doc-header {
padding: 3rem 0;
background: var(--bg-light);
margin-bottom: 2rem;
}
.doc-header h1 {
font-size: 2.5rem;
margin-bottom: 1rem;
color: var(--text-dark);
}
.doc-header p {
font-size: 1.2rem;
color: var(--text-light);
max-width: 800px;
}
.content-section {
margin-bottom: 3rem;
}
.content-section h2 {
font-size: 1.8rem;
margin-bottom: 1.5rem;
color: var(--text-dark);
border-bottom: 2px solid var(--border-color);
padding-bottom: 0.5rem;
}
.content-section h3 {
font-size: 1.4rem;
margin: 2rem 0 1rem;
color: var(--text-dark);
}
.content-section h4 {
font-size: 1.2rem;
margin: 1.5rem 0 0.5rem;
color: var(--text-dark);
}
.content-section p {
margin-bottom: 1rem;
color: var(--text-dark);
}
.content-section ul {
margin-bottom: 1rem;
padding-left: 2rem;
}
.content-section li {
margin-bottom: 0.5rem;
}
.toc {
background: var(--bg-light);
padding: 2rem;
border-radius: 8px;
margin-bottom: 3rem;
}
.toc h3 {
margin-top: 0;
color: var(--text-dark);
}
.toc ul {
list-style: none;
padding-left: 0;
}
.toc li {
margin-bottom: 0.5rem;
}
.toc a {
color: var(--primary-color);
text-decoration: none;
}
.toc a:hover {
text-decoration: underline;
}
.component-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 2rem;
margin: 2rem 0;
}
.component-card {
background: var(--bg-white);
padding: 2rem;
border-radius: 12px;
box-shadow: 0 4px 20px rgba(0,0,0,0.08);
}
.component-card h3 {
margin-top: 0;
color: var(--primary-color);
}
pre {
background: #1f2937;
color: #f9fafb;
padding: 1.5rem;
border-radius: 8px;
overflow-x: auto;
margin: 1rem 0;
}
code {
font-family: 'Courier New', Courier, monospace;
font-size: 0.9rem;
}
pre code {
background: none;
padding: 0;
}
.inline-code {
background: var(--bg-light);
padding: 0.2rem 0.4rem;
border-radius: 4px;
font-size: 0.9rem;
}
.back-button {
display: inline-flex;
align-items: center;
gap: 0.5rem;
color: var(--primary-color);
text-decoration: none;
margin-bottom: 2rem;
font-weight: 600;
}
.back-button:hover {
color: var(--secondary-color);
}
.alert {
padding: 1rem;
border-radius: 8px;
margin: 1rem 0;
}
.alert-info {
background: #dbeafe;
border-left: 4px solid var(--primary-color);
color: #1e40af;
}
.alert-warning {
background: #fef3c7;
border-left: 4px solid var(--warning-color);
color: #92400e;
}
.alert-success {
background: #d1fae5;
border-left: 4px solid var(--success-color);
color: #065f46;
}
footer {
background: var(--text-dark);
color: white;
padding: 2rem 0;
text-align: center;
margin-top: 4rem;
}
@media (max-width: 768px) {
.nav-links {
display: none;
}
.doc-header h1 {
font-size: 2rem;
}
}
</style>
</head>
<body>
<header>
<nav class="container">
<a href="../index.html" class="logo">AITBC</a>
<ul class="nav-links">
<li><a href="../index.html">Home</a></li>
<li><a href="index.html">Documentation</a></li>
<li><a href="mailto:aitbc@bubuit.net">Contact</a></li>
</ul>
</nav>
</header>
<main>
<div class="container">
<!-- Breadcrumb -->
<div class="breadcrumb">
<a href="index.html">Documentation</a>
<span></span>
<span>Full Documentation</span>
</div>
<!-- Back Button -->
<a href="index.html" class="back-button">
<i class="fas fa-arrow-left"></i>
Back to Documentation
</a>
<!-- Header -->
<div class="doc-header">
<h1><i class="fas fa-file-alt"></i> AITBC Full Documentation</h1>
<p>Complete technical documentation for the AI Training & Blockchain Computing platform</p>
</div>
<!-- Table of Contents -->
<div class="toc">
<h3>Table of Contents</h3>
<ul>
<li><a href="#introduction">1. Introduction</a></li>
<li><a href="#architecture">2. Architecture</a></li>
<li><a href="#installation">3. Installation</a></li>
<li><a href="#apis">4. APIs</a></li>
<li><a href="#components">5. Components</a></li>
<li><a href="#guides">6. Guides</a></li>
<li><a href="#advanced">7. Advanced Topics</a></li>
<li><a href="#troubleshooting">8. Troubleshooting</a></li>
<li><a href="#security">9. Security</a></li>
</ul>
</div>
<!-- Introduction -->
<section class="content-section" id="introduction">
<h2>1. Introduction</h2>
<p>AITBC (AI Training & Blockchain Computing) is a decentralized platform that combines blockchain technology with AI/ML computing resources. It enables privacy-preserving AI computations with verifiable results on the blockchain.</p>
<h3>Key Features</h3>
<ul>
<li>Privacy-preserving AI computations with zero-knowledge proofs</li>
<li>Decentralized GPU marketplace for AI/ML workloads</li>
<li>Blockchain-based verification and receipt system</li>
<li>Hybrid Proof-of-Authority/Proof-of-Stake consensus</li>
<li>Native token (AITBC) for payments and staking</li>
</ul>
<h3>Use Cases</h3>
<ul>
<li>Private AI inference without data exposure</li>
<li>Verifiable ML model training</li>
<li>Decentralized GPU resource sharing</li>
<li>Cryptographic proof of computation</li>
</ul>
</section>
<!-- Architecture -->
<section class="content-section" id="architecture">
<h2>2. Architecture</h2>
<p>AITBC consists of multiple components working together to provide a complete AI blockchain computing solution.</p>
<h3>System Architecture</h3>
<pre><code>┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ Clients │────▶│ Coordinator │────▶│ Blockchain │
│ │ │ API │ │ Node │
└─────────────┘ └──────────────┘ └─────────────┘
│ │ │
▼ ▼ ▼
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ Wallet │ │ Pool Hub │ │ Miners │
│ Daemon │ │ │ │ │
└─────────────┘ └──────────────┘ └─────────────┘</code></pre>
<h3>Core Components</h3>
<ul>
<li><strong>Blockchain Node</strong>: Distributed ledger with PoA/PoS consensus</li>
<li><strong>Coordinator API</strong>: Job orchestration and management</li>
<li><strong>Wallet Daemon</strong>: Secure wallet management</li>
<li><strong>Miner Daemon</strong>: GPU compute provider</li>
<li><strong>Pool Hub</strong>: Miner coordination and matching</li>
<li><strong>Marketplace Web</strong>: GPU compute marketplace UI</li>
<li><strong>Trade Exchange</strong>: Token trading platform</li>
</ul>
</section>
<!-- Installation -->
<section class="content-section" id="installation">
<h2>3. Installation</h2>
<h3>Prerequisites</h3>
<ul>
<li>Docker & Docker Compose</li>
<li>Python 3.9+ (for development)</li>
<li>Node.js 18+ (for frontend development)</li>
<li>Rust 1.70+ (for blockchain node)</li>
</ul>
<h3>Quick Start with Docker</h3>
<pre><code># Clone the repository
git clone https://github.com/oib/AITBC.git
cd aitbc
# Start all services
docker-compose up -d
# Check status
docker-compose ps</code></pre>
<h3>Development Setup</h3>
<pre><code># Backend services
cd coordinator
pip install -r requirements.txt
python -m coordinator.main
# Frontend
cd website/marketplace
npm install
npm run dev
# Blockchain node
cd blockchain
cargo run</code></pre>
</section>
<!-- APIs -->
<section class="content-section" id="apis">
<h2>4. APIs</h2>
<h3>Coordinator API</h3>
<p>RESTful API for job submission and management</p>
<pre><code># Submit a job
POST /api/v1/jobs
{
"type": "inference",
"model": "llama3.2",
"input": {
"prompt": "Hello, AITBC!"
}
}
# Get job status
GET /api/v1/jobs/{job_id}
# Get job result
GET /api/v1/jobs/{job_id}/result</code></pre>
<h3>Blockchain RPC</h3>
<p>JSON-RPC API for blockchain interaction</p>
<pre><code># Get latest block
curl -X POST http://localhost:9080 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"get_head","params":[],"id":1}'
# Submit transaction
curl -X POST http://localhost:9080 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"send_tx","params":[tx],"id":1}'</code></pre>
<h3>WebSocket API</h3>
<p>Real-time updates for blocks, transactions, and jobs</p>
<pre><code># Connect to WebSocket
ws://localhost:9081/ws
# Subscribe to events
{
"method": "subscribe",
"params": ["new_blocks", "job_updates"]
}</code></pre>
</section>
<!-- Components -->
<section class="content-section" id="components">
<h2>5. Components</h2>
<div class="component-grid">
<div class="component-card">
<h3>Blockchain Node</h3>
<p>PoA/PoS consensus blockchain with REST/WebSocket RPC, real-time gossip layer, and comprehensive observability.</p>
<a href="blockchain-node-md.html" style="color: var(--primary-color);">Learn more →</a>
</div>
<div class="component-card">
<h3>Coordinator API</h3>
<p>FastAPI service for job submission, miner registration, and receipt management with SQLite persistence.</p>
<a href="coordinator-api-md.html" style="color: var(--primary-color);">Learn more →</a>
</div>
<div class="component-card">
<h3>Marketplace Web</h3>
<p>Vite/TypeScript marketplace with offer/bid functionality, stats dashboard, and mock/live data toggle.</p>
<a href="marketplace-web-md.html" style="color: var(--primary-color);">Learn more →</a>
</div>
<div class="component-card">
<h3>Wallet Daemon</h3>
<p>Encrypted keystore with Argon2id + XChaCha20-Poly1305, REST/JSON-RPC APIs, and receipt verification.</p>
<a href="wallet-documentation-md.html" style="color: var(--primary-color);">Learn more →</a>
</div>
<div class="component-card">
<h3>Trade Exchange</h3>
<p>Bitcoin-to-AITBC exchange with QR payments, user management, and real-time trading capabilities.</p>
<a href="trade-exchange-md.html" style="color: var(--primary-color);">Learn more →</a>
</div>
<div class="component-card">
<h3>Pool Hub</h3>
<p>Miner registry with scoring engine, Redis/PostgreSQL backing, and comprehensive metrics.</p>
<a href="pool-hub.html" style="color: var(--primary-color);">Learn more →</a>
</div>
</div>
</section>
<!-- Guides -->
<section class="content-section" id="guides">
<h2>6. Guides</h2>
<h3>Client Guide</h3>
<p>Learn how to use AITBC as a client:</p>
<ul>
<li><a href="client-documentation-md.html">Client Documentation</a></li>
<li>Job submission workflow</li>
<li>Privacy features</li>
<li>Result verification</li>
</ul>
<h3>Miner Guide</h3>
<p>Learn how to become a miner:</p>
<ul>
<li><a href="miner-documentation-md.html">Miner Documentation</a></li>
<li>Hardware requirements</li>
<li>Setup and configuration</li>
<li>Earning rewards</li>
</ul>
<h3>Developer Guide</h3>
<p>Learn how to build on AITBC:</p>
<ul>
<li><a href="developer-documentation-md.html">Developer Documentation</a></li>
<li>API integration</li>
<li>SDK usage</li>
<li>Contributing</li>
</ul>
</section>
<!-- Advanced Topics -->
<section class="content-section" id="advanced">
<h2>7. Advanced Topics</h2>
<h3>Zero-Knowledge Proofs</h3>
<p>AITBC uses zk-SNARKs to provide privacy-preserving computations:</p>
<ul>
<li>Input privacy: Your data never leaves your device</li>
<li>Computation verification: Proofs are verified on-chain</li>
<li>Efficient verification: Sub-second proof verification</li>
</ul>
<h3>Consensus Mechanism</h3>
<p>Hybrid PoA/PoS consensus provides:</p>
<ul>
<li>Fast finality: Blocks confirmed in seconds</li>
<li>Energy efficiency: No proof-of-work mining</li>
<li>Security: Multi-layer validation</li>
</ul>
<h3>Tokenomics</h3>
<p>AITBC token utilities:</p>
<ul>
<li>Payment for AI computations</li>
<li>Staking for network security</li>
<li>Governance voting rights</li>
<li>Reward distribution</li>
</ul>
</section>
<!-- Troubleshooting -->
<section class="content-section" id="troubleshooting">
<h2>8. Troubleshooting</h2>
<h3>Common Issues</h3>
<div class="alert alert-warning">
<strong>Node not syncing?</strong> Check peer connections and network connectivity.
</div>
<ol>
<li><strong>Connection Issues</strong>
<ul>
<li>Verify all services are running: <code>docker-compose ps</code></li>
<li>Check logs: <code>docker-compose logs [service]</code></li>
<li>Ensure ports are not blocked by firewall</li>
</ul>
</li>
<li><strong>Job Submission Fails</strong>
<ul>
<li>Check API key is valid</li>
<li>Verify model is available</li>
<li>Check wallet balance</li>
</ul>
</li>
<li><strong>GPU Mining Issues</strong>
<ul>
<li>Install latest NVIDIA drivers</li>
<li>Verify CUDA installation</li>
<li>Check GPU memory availability</li>
</ul>
</li>
</ol>
</section>
<!-- Security -->
<section class="content-section" id="security">
<h2>9. Security</h2>
<h3>Security Features</h3>
<ul>
<li>End-to-end encryption for all data</li>
<li>Zero-knowledge proofs for privacy</li>
<li>Multi-signature wallet support</li>
<li>Hardware wallet integration</li>
<li>Audited smart contracts</li>
</ul>
<h3>Best Practices</h3>
<ul>
<li>Keep private keys secure</li>
<li>Use hardware wallets for large amounts</li>
<li>Enable two-factor authentication</li>
<li>Regular security updates</li>
</ul>
<h3>Reporting Issues</h3>
<div class="alert alert-info">
For security issues, please email: <a href="mailto:aitbc@bubuit.net">aitbc@bubuit.net</a>
</div>
</section>
</div>
</main>
<footer>
<div class="container">
<p>&copy; 2025 AITBC. All rights reserved.</p>
</div>
</footer>
</body>
</html>

View File

@@ -5,466 +5,26 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Full Documentation - AITBC</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
/* Dark mode (default) */
:root {
--primary-color: #3b82f6;
--secondary-color: #2563eb;
--accent-color: #60a5fa;
--success-color: #10b981;
--warning-color: #f59e0b;
--danger-color: #ef4444;
--text-dark: #f3f4f6;
--text-light: #9ca3af;
--bg-light: #111827;
--bg-white: #1f2937;
--border-color: #374151;
--code-bg: #0d1117;
--code-text: #e5e7eb;
}
/* Light mode */
body.light {
--primary-color: #2563eb;
--secondary-color: #1e40af;
--accent-color: #3b82f6;
--success-color: #10b981;
--warning-color: #f59e0b;
--danger-color: #ef4444;
--text-dark: #1f2937;
--text-light: #6b7280;
--bg-light: #f9fafb;
--bg-white: #ffffff;
--border-color: #e5e7eb;
--code-bg: #1f2937;
--code-text: #e5e7eb;
}
/* Theme toggle button */
.theme-toggle {
background: none;
border: 2px solid var(--border-color);
border-radius: 0.5rem;
padding: 0.5rem 0.75rem;
cursor: pointer;
font-size: 1.1rem;
color: var(--text-dark);
transition: all 0.3s ease;
}
.theme-toggle:hover {
background: var(--bg-white);
border-color: var(--primary-color);
transform: scale(1.05);
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
line-height: 1.6;
color: var(--text-dark);
background: var(--bg-light);
transition: background 0.3s ease, color 0.3s ease;
}
.container {
max-width: 1400px;
margin: 0 auto;
padding: 0 20px;
}
/* Header with gradient border */
header {
background: var(--bg-white);
box-shadow: 0 4px 20px rgba(0,0,0,0.15);
position: fixed;
width: 100%;
top: 0;
z-index: 1000;
border-bottom: 3px solid transparent;
background-image: linear-gradient(var(--bg-white), var(--bg-white)),
linear-gradient(90deg, var(--primary-color), var(--accent-color), var(--success-color));
background-origin: border-box;
background-clip: padding-box, border-box;
}
nav {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem 0;
}
.logo {
font-size: 1.5rem;
font-weight: bold;
background: linear-gradient(135deg, var(--primary-color), var(--accent-color));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
text-decoration: none;
transition: transform 0.3s ease;
}
.logo:hover {
transform: scale(1.05);
}
.nav-links {
display: flex;
gap: 2rem;
list-style: none;
align-items: center;
}
.nav-links a {
color: var(--text-dark);
text-decoration: none;
transition: all 0.3s ease;
padding: 0.5rem 0;
position: relative;
}
.nav-links a::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 0;
height: 2px;
background: linear-gradient(90deg, var(--primary-color), var(--accent-color));
transition: width 0.3s ease;
}
.nav-links a:hover::after,
.nav-links a.active::after {
width: 100%;
}
.nav-links a:hover {
color: var(--primary-color);
}
/* Main Content */
main {
margin-top: 80px;
padding: 40px 0;
}
.doc-header {
text-align: center;
margin-bottom: 3rem;
}
.doc-header h1 {
font-size: 3rem;
color: var(--text-dark);
margin-bottom: 1rem;
}
.doc-header p {
font-size: 1.2rem;
color: var(--text-light);
}
/* Documentation Grid */
.doc-grid {
display: grid;
grid-template-columns: 300px 1fr;
gap: 2rem;
}
/* Sidebar */
.sidebar {
background: var(--bg-light);
border-radius: 10px;
padding: 1.5rem;
height: fit-content;
position: sticky;
top: 100px;
max-height: calc(100vh - 120px);
overflow-y: auto;
}
.sidebar h3 {
font-size: 1.2rem;
margin-bottom: 1rem;
color: var(--text-dark);
}
.sidebar ul {
list-style: none;
}
.sidebar li {
margin-bottom: 0.3rem;
}
.sidebar a {
color: var(--text-light);
text-decoration: none;
display: block;
padding: 0.5rem;
border-radius: 5px;
transition: all 0.3s;
font-size: 0.9rem;
}
.sidebar a:hover,
.sidebar a.active {
background: var(--bg-white);
color: var(--primary-color);
}
.sidebar .sub-item {
padding-left: 1.5rem;
font-size: 0.85rem;
}
/* Content */
.content {
background: var(--bg-white);
border-radius: 10px;
padding: 2rem;
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.content h1 {
font-size: 2.5rem;
margin-bottom: 1rem;
color: var(--text-dark);
border-bottom: 3px solid var(--primary-color);
padding-bottom: 0.5rem;
}
.content h2 {
font-size: 2rem;
margin: 2.5rem 0 1rem;
color: var(--text-dark);
border-bottom: 2px solid var(--border-color);
padding-bottom: 0.5rem;
}
.content h3 {
font-size: 1.5rem;
margin: 2rem 0 1rem;
color: var(--text-dark);
}
.content h4 {
font-size: 1.2rem;
margin: 1.5rem 0 0.5rem;
color: var(--primary-color);
}
.content p {
margin-bottom: 1rem;
color: var(--text-light);
text-align: justify;
}
.content ul,
.content ol {
margin-bottom: 1rem;
padding-left: 2rem;
}
.content li {
margin-bottom: 0.5rem;
color: var(--text-light);
}
.content code {
background: var(--bg-light);
padding: 0.2rem 0.4rem;
border-radius: 3px;
font-family: 'Courier New', monospace;
font-size: 0.9rem;
color: var(--primary-color);
}
.content pre {
background: var(--code-bg);
color: var(--code-text);
padding: 1.5rem;
border-radius: 5px;
overflow-x: auto;
margin: 1rem 0;
font-family: 'Fira Code', 'Courier New', monospace;
font-size: 0.9rem;
line-height: 1.5;
}
.content pre code {
background: none;
padding: 0;
color: inherit;
}
.content blockquote {
border-left: 4px solid var(--primary-color);
padding-left: 1rem;
margin: 1rem 0;
color: var(--text-light);
font-style: italic;
background: var(--bg-light);
padding: 1rem;
border-radius: 0 5px 5px 0;
}
.content table {
width: 100%;
border-collapse: collapse;
margin: 1rem 0;
}
.content th,
.content td {
padding: 0.75rem;
text-align: left;
border-bottom: 1px solid var(--border-color);
}
.content th {
background: var(--bg-light);
font-weight: 600;
color: var(--text-dark);
}
/* Alert Boxes */
.alert {
padding: 1rem;
border-radius: 5px;
margin: 1rem 0;
}
.alert-info {
background: #dbeafe;
border-left: 4px solid #3b82f6;
color: #1e40af;
}
.alert-warning {
background: #fef3c7;
border-left: 4px solid #f59e0b;
color: #92400e;
}
.alert-success {
background: #d1fae5;
border-left: 4px solid #10b981;
color: #065f46;
}
.alert-danger {
background: #fee2e2;
border-left: 4px solid #ef4444;
color: #991b1b;
}
/* Tabs */
.tabs {
margin: 2rem 0;
}
.tab-buttons {
display: flex;
gap: 0.5rem;
border-bottom: 2px solid var(--border-color);
}
.tab-button {
padding: 0.75rem 1.5rem;
background: none;
border: none;
color: var(--text-light);
cursor: pointer;
border-bottom: 2px solid transparent;
transition: all 0.3s;
}
.tab-button.active {
color: var(--primary-color);
border-bottom-color: var(--primary-color);
}
.tab-content {
display: none;
padding: 1rem 0;
}
.tab-content.active {
display: block;
}
/* Mermaid Diagrams */
.mermaid {
text-align: center;
margin: 2rem 0;
}
/* Code Groups */
.code-group {
margin: 1rem 0;
border: 1px solid var(--border-color);
border-radius: 5px;
overflow: hidden;
}
.code-group-header {
background: var(--bg-light);
padding: 0.5rem 1rem;
font-weight: 600;
color: var(--text-dark);
}
.code-group-content {
padding: 0;
}
/* Footer */
footer {
background: var(--text-dark);
color: white;
padding: 40px 0;
text-align: center;
margin-top: 40px;
}
/* Responsive */
@media (max-width: 768px) {
.doc-grid {
grid-template-columns: 1fr;
}
.sidebar {
position: static;
max-height: none;
}
.doc-header h1 {
font-size: 2rem;
}
}
</style>
<link rel="stylesheet" href="css/docs.css">
</head>
<body>
<!-- Header -->
<header>
<nav class="container">
<a href="index.html" class="logo">AITBC</a>
<ul class="nav-links">
<li><a href="index.html">Home</a></li>
<li><a href="full-documentation.html" class="active">Full Documentation</a></li>
<li><a href="#contact">Contact</a></li>
<li><button id="theme-toggle" class="theme-toggle" title="Toggle theme"><i class="fas fa-sun"></i></button></li>
</ul>
</nav>
<header class="site-header">
<div class="container">
<div class="header-inner">
<a href="/" class="brand">
<i class="fas fa-cube"></i>
<span>AITBC</span>
</a>
<nav class="header-nav">
<a href="/">Home</a>
<a href="/explorer/">Explorer</a>
<a href="/Exchange/">Exchange</a>
<a href="/docs/index.html" class="active">Docs</a>
<button id="theme-toggle" class="theme-toggle" title="Toggle theme"><i class="fas fa-sun"></i></button>
</nav>
</div>
</div>
</header>
<!-- Main Content -->
@@ -525,6 +85,19 @@
</ul>
</li>
</ul>
<h3 style="margin-top: 2rem;">Markdown Docs</h3>
<ul>
<li><a href="https://github.com/oib/AITBC/tree/main/docs/0_getting_started" target="_blank" class="sub-item">0 Getting Started</a></li>
<li><a href="https://github.com/oib/AITBC/tree/main/docs/1_project" target="_blank" class="sub-item">1 Project</a></li>
<li><a href="https://github.com/oib/AITBC/tree/main/docs/2_clients" target="_blank" class="sub-item">2 Clients</a></li>
<li><a href="https://github.com/oib/AITBC/tree/main/docs/3_miners" target="_blank" class="sub-item">3 Miners</a></li>
<li><a href="https://github.com/oib/AITBC/tree/main/docs/4_blockchain" target="_blank" class="sub-item">4 Blockchain</a></li>
<li><a href="https://github.com/oib/AITBC/tree/main/docs/5_reference" target="_blank" class="sub-item">5 Reference</a></li>
<li><a href="https://github.com/oib/AITBC/tree/main/docs/6_architecture" target="_blank" class="sub-item">6 Architecture</a></li>
<li><a href="https://github.com/oib/AITBC/tree/main/docs/7_deployment" target="_blank" class="sub-item">7 Deployment</a></li>
<li><a href="https://github.com/oib/AITBC/tree/main/docs/8_development" target="_blank" class="sub-item">8 Development</a></li>
<li><a href="https://github.com/oib/AITBC/tree/main/docs/9_security" target="_blank" class="sub-item">9 Security</a></li>
</ul>
</aside>
<!-- Content -->
@@ -1085,24 +658,7 @@ gosec ./...</code></pre>
<script src="/js/mermaid.min.js"></script>
<script src="/js/mermaid-init.js"></script>
<script>
// Theme toggle functionality
const themeToggle = document.getElementById('theme-toggle');
if (themeToggle) {
themeToggle.addEventListener('click', () => {
document.body.classList.toggle('light');
const isLight = document.body.classList.contains('light');
themeToggle.innerHTML = isLight ? '<i class="fas fa-moon"></i>' : '<i class="fas fa-sun"></i>';
localStorage.setItem('theme', isLight ? 'light' : 'dark');
});
// Load saved theme
const savedTheme = localStorage.getItem('theme');
if (savedTheme === 'light') {
document.body.classList.add('light');
themeToggle.innerHTML = '<i class="fas fa-moon"></i>';
}
}
</script>
<script src="js/theme.js"></script>
</body>
</html>

View File

@@ -5,23 +5,23 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="css/docs.css">
<title>Documentation - AITBC</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
</head>
<body>
<!-- Header -->
<header class="text-white shadow-lg" style="background: var(--bg-white); position: fixed; width: 100%; top: 0; z-index: 1000; box-shadow: 0 1px 3px rgba(0,0,0,0.1);">
<div class="container" style="max-width: 1200px; margin: 0 auto; padding: 0 20px;">
<div style="display: flex; align-items: center; justify-content: space-between; padding: 1rem 0;">
<div style="display: flex; align-items: center; gap: 0.75rem;">
<i class="fa fa-cube" style="font-size: 2rem; color: var(--primary-color);"></i>
<h1 style="font-size: 1.5rem; font-weight: bold; margin: 0; color: var(--text-dark);">AITBC</h1>
</div>
<nav style="display: flex; align-items: center; gap: 1.5rem;">
<a href="/" style="background: transparent !important; color: var(--text-dark) !important; padding: 0.5rem 0.75rem; border-radius: 0.5rem; font-weight: 500; text-decoration: none; display: inline-flex; align-items: center;">Home</a>
<a href="/explorer/" style="background: transparent !important; color: var(--text-dark) !important; padding: 0.5rem 0.75rem; border-radius: 0.5rem; font-weight: 500; text-decoration: none; display: inline-flex; align-items: center;">Explorer</a>
<a href="/Exchange/" style="background: transparent !important; color: var(--text-dark) !important; padding: 0.5rem 0.75rem; border-radius: 0.5rem; font-weight: 500; text-decoration: none; display: inline-flex; align-items: center;">Exchange</a>
<a href="/docs/index.html" style="background: transparent !important; color: var(--text-dark) !important; padding: 0.5rem 0.75rem; border-radius: 0.5rem; font-weight: 500; text-decoration: none; display: inline-flex; align-items: center;">Documentation</a>
<button id="themeToggle" class="theme-toggle" style="background: rgba(59, 130, 246, 0.1) !important; color: var(--primary-color) !important; border: 2px solid var(--primary-color); padding: 0.5rem 1rem; border-radius: 0.5rem; cursor: pointer; font-size: 1rem;">🌞</button>
<header class="site-header">
<div class="container">
<div class="header-inner">
<a href="/" class="brand">
<i class="fas fa-cube"></i>
<span>AITBC</span>
</a>
<nav class="header-nav">
<a href="/">Home</a>
<a href="/explorer/">Explorer</a>
<a href="/Exchange/">Exchange</a>
<a href="/docs/index.html" class="active">Docs</a>
<button id="theme-toggle" class="theme-toggle" title="Toggle theme"><i class="fas fa-sun"></i></button>
</nav>
</div>
</div>
@@ -33,16 +33,16 @@
<div class="doc-header">
<h1>Documentation</h1>
<p>Choose your reader level to access tailored documentation for your needs</p>
<div style="margin-top: 2rem; padding: 1.5rem; background: linear-gradient(135deg, rgba(59, 130, 246, 0.1) 0%, rgba(16, 185, 129, 0.1) 100%); border-radius: 15px; border: 2px solid rgba(59, 130, 246, 0.2);">
<h3 style="color: var(--success-color); margin-bottom: 0.5rem; font-size: 1.2rem;">✅ Latest Update (January 2026)</h3>
<p style="color: var(--text-light); margin: 0;">End-to-end Ollama GPU inference testing completed! Real GPU miner operational with RTX 4060 Ti, processing jobs in 11-25 seconds with verified receipt generation and blockchain recording.</p>
<div class="announce-banner">
<h3>✅ Latest Update (February 2026)</h3>
<p>Documentation fully restructured! 10 numbered sections from Getting Started to Security, optimized content with merged duplicates, and zero broken links. Plus: end-to-end Ollama GPU inference with RTX 4060 Ti operational.</p>
</div>
</div>
<!-- Search Bar -->
<div class="search-container">
<input type="text" class="search-bar" placeholder="Search documentation..." id="searchInput">
<i class="fa fa-search search-icon"></i>
<i class="fas fa-search search-icon"></i>
</div>
<!-- Reader Level Cards -->
@@ -50,7 +50,7 @@
<!-- Miners Card -->
<div class="reader-card miner">
<div class="reader-icon">
<i class="fa fa-hammer"></i>
<i class="fas fa-hammer"></i>
</div>
<h3>Miners</h3>
<p>Learn how to mine AITBC tokens and contribute to network security. Perfect for those looking to earn rewards through staking or providing compute power.</p>
@@ -61,13 +61,13 @@
<li>Real-time job processing & earnings</li>
<li>Performance monitoring & troubleshooting</li>
</ul>
<a href="docs-miners.html" class="btn">Miner Documentation</a>
<a href="miners.html" class="btn">Miner Documentation</a>
</div>
<!-- Clients Card -->
<div class="reader-card client">
<div class="reader-icon">
<i class="fa fa-users"></i>
<i class="fas fa-users"></i>
</div>
<h3>Clients</h3>
<p>Use AITBC for your AI/ML workloads with privacy and verifiable computation. Ideal for businesses and developers using AI services.</p>
@@ -78,13 +78,13 @@
<li>Transparent pricing: 0.02 AITBC/gpu_second</li>
<li>Cryptographic receipts & blockchain verification</li>
</ul>
<a href="docs-clients.html" class="btn">Client Documentation</a>
<a href="clients.html" class="btn">Client Documentation</a>
</div>
<!-- Developers Card -->
<div class="reader-card developer">
<div class="reader-icon">
<i class="fa fa-code"></i>
<i class="fas fa-code"></i>
</div>
<h3>Developers</h3>
<p>Build on AITBC and contribute to the protocol. Designed for developers wanting to extend the platform or integrate with it.</p>
@@ -95,13 +95,13 @@
<li>Bounty programs</li>
<li>Community resources</li>
</ul>
<a href="docs-developers.html" class="btn">Developer Documentation</a>
<a href="developers.html" class="btn">Developer Documentation</a>
</div>
<!-- Full Documentation Card -->
<div class="reader-card full-doc">
<div class="reader-icon">
<i class="fa fa-file-alt"></i>
<i class="fas fa-file-alt"></i>
</div>
<h3>Full Documentation</h3>
<p>Complete technical documentation covering all aspects of the AITBC platform including architecture, APIs, deployment, and advanced features.</p>
@@ -118,26 +118,26 @@
<!-- Components Card -->
<div class="reader-card components">
<div class="reader-icon">
<i class="fa fa-cube"></i>
<i class="fas fa-cube"></i>
</div>
<h3>System Components</h3>
<p>Explore the 7 core components that make up the AITBC platform. Understand how each part works together to create a complete AI blockchain computing solution.</p>
<h3>Architecture &amp; Components</h3>
<p>Explore the system architecture and core components of the AITBC platform. Understand how each part works together from end-to-end flow to individual services.</p>
<ul class="reader-features">
<li>Blockchain Node with PoA/PoS consensus</li>
<li>End-to-end system flow diagram</li>
<li>Coordinator API for job orchestration</li>
<li>Wallet Daemon for secure key management</li>
<li>Miner Daemon for GPU compute</li>
<li>Blockchain Node with PoA/PoS consensus</li>
<li>Marketplace Web for compute trading</li>
<li>Explorer Web for blockchain viewing</li>
<li>Pool Hub for miner coordination</li>
<li>Trade Exchange for BTC-to-AITBC</li>
<li>Wallet for key management &amp; staking</li>
<li>Codebase structure &amp; technical reference</li>
</ul>
<a href="components.html" class="btn">View Components</a>
<a href="components.html" class="btn">View Architecture</a>
</div>
<!-- System Flow Card -->
<div class="reader-card flow">
<div class="reader-icon">
<i class="fa fa-sitemap"></i>
<i class="fas fa-sitemap"></i>
</div>
<h3>System Flow</h3>
<p>Visualize the complete flow of a job submission through the CLI client, detailing each system component, message, RPC call, and port involved.</p>
@@ -157,19 +157,19 @@
<h2>Quick Links</h2>
<div class="links-grid">
<a href="full-documentation.html" class="link-item">
<i class="fa fa-book"></i>
<i class="fas fa-book"></i>
<span>Full Documentation</span>
</a>
<a href="https://github.com/oib/AITBC/tree/main/docs" class="link-item" target="_blank">
<i class="fa fa-file-alt"></i>
<i class="fas fa-file-alt"></i>
<span>Markdown Docs</span>
</a>
<a href="https://aitbc.bubuit.net/Exchange/" class="link-item">
<i class="fa fa-exchange"></i>
<i class="fas fa-exchange"></i>
<span>Trade Exchange</span>
</a>
<a href="https://github.com/oib/AITBC" class="link-item">
<i class="fa fa-git"></i>
<i class="fas fa-git"></i>
<span>Source Code</span>
</a>
<a href="https://discord.gg/aitbc" class="link-item">
@@ -177,7 +177,7 @@
<span>Community</span>
</a>
<a href="mailto:aitbc@bubuit.net" class="link-item">
<i class="fa fa-envelope"></i>
<i class="fas fa-envelope"></i>
<span>Support</span>
</a>
</div>
@@ -192,10 +192,10 @@
<i class="fab fa-discord"></i> Join Discord
</a>
<a href="mailto:aitbc@bubuit.net" class="btn btn-outline">
<i class="fa fa-envelope"></i> Email Support
<i class="fas fa-envelope"></i> Email Support
</a>
<a href="#" class="btn btn-outline">
<i class="fa fa-comments"></i> Live Chat
<a href="https://discord.gg/aitbc" class="btn btn-outline">
<i class="fas fa-comments"></i> Live Chat
</a>
</div>
</section>
@@ -205,44 +205,50 @@
<!-- Footer -->
<footer>
<div class="container">
<p>&copy; 2026 AITBC. All rights reserved. | Last updated: January 24, 2026</p>
<p>&copy; 2026 AITBC. All rights reserved. | Last updated: February 13, 2026</p>
</div>
</footer>
<script>
// Search functionality
document.getElementById('searchInput').addEventListener('keypress', function(e) {
if (e.key === 'Enter') {
const searchTerm = e.target.value.toLowerCase();
if (searchTerm) {
// Simple search logic - in real implementation, this would search actual docs
alert(`Searching for: ${searchTerm}\n\nIn a full implementation, this would search through all documentation pages and show relevant results.`);
}
// Client-side search across doc pages
const docPages = [
{ title: 'Miner Documentation', desc: 'GPU mining, registration, earnings, Ollama setup', url: 'miners.html' },
{ title: 'Client Documentation', desc: 'Job submission, wallet, pricing, API reference', url: 'clients.html' },
{ title: 'Developer Documentation', desc: 'SDKs, APIs, contributing, bounties', url: 'developers.html' },
{ title: 'Full Documentation', desc: 'Architecture, installation, APIs, security, reference', url: 'full-documentation.html' },
{ title: 'Architecture & Components', desc: 'Blockchain node, coordinator, marketplace, wallet, explorer, pool hub', url: 'components.html' },
{ title: 'System Flow', desc: 'Job submission flow, component interaction, RPC calls', url: 'flowchart.html' },
{ title: 'Coordinator API', desc: 'FastAPI, job management, miner registration, receipts', url: 'coordinator-api.html' },
{ title: 'Blockchain Node', desc: 'PoA consensus, RPC, P2P, devnet, validator', url: 'blockchain-node.html' },
{ title: 'Trade Exchange', desc: 'Bitcoin to AITBC, QR payments, user management', url: 'trade-exchange.html' },
{ title: 'Marketplace Web', desc: 'GPU compute offers, bids, stats dashboard', url: 'marketplace-web.html' },
{ title: 'Wallet Daemon', desc: 'Encrypted keystore, Argon2id, REST API, receipts', url: 'wallet-daemon.html' },
{ title: 'Explorer Web', desc: 'Blocks, transactions, addresses, receipt tracking', url: 'explorer-web.html' },
{ title: 'Pool Hub', desc: 'Miner registry, scoring, Redis, PostgreSQL', url: 'pool-hub.html' },
{ title: 'API Reference', desc: 'REST endpoints, authentication, rate limits', url: 'api.html' },
{ title: 'Browser Wallet', desc: 'Chrome extension, secure crypto wallet', url: 'browser-wallet.html' },
];
document.getElementById('searchInput').addEventListener('input', function(e) {
const q = e.target.value.toLowerCase().trim();
let resultsEl = document.getElementById('searchResults');
if (!resultsEl) {
resultsEl = document.createElement('div');
resultsEl.id = 'searchResults';
resultsEl.className = 'search-results';
this.closest('.search-container').after(resultsEl);
}
if (!q || q.length < 2) { resultsEl.innerHTML = ''; return; }
const matches = docPages.filter(p => p.title.toLowerCase().includes(q) || p.desc.toLowerCase().includes(q));
if (matches.length === 0) {
resultsEl.innerHTML = '<div class="no-results">No results found</div>';
} else {
resultsEl.innerHTML = matches.map(p =>
`<a href="${p.url}"><strong>${p.title}</strong><br><small>${p.desc}</small></a>`
).join('');
}
});
// Add some interactivity
document.querySelectorAll('.reader-card').forEach(card => {
card.addEventListener('mouseenter', function() {
this.style.cursor = 'pointer';
});
});
</script>
<script>
// Check for saved theme preference or default to dark mode
const currentTheme = localStorage.getItem('theme') || 'dark';
if (currentTheme === 'light') {
document.body.classList.add('light');
document.getElementById('themeToggle').textContent = '🌙';
}
// Theme toggle functionality
document.getElementById('themeToggle').addEventListener('click', function() {
document.body.classList.toggle('light');
const isLight = document.body.classList.contains('light');
localStorage.setItem('theme', isLight ? 'light' : 'dark');
this.textContent = isLight ? '🌙' : '🌞';
});
</script></body>
<script src="js/theme.js"></script>
</body>
</html>

View File

@@ -5,245 +5,26 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Marketplace Web - AITBC Documentation</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<style>
:root {
--primary-color: #2563eb;
--secondary-color: #1e40af;
--success-color: #10b981;
--text-dark: #1f2937;
--text-light: #6b7280;
--bg-light: #f9fafb;
--bg-white: #ffffff;
--border-color: #e5e7eb;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
line-height: 1.6;
color: var(--text-dark);
background: var(--bg-white);
margin: 0;
padding: 0;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
header {
background: var(--text-dark);
color: white;
padding: 1rem 0;
position: sticky;
top: 0;
z-index: 100;
}
nav {
display: flex;
justify-content: space-between;
align-items: center;
}
.logo {
font-size: 1.5rem;
font-weight: bold;
color: white;
text-decoration: none;
}
.nav-links {
display: flex;
gap: 2rem;
list-style: none;
margin: 0;
padding: 0;
}
.nav-links a {
color: white;
text-decoration: none;
transition: color 0.3s;
}
.nav-links a:hover {
color: var(--primary-color);
}
.breadcrumb {
padding: 1rem 0;
color: var(--text-light);
font-size: 0.9rem;
}
.breadcrumb a {
color: var(--text-light);
text-decoration: none;
}
.breadcrumb a:hover {
color: var(--primary-color);
}
.doc-header {
padding: 3rem 0;
background: var(--bg-light);
margin-bottom: 2rem;
}
.doc-header h1 {
font-size: 2.5rem;
margin-bottom: 1rem;
color: var(--text-dark);
}
.doc-header p {
font-size: 1.2rem;
color: var(--text-light);
max-width: 800px;
}
.status-badge {
display: inline-block;
padding: 0.25rem 0.75rem;
background: #10b98120;
color: var(--success-color);
border-radius: 20px;
font-size: 0.875rem;
font-weight: 600;
margin-top: 1rem;
}
.content-section {
margin-bottom: 3rem;
}
.content-section h2 {
font-size: 1.8rem;
margin-bottom: 1.5rem;
color: var(--text-dark);
border-bottom: 2px solid var(--border-color);
padding-bottom: 0.5rem;
}
.content-section h3 {
font-size: 1.4rem;
margin: 2rem 0 1rem;
color: var(--text-dark);
}
.content-section p {
margin-bottom: 1rem;
color: var(--text-dark);
}
.content-section ul {
margin-bottom: 1rem;
padding-left: 2rem;
}
.content-section li {
margin-bottom: 0.5rem;
}
.tech-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 1rem;
margin: 2rem 0;
}
.tech-item {
background: var(--bg-light);
padding: 1rem;
border-radius: 8px;
text-align: center;
}
.tech-item strong {
display: block;
color: var(--primary-color);
margin-bottom: 0.5rem;
}
pre {
background: #1f2937;
color: #f9fafb;
padding: 1.5rem;
border-radius: 8px;
overflow-x: auto;
margin: 1rem 0;
}
code {
font-family: 'Courier New', Courier, monospace;
font-size: 0.9rem;
}
pre code {
background: none;
padding: 0;
}
.back-button {
display: inline-flex;
align-items: center;
gap: 0.5rem;
color: var(--primary-color);
text-decoration: none;
margin-bottom: 2rem;
font-weight: 600;
}
.back-button:hover {
color: var(--secondary-color);
}
.alert {
background: #dbeafe;
border: 1px solid #3b82f6;
border-radius: 8px;
padding: 1rem;
margin: 1rem 0;
}
.alert-info {
background: #dbeafe;
border-color: #3b82f6;
color: #1e40af;
}
footer {
background: var(--text-dark);
color: white;
padding: 2rem 0;
text-align: center;
margin-top: 4rem;
}
@media (max-width: 768px) {
.nav-links {
display: none;
}
.doc-header h1 {
font-size: 2rem;
}
}
</style>
<link rel="stylesheet" href="css/docs.css">
</head>
<body>
<header>
<nav class="container">
<a href="../index.html" class="logo">AITBC</a>
<ul class="nav-links">
<li><a href="../index.html">Home</a></li>
<li><a href="index.html">Documentation</a></li>
<li><a href="mailto:aitbc@bubuit.net">Contact</a></li>
</ul>
</nav>
<!-- Header -->
<header class="site-header">
<div class="container">
<div class="header-inner">
<a href="/" class="brand">
<i class="fas fa-cube"></i>
<span>AITBC</span>
</a>
<nav class="header-nav">
<a href="/">Home</a>
<a href="/explorer/">Explorer</a>
<a href="/Exchange/">Exchange</a>
<a href="/docs/index.html" class="active">Docs</a>
<button id="theme-toggle" class="theme-toggle" title="Toggle theme"><i class="fas fa-sun"></i></button>
</nav>
</div>
</div>
</header>
<main>
@@ -252,7 +33,7 @@
<div class="breadcrumb">
<a href="index.html">Documentation</a>
<span></span>
<a href="#">Components</a>
<a href="components.html">Components</a>
<span></span>
<span>Marketplace Web</span>
</div>
@@ -478,7 +259,7 @@ docker run -d \
<p>For marketplace-specific issues:</p>
<ul>
<li>Check the <a href="full-documentation.html">issue tracker</a></li>
<li>Join our <a href="#">Discord</a></li>
<li>Join our <a href="https://discord.gg/aitbc">Discord</a></li>
<li>Contact: <a href="mailto:aitbc@bubuit.net">aitbc@bubuit.net</a></li>
</ul>
</section>
@@ -487,8 +268,9 @@ docker run -d \
<footer>
<div class="container">
<p>&copy; 2025 AITBC. All rights reserved.</p>
<p>&copy; 2026 AITBC. All rights reserved.</p>
</div>
</footer>
<script src="js/theme.js"></script>
</body>
</html>

View File

@@ -1,585 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Miner Documentation - AITBC</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<style>
:root {
--primary-color: #2563eb;
--secondary-color: #1e40af;
--success-color: #10b981;
--warning-color: #f59e0b;
--danger-color: #ef4444;
--text-dark: #1f2937;
--text-light: #6b7280;
--bg-light: #f9fafb;
--bg-white: #ffffff;
--border-color: #e5e7eb;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
line-height: 1.6;
color: var(--text-dark);
background: var(--bg-white);
margin: 0;
padding: 0;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
header {
background: var(--text-dark);
color: white;
padding: 1rem 0;
position: sticky;
top: 0;
z-index: 100;
}
nav {
display: flex;
justify-content: space-between;
align-items: center;
}
.logo {
font-size: 1.5rem;
font-weight: bold;
color: white;
text-decoration: none;
}
.nav-links {
display: flex;
gap: 2rem;
list-style: none;
margin: 0;
padding: 0;
}
.nav-links a {
color: white;
text-decoration: none;
transition: color 0.3s;
}
.nav-links a:hover {
color: var(--primary-color);
}
.breadcrumb {
padding: 1rem 0;
color: var(--text-light);
font-size: 0.9rem;
}
.breadcrumb a {
color: var(--text-light);
text-decoration: none;
}
.breadcrumb a:hover {
color: var(--primary-color);
}
.doc-header {
padding: 3rem 0;
background: var(--bg-light);
margin-bottom: 2rem;
}
.doc-header h1 {
font-size: 2.5rem;
margin-bottom: 1rem;
color: var(--text-dark);
}
.doc-header p {
font-size: 1.2rem;
color: var(--text-light);
max-width: 800px;
}
.content-section {
margin-bottom: 3rem;
}
.content-section h2 {
font-size: 1.8rem;
margin-bottom: 1.5rem;
color: var(--text-dark);
border-bottom: 2px solid var(--border-color);
padding-bottom: 0.5rem;
}
.content-section h3 {
font-size: 1.4rem;
margin: 2rem 0 1rem;
color: var(--text-dark);
}
.content-section h4 {
font-size: 1.2rem;
margin: 1.5rem 0 0.5rem;
color: var(--text-dark);
}
.content-section p {
margin-bottom: 1rem;
color: var(--text-dark);
}
.content-section ul {
margin-bottom: 1rem;
padding-left: 2rem;
}
.content-section li {
margin-bottom: 0.5rem;
}
.feature-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 1.5rem;
margin: 2rem 0;
}
.feature-card {
background: var(--bg-white);
padding: 1.5rem;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.feature-card h4 {
margin-top: 0;
color: var(--primary-color);
}
.requirements-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 1rem;
margin: 2rem 0;
}
.requirement-card {
background: var(--bg-light);
padding: 1.5rem;
border-radius: 8px;
text-align: center;
}
.requirement-card h4 {
margin-top: 0;
color: var(--primary-color);
}
pre {
background: #1f2937;
color: #f9fafb;
padding: 1.5rem;
border-radius: 8px;
overflow-x: auto;
margin: 1rem 0;
}
code {
font-family: 'Courier New', Courier, monospace;
font-size: 0.9rem;
}
pre code {
background: none;
padding: 0;
}
.inline-code {
background: var(--bg-light);
padding: 0.2rem 0.4rem;
border-radius: 4px;
font-size: 0.9rem;
}
.back-button {
display: inline-flex;
align-items: center;
gap: 0.5rem;
color: var(--primary-color);
text-decoration: none;
margin-bottom: 2rem;
font-weight: 600;
}
.back-button:hover {
color: var(--secondary-color);
}
.alert {
padding: 1rem;
border-radius: 8px;
margin: 1rem 0;
}
.alert-info {
background: #dbeafe;
border-left: 4px solid var(--primary-color);
color: #1e40af;
}
.alert-warning {
background: #fef3c7;
border-left: 4px solid var(--warning-color);
color: #92400e;
}
.alert-success {
background: #d1fae5;
border-left: 4px solid var(--success-color);
color: #065f46;
}
.stats-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 1.5rem;
margin: 2rem 0;
}
.stat-card {
background: var(--bg-white);
padding: 1.5rem;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
text-align: center;
}
.stat-value {
font-size: 2rem;
font-weight: bold;
color: var(--primary-color);
}
.stat-label {
color: var(--text-light);
margin-top: 0.5rem;
}
footer {
background: var(--text-dark);
color: white;
padding: 2rem 0;
text-align: center;
margin-top: 4rem;
}
@media (max-width: 768px) {
.nav-links {
display: none;
}
.doc-header h1 {
font-size: 2rem;
}
}
</style>
</head>
<body>
<header>
<nav class="container">
<a href="../index.html" class="logo">AITBC</a>
<ul class="nav-links">
<li><a href="../index.html">Home</a></li>
<li><a href="index.html">Documentation</a></li>
<li><a href="mailto:aitbc@bubuit.net">Contact</a></li>
</ul>
</nav>
</header>
<main>
<div class="container">
<!-- Breadcrumb -->
<div class="breadcrumb">
<a href="index.html">Documentation</a>
<span></span>
<span>Miner Documentation</span>
</div>
<!-- Back Button -->
<a href="index.html" class="back-button">
<i class="fas fa-arrow-left"></i>
Back to Documentation
</a>
<!-- Header -->
<div class="doc-header">
<h1><i class="fas fa-hammer"></i> Miner Documentation</h1>
<p>Learn how to mine AITBC tokens and contribute to network security. Perfect for those looking to earn rewards through staking or providing compute power.</p>
</div>
<!-- Mining Stats -->
<div class="stats-grid">
<div class="stat-card">
<div class="stat-value">100K+</div>
<div class="stat-label">AITBC Staked</div>
</div>
<div class="stat-card">
<div class="stat-value">30+</div>
<div class="stat-label">Active Miners</div>
</div>
<div class="stat-card">
<div class="stat-value">0.02</div>
<div class="stat-label">AITBC/GPU Second</div>
</div>
<div class="stat-card">
<div class="stat-value">Low</div>
<div class="stat-label">Hardware Requirements</div>
</div>
</div>
<!-- Getting Started -->
<section class="content-section">
<h2>Getting Started</h2>
<p>AITBC mining combines Proof of Authority and Proof of Stake, offering multiple ways to participate and earn rewards.</p>
<h3>Mining Options</h3>
<ul>
<li><strong>Authority Mining</strong>: Become a trusted authority node (invitation only)</li>
<li><strong>Stake Mining</strong>: Stake AITBC tokens and earn rewards</li>
<li><strong>GPU Mining</strong>: ✅ OPERATIONAL - Provide compute power for AI/ML workloads via Ollama (RTX 4060 Ti tested)</li>
<li><strong>Hybrid Mining</strong>: Combine staking with compute provision</li>
</ul>
<h3>Requirements</h3>
<div class="requirements-grid">
<div class="requirement-card">
<h4><i class="fas fa-coins"></i> Minimum Stake</h4>
<p>10,000 AITBC tokens</p>
</div>
<div class="requirement-card">
<h4><i class="fas fa-microchip"></i> CPU</h4>
<p>4+ cores (8+ recommended for GPU mining)</p>
</div>
<div class="requirement-card">
<h4><i class="fas fa-memory"></i> RAM</h4>
<p>8GB minimum (16GB+ for GPU mining)</p>
</div>
<div class="requirement-card">
<h4><i class="fas fa-hdd"></i> Storage</h4>
<p>100GB SSD (500GB+ for full node)</p>
</div>
<div class="requirement-card">
<h4><i class="fas fa-network-wired"></i> Network</h4>
<p>Stable broadband (100Mbps+)</p>
</div>
<div class="requirement-card">
<h4><i class="fas fa-rocket"></i> GPU (Optional)</h4>
<p><strong>✅ Tested:</strong> NVIDIA RTX 4060 Ti (16GB)</p>
</div>
</div>
</section>
<!-- Quick Start -->
<section class="content-section">
<h2>Quick Start</h2>
<h3>1. Download & Install</h3>
<p>Get the AITBC mining software for your platform</p>
<pre><code># Linux/macOS
curl -O https://github.com/oib/AITBC/releases/download/latest/aitbc-miner-linux-amd64.tar.gz
tar -xzf aitbc-miner-linux-amd64.tar.gz
cd aitbc-miner
# Windows
# Download from https://github.com/oib/AITBC/releases</code></pre>
<h3>2. Configure Your Node</h3>
<p>Set up your mining configuration</p>
<pre><code># Create configuration
./aitbc-miner init
# Edit config file
nano ~/.aitbc/miner/config.toml</code></pre>
<h3>3. Start Mining</h3>
<pre><code># Start the miner
./aitbc-miner start
# Check status
./aitbc-miner status
# View logs
./aitbc-miner logs</code></pre>
</section>
<!-- Configuration -->
<section class="content-section">
<h2>Configuration</h2>
<h3>Basic Configuration</h3>
<p>Edit <span class="inline-code">~/.aitbc/miner/config.toml</span>:</p>
<pre><code># Network settings
[network]
rpc_url = "https://aitbc.bubuit.net"
ws_url = "wss://aitbc.bubuit.net/ws"
# Mining settings
[mining]
stake_amount = 10000
compute_enabled = true
gpu_devices = [0] # GPU indices to use
# Wallet settings
[wallet]
address = "your-wallet-address"
private_key = "your-private-key"
# Performance settings
[performance]
max_concurrent_jobs = 2
memory_limit = "8GB"</code></pre>
<h3>GPU Configuration</h3>
<pre><code># GPU mining settings
[gpu]
enabled = true
devices = [0] # Use first GPU
memory_fraction = 0.8 # Use 80% of GPU memory
models = ["llama3.2", "mistral", "deepseek"] # Supported models</code></pre>
</section>
<!-- Mining Operations -->
<section class="content-section">
<h2>Mining Operations</h2>
<h3>Stake Mining</h3>
<ul>
<li>Stake your AITBC tokens to participate in consensus</li>
<li>Earn rewards from transaction fees</li>
<li>No hardware requirements beyond basic node</li>
<li>Rewards proportional to stake amount</li>
</ul>
<h3>GPU Mining</h3>
<ul>
<li>Provide AI/ML compute power to the network</li>
<li>Process inference jobs and earn AITBC</li>
<li>Supports 13+ Ollama models</li>
<li>Earnings: 0.02 AITBC per GPU second</li>
</ul>
<h3>Monitoring</h3>
<pre><code># Real-time monitoring
./aitbc-miner monitor
# Check earnings
./aitbc-miner earnings
# Performance metrics
./aitbc-miner metrics</code></pre>
</section>
<!-- Troubleshooting -->
<section class="content-section">
<h2>Troubleshooting</h2>
<h3>Common Issues</h3>
<div class="alert alert-warning">
<strong>GPU not detected?</strong> Ensure NVIDIA drivers are installed and CUDA is available.
</div>
<ol>
<li><strong>Connection Issues</strong>
<ul>
<li>Check internet connectivity</li>
<li>Verify RPC endpoint is accessible</li>
<li>Check firewall settings</li>
</ul>
</li>
<li><strong>Low Performance</strong>
<ul>
<li>Reduce concurrent jobs</li>
<li>Check GPU memory usage</li>
<li>Monitor system resources</li>
</ul>
</li>
<li><strong>Sync Issues</strong>
<ul>
<li>Wait for initial sync to complete</li>
<li>Check blockchain status</li>
<li>Restart miner if needed</li>
</ul>
</li>
</ol>
<h3>Getting Help</h3>
<ul>
<li>Check the logs: <code>./aitbc-miner logs</code></li>
<li>Visit our Discord community</li>
<li>Search issues on Gitea</li>
<li>Email support: aitbc@bubuit.net</li>
</ul>
</section>
<!-- FAQ -->
<section class="content-section">
<h2>Frequently Asked Questions</h2>
<h3>How much can I earn mining AITBC?</h3>
<p>Earnings vary based on:
- Stake amount (for stake mining)
- GPU performance and availability (for GPU mining)
- Network demand and transaction volume
- Current reward rates: 0.02 AITBC/GPU second</p>
<h3>What are the minimum requirements?</h3>
<p>Basic stake mining requires:
- 10,000 AITBC tokens minimum stake
- Stable internet connection
- Basic computer (4GB RAM, dual-core CPU)
GPU mining requires:
- NVIDIA GPU with 8GB+ VRAM
- 16GB+ RAM recommended
- Stable high-speed internet</p>
<h3>Is mining profitable?</h3>
<p>Profitability depends on:
- AITBC token value
- Electricity costs (for GPU mining)
- Network activity
- Your stake amount or GPU capabilities</p>
<h3>How do I become an authority node?</h3>
<p>Authority nodes require invitation based on community contribution, technical expertise, and stake amount. Apply through the community forum.</p>
</section>
<!-- Additional Resources -->
<section class="content-section">
<h2>Additional Resources</h2>
<ul>
<li><a href="blockchain-node-md.html">Blockchain Node Documentation</a></li>
<li><a href="full-documentation-md.html">Source Code</a></li>
<li>Network Statistics - available in monitoring dashboard</li>
<li>Mining Calculator - coming soon</li>
</ul>
</section>
</div>
</main>
<footer>
<div class="container">
<p>&copy; 2025 AITBC. All rights reserved.</p>
</div>
</footer>
</body>
</html>

View File

@@ -9,19 +9,19 @@
</head>
<body>
<!-- Header -->
<header class="text-white shadow-lg" style="background: var(--bg-white); position: fixed; width: 100%; top: 0; z-index: 1000; box-shadow: 0 1px 3px rgba(0,0,0,0.1);">
<div class="container" style="max-width: 1200px; margin: 0 auto; padding: 0 20px;">
<div style="display: flex; align-items: center; justify-content: space-between; padding: 1rem 0;">
<div style="display: flex; align-items: center; gap: 0.75rem;">
<i class="fas fa-cube" style="font-size: 2rem; color: var(--primary-color);"></i>
<h1 style="font-size: 1.5rem; font-weight: bold; margin: 0; color: var(--text-dark);">AITBC</h1>
</div>
<nav style="display: flex; align-items: center; gap: 1.5rem;">
<a href="/" style="background: transparent !important; color: var(--text-dark) !important; padding: 0.5rem 0.75rem; border-radius: 0.5rem; font-weight: 500; text-decoration: none; display: inline-flex; align-items: center;">Home</a>
<a href="/explorer/" style="background: transparent !important; color: var(--text-dark) !important; padding: 0.5rem 0.75rem; border-radius: 0.5rem; font-weight: 500; text-decoration: none; display: inline-flex; align-items: center;">Explorer</a>
<a href="/Exchange/" style="background: transparent !important; color: var(--text-dark) !important; padding: 0.5rem 0.75rem; border-radius: 0.5rem; font-weight: 500; text-decoration: none; display: inline-flex; align-items: center;">Exchange</a>
<a href="/docs/index.html" style="background: transparent !important; color: var(--text-dark) !important; padding: 0.5rem 0.75rem; border-radius: 0.5rem; font-weight: 500; text-decoration: none; display: inline-flex; align-items: center;">Documentation</a>
<button id="themeToggle" class="theme-toggle" style="background: rgba(59, 130, 246, 0.1) !important; color: var(--primary-color) !important; border: 2px solid var(--primary-color); padding: 0.5rem 1rem; border-radius: 0.5rem; cursor: pointer; font-size: 1rem;">🌞</button>
<header class="site-header">
<div class="container">
<div class="header-inner">
<a href="/" class="brand">
<i class="fas fa-cube"></i>
<span>AITBC</span>
</a>
<nav class="header-nav">
<a href="/">Home</a>
<a href="/explorer/">Explorer</a>
<a href="/Exchange/">Exchange</a>
<a href="/docs/index.html" class="active">Docs</a>
<button id="theme-toggle" class="theme-toggle" title="Toggle theme"><i class="fas fa-sun"></i></button>
</nav>
</div>
</div>
@@ -34,6 +34,9 @@
<span class="audience-badge">For Miners</span>
<h1>Start Mining AITBC</h1>
<p>Complete guide to becoming a successful AITBC miner and earning rewards</p>
<div class="source-links">
<a href="https://github.com/oib/AITBC/tree/main/docs/3_miners" target="_blank"><i class="fas fa-file-alt"></i> Markdown Source: docs/3_miners/</a>
</div>
</div>
<!-- Quick Stats -->
@@ -74,8 +77,8 @@
<li><strong>Hybrid Mining</strong>: Combine staking with compute provision</li>
</ul>
<div class="alert alert-info" style="margin-top: 1.5rem; padding: 1rem; background: linear-gradient(135deg, rgba(16, 185, 129, 0.1) 0%, rgba(59, 130, 246, 0.1) 100%); border-left: 4px solid var(--success-color); border-radius: 8px;">
<strong>🎉 Latest Achievement (January 2026):</strong> Real GPU miner successfully deployed with NVIDIA RTX 4060 Ti! Processing jobs in 11-25 seconds with verified receipt generation. Earn 0.02 AITBC per GPU second with 13+ Ollama models available.
<div class="announce-banner green">
<strong>🎉 Latest Achievement (February 2026):</strong> Real GPU miner successfully deployed with NVIDIA RTX 4060 Ti! Processing jobs in 11-25 seconds with verified receipt generation. Earn 0.02 AITBC per GPU second with 13+ Ollama models available.
</div>
<h3>Quick Start</h3>
@@ -361,7 +364,7 @@ nano ~/.aitbc/miner.toml</div>
<!-- Footer -->
<footer>
<div class="container">
<p>&copy; 2025 AITBC. All rights reserved.</p>
<p>&copy; 2026 AITBC. All rights reserved.</p>
</div>
</footer>
@@ -383,26 +386,6 @@ nano ~/.aitbc/miner.toml</div>
// Initialize calculator
calculateProfit();
</script>
<script>
// Check for saved theme preference or default to dark mode
const currentTheme = localStorage.getItem('theme') || 'dark';
if (currentTheme === 'light') {
document.body.classList.add('light');
const btn = document.getElementById('themeToggle');
if (btn) btn.textContent = '🌙';
}
// Theme toggle functionality
const themeBtn = document.getElementById('themeToggle');
if (themeBtn) {
themeBtn.addEventListener('click', function() {
document.body.classList.toggle('light');
const isLight = document.body.classList.contains('light');
localStorage.setItem('theme', isLight ? 'light' : 'dark');
this.textContent = isLight ? '🌙' : '🌞';
});
}
</script></body>
</script> <script src="js/theme.js"></script>
</body>
</html>

View File

@@ -5,230 +5,26 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pool Hub - AITBC Documentation</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<style>
:root {
--primary-color: #2563eb;
--secondary-color: #1e40af;
--success-color: #10b981;
--text-dark: #1f2937;
--text-light: #6b7280;
--bg-light: #f9fafb;
--bg-white: #ffffff;
--border-color: #e5e7eb;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
line-height: 1.6;
color: var(--text-dark);
background: var(--bg-white);
margin: 0;
padding: 0;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
header {
background: var(--text-dark);
color: white;
padding: 1rem 0;
position: sticky;
top: 0;
z-index: 100;
}
nav {
display: flex;
justify-content: space-between;
align-items: center;
}
.logo {
font-size: 1.5rem;
font-weight: bold;
color: white;
text-decoration: none;
}
.nav-links {
display: flex;
gap: 2rem;
list-style: none;
margin: 0;
padding: 0;
}
.nav-links a {
color: white;
text-decoration: none;
transition: color 0.3s;
}
.nav-links a:hover {
color: var(--primary-color);
}
.breadcrumb {
padding: 1rem 0;
color: var(--text-light);
font-size: 0.9rem;
}
.breadcrumb a {
color: var(--text-light);
text-decoration: none;
}
.breadcrumb a:hover {
color: var(--primary-color);
}
.doc-header {
padding: 3rem 0;
background: var(--bg-light);
margin-bottom: 2rem;
}
.doc-header h1 {
font-size: 2.5rem;
margin-bottom: 1rem;
color: var(--text-dark);
}
.doc-header p {
font-size: 1.2rem;
color: var(--text-light);
max-width: 800px;
}
.status-badge {
display: inline-block;
padding: 0.25rem 0.75rem;
background: #10b98120;
color: var(--success-color);
border-radius: 20px;
font-size: 0.875rem;
font-weight: 600;
margin-top: 1rem;
}
.content-section {
margin-bottom: 3rem;
}
.content-section h2 {
font-size: 1.8rem;
margin-bottom: 1.5rem;
color: var(--text-dark);
border-bottom: 2px solid var(--border-color);
padding-bottom: 0.5rem;
}
.content-section h3 {
font-size: 1.4rem;
margin: 2rem 0 1rem;
color: var(--text-dark);
}
.content-section p {
margin-bottom: 1rem;
color: var(--text-dark);
}
.content-section ul {
margin-bottom: 1rem;
padding-left: 2rem;
}
.content-section li {
margin-bottom: 0.5rem;
}
.feature-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 1.5rem;
margin: 2rem 0;
}
.feature-card {
background: var(--bg-white);
padding: 1.5rem;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.feature-card h4 {
margin-top: 0;
color: var(--primary-color);
}
pre {
background: #1f2937;
color: #f9fafb;
padding: 1.5rem;
border-radius: 8px;
overflow-x: auto;
margin: 1rem 0;
}
code {
font-family: 'Courier New', Courier, monospace;
font-size: 0.9rem;
}
pre code {
background: none;
padding: 0;
}
.back-button {
display: inline-flex;
align-items: center;
gap: 0.5rem;
color: var(--primary-color);
text-decoration: none;
margin-bottom: 2rem;
font-weight: 600;
}
.back-button:hover {
color: var(--secondary-color);
}
footer {
background: var(--text-dark);
color: white;
padding: 2rem 0;
text-align: center;
margin-top: 4rem;
}
@media (max-width: 768px) {
.nav-links {
display: none;
}
.doc-header h1 {
font-size: 2rem;
}
}
</style>
<link rel="stylesheet" href="css/docs.css">
</head>
<body>
<header>
<nav class="container">
<a href="../index.html" class="logo">AITBC</a>
<ul class="nav-links">
<li><a href="../index.html">Home</a></li>
<li><a href="index.html">Documentation</a></li>
<li><a href="mailto:aitbc@bubuit.net">Contact</a></li>
</ul>
</nav>
<!-- Header -->
<header class="site-header">
<div class="container">
<div class="header-inner">
<a href="/" class="brand">
<i class="fas fa-cube"></i>
<span>AITBC</span>
</a>
<nav class="header-nav">
<a href="/">Home</a>
<a href="/explorer/">Explorer</a>
<a href="/Exchange/">Exchange</a>
<a href="/docs/index.html" class="active">Docs</a>
<button id="theme-toggle" class="theme-toggle" title="Toggle theme"><i class="fas fa-sun"></i></button>
</nav>
</div>
</div>
</header>
<main>
@@ -237,7 +33,7 @@
<div class="breadcrumb">
<a href="index.html">Documentation</a>
<span></span>
<a href="#">Components</a>
<a href="components.html">Components</a>
<span></span>
<span>Pool Hub</span>
</div>
@@ -471,8 +267,9 @@ GET /metrics</code></pre>
<footer>
<div class="container">
<p>&copy; 2025 AITBC. All rights reserved.</p>
<p>&copy; 2026 AITBC. All rights reserved.</p>
</div>
</footer>
<script src="js/theme.js"></script>
</body>
</html>

View File

@@ -5,293 +5,26 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Trade Exchange - AITBC Documentation</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
:root {
--primary-color: #2563eb;
--secondary-color: #1e40af;
--accent-color: #3b82f6;
--success-color: #10b981;
--warning-color: #f59e0b;
--danger-color: #ef4444;
--text-dark: #1f2937;
--text-light: #6b7280;
--bg-light: #f9fafb;
--bg-white: #ffffff;
--border-color: #e5e7eb;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
line-height: 1.6;
color: var(--text-dark);
background: var(--bg-light);
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
/* Header */
header {
background: var(--bg-white);
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
position: fixed;
width: 100%;
top: 0;
z-index: 1000;
}
nav {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem 0;
}
.logo {
font-size: 1.5rem;
font-weight: bold;
color: var(--primary-color);
text-decoration: none;
}
.nav-links {
display: flex;
gap: 2rem;
list-style: none;
}
.nav-links a {
color: var(--text-dark);
text-decoration: none;
transition: color 0.3s;
}
.nav-links a:hover,
.nav-links a.active {
color: var(--primary-color);
}
/* Main Content */
main {
margin-top: 80px;
padding: 40px 0;
}
.doc-header {
background: var(--bg-white);
padding: 3rem 0;
margin-bottom: 2rem;
border-radius: 10px;
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.doc-header h1 {
font-size: 2.5rem;
color: var(--text-dark);
margin-bottom: 1rem;
}
.doc-header p {
color: var(--text-light);
font-size: 1.1rem;
}
.breadcrumb {
margin-bottom: 2rem;
}
.breadcrumb a {
color: var(--primary-color);
text-decoration: none;
}
.breadcrumb span {
color: var(--text-light);
margin: 0 0.5rem;
}
/* Content Sections */
.content-section {
background: var(--bg-white);
padding: 2.5rem;
margin-bottom: 2rem;
border-radius: 10px;
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.content-section h2 {
font-size: 1.8rem;
margin-bottom: 1.5rem;
color: var(--text-dark);
display: flex;
align-items: center;
gap: 0.5rem;
}
.content-section h3 {
font-size: 1.4rem;
margin: 2rem 0 1rem;
color: var(--text-dark);
}
.content-section p {
margin-bottom: 1rem;
color: var(--text-light);
}
.content-section ul {
margin-left: 2rem;
margin-bottom: 1rem;
}
.content-section li {
margin-bottom: 0.5rem;
color: var(--text-light);
}
.content-section code {
background: var(--bg-light);
padding: 0.2rem 0.4rem;
border-radius: 4px;
font-family: 'Courier New', monospace;
color: var(--primary-color);
}
.content-section pre {
background: var(--bg-light);
padding: 1rem;
border-radius: 8px;
overflow-x: auto;
margin: 1rem 0;
}
.content-section pre code {
background: none;
padding: 0;
color: var(--text-dark);
}
/* Feature Grid */
.feature-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 1.5rem;
margin: 2rem 0;
}
.feature-card {
padding: 1.5rem;
border: 1px solid var(--border-color);
border-radius: 8px;
background: var(--bg-light);
}
.feature-card h4 {
color: var(--primary-color);
margin-bottom: 0.5rem;
}
/* API Endpoints */
.api-endpoint {
background: var(--bg-light);
padding: 1rem;
border-radius: 8px;
margin: 1rem 0;
border-left: 4px solid var(--primary-color);
}
.api-endpoint code {
display: block;
font-weight: bold;
margin-bottom: 0.5rem;
}
/* Status Badge */
.status-badge {
display: inline-block;
padding: 0.25rem 0.75rem;
border-radius: 20px;
font-size: 0.875rem;
font-weight: 600;
}
.status-badge.live {
background: #10b98120;
color: var(--success-color);
}
/* Back Button */
.back-button {
display: inline-flex;
align-items: center;
gap: 0.5rem;
color: var(--primary-color);
text-decoration: none;
margin-bottom: 2rem;
font-weight: 600;
}
.back-button:hover {
color: var(--secondary-color);
}
/* CTA Button */
.cta-button {
display: inline-flex;
align-items: center;
gap: 0.5rem;
background: var(--primary-color);
color: white;
padding: 12px 30px;
border-radius: 50px;
text-decoration: none;
font-weight: 600;
transition: all 0.3s;
margin: 1rem 0;
}
.cta-button:hover {
background: var(--secondary-color);
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(0,0,0,0.2);
}
/* Responsive */
@media (max-width: 768px) {
.nav-links {
display: none;
}
.doc-header h1 {
font-size: 2rem;
}
.content-section {
padding: 1.5rem;
}
}
</style>
<link rel="stylesheet" href="css/docs.css">
</head>
<body>
<!-- Header -->
<header>
<nav class="container">
<a href="../index.html" class="logo">AITBC</a>
<ul class="nav-links">
<li><a href="../index.html">Home</a></li>
<li><a href="index.html" class="active">Documentation</a></li>
<li><a href="mailto:aitbc@bubuit.net">Contact</a></li>
</ul>
</nav>
<header class="site-header">
<div class="container">
<div class="header-inner">
<a href="/" class="brand">
<i class="fas fa-cube"></i>
<span>AITBC</span>
</a>
<nav class="header-nav">
<a href="/">Home</a>
<a href="/explorer/">Explorer</a>
<a href="/Exchange/">Exchange</a>
<a href="/docs/index.html" class="active">Docs</a>
<button id="theme-toggle" class="theme-toggle" title="Toggle theme"><i class="fas fa-sun"></i></button>
</nav>
</div>
</div>
</header>
<!-- Main Content -->
@@ -301,7 +34,7 @@
<div class="breadcrumb">
<a href="index.html">Documentation</a>
<span></span>
<a href="#">Components</a>
<a href="components.html">Components</a>
<span></span>
<span>Trade Exchange</span>
</div>
@@ -537,5 +270,6 @@ BITCOIN_RPC_PASS=password</code></pre>
<script>
// Add any interactive functionality here
</script>
<script src="js/theme.js"></script>
</body>
</html>

View File

@@ -5,230 +5,26 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Wallet Daemon - AITBC Documentation</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<style>
:root {
--primary-color: #2563eb;
--secondary-color: #1e40af;
--success-color: #10b981;
--text-dark: #1f2937;
--text-light: #6b7280;
--bg-light: #f9fafb;
--bg-white: #ffffff;
--border-color: #e5e7eb;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
line-height: 1.6;
color: var(--text-dark);
background: var(--bg-white);
margin: 0;
padding: 0;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
header {
background: var(--text-dark);
color: white;
padding: 1rem 0;
position: sticky;
top: 0;
z-index: 100;
}
nav {
display: flex;
justify-content: space-between;
align-items: center;
}
.logo {
font-size: 1.5rem;
font-weight: bold;
color: white;
text-decoration: none;
}
.nav-links {
display: flex;
gap: 2rem;
list-style: none;
margin: 0;
padding: 0;
}
.nav-links a {
color: white;
text-decoration: none;
transition: color 0.3s;
}
.nav-links a:hover {
color: var(--primary-color);
}
.breadcrumb {
padding: 1rem 0;
color: var(--text-light);
font-size: 0.9rem;
}
.breadcrumb a {
color: var(--text-light);
text-decoration: none;
}
.breadcrumb a:hover {
color: var(--primary-color);
}
.doc-header {
padding: 3rem 0;
background: var(--bg-light);
margin-bottom: 2rem;
}
.doc-header h1 {
font-size: 2.5rem;
margin-bottom: 1rem;
color: var(--text-dark);
}
.doc-header p {
font-size: 1.2rem;
color: var(--text-light);
max-width: 800px;
}
.status-badge {
display: inline-block;
padding: 0.25rem 0.75rem;
background: #10b98120;
color: var(--success-color);
border-radius: 20px;
font-size: 0.875rem;
font-weight: 600;
margin-top: 1rem;
}
.content-section {
margin-bottom: 3rem;
}
.content-section h2 {
font-size: 1.8rem;
margin-bottom: 1.5rem;
color: var(--text-dark);
border-bottom: 2px solid var(--border-color);
padding-bottom: 0.5rem;
}
.content-section h3 {
font-size: 1.4rem;
margin: 2rem 0 1rem;
color: var(--text-dark);
}
.content-section p {
margin-bottom: 1rem;
color: var(--text-dark);
}
.content-section ul {
margin-bottom: 1rem;
padding-left: 2rem;
}
.content-section li {
margin-bottom: 0.5rem;
}
.feature-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 1.5rem;
margin: 2rem 0;
}
.feature-card {
background: var(--bg-white);
padding: 1.5rem;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.feature-card h4 {
margin-top: 0;
color: var(--primary-color);
}
pre {
background: #1f2937;
color: #f9fafb;
padding: 1.5rem;
border-radius: 8px;
overflow-x: auto;
margin: 1rem 0;
}
code {
font-family: 'Courier New', Courier, monospace;
font-size: 0.9rem;
}
pre code {
background: none;
padding: 0;
}
.back-button {
display: inline-flex;
align-items: center;
gap: 0.5rem;
color: var(--primary-color);
text-decoration: none;
margin-bottom: 2rem;
font-weight: 600;
}
.back-button:hover {
color: var(--secondary-color);
}
footer {
background: var(--text-dark);
color: white;
padding: 2rem 0;
text-align: center;
margin-top: 4rem;
}
@media (max-width: 768px) {
.nav-links {
display: none;
}
.doc-header h1 {
font-size: 2rem;
}
}
</style>
<link rel="stylesheet" href="css/docs.css">
</head>
<body>
<header>
<nav class="container">
<a href="../index.html" class="logo">AITBC</a>
<ul class="nav-links">
<li><a href="../index.html">Home</a></li>
<li><a href="index.html">Documentation</a></li>
<li><a href="mailto:aitbc@bubuit.net">Contact</a></li>
</ul>
</nav>
<!-- Header -->
<header class="site-header">
<div class="container">
<div class="header-inner">
<a href="/" class="brand">
<i class="fas fa-cube"></i>
<span>AITBC</span>
</a>
<nav class="header-nav">
<a href="/">Home</a>
<a href="/explorer/">Explorer</a>
<a href="/Exchange/">Exchange</a>
<a href="/docs/index.html" class="active">Docs</a>
<button id="theme-toggle" class="theme-toggle" title="Toggle theme"><i class="fas fa-sun"></i></button>
</nav>
</div>
</div>
</header>
<main>
@@ -237,7 +33,7 @@
<div class="breadcrumb">
<a href="index.html">Documentation</a>
<span></span>
<a href="#">Components</a>
<a href="components.html">Components</a>
<span></span>
<span>Wallet Daemon</span>
</div>
@@ -421,8 +217,9 @@ console.log('Balance:', balance);</code></pre>
<footer>
<div class="container">
<p>&copy; 2025 AITBC. All rights reserved.</p>
<p>&copy; 2026 AITBC. All rights reserved.</p>
</div>
</footer>
<script src="js/theme.js"></script>
</body>
</html>