Implement RECEIPT_CLAIM transaction type
Some checks failed
Blockchain Synchronization Verification / sync-verification (push) Successful in 4s
Documentation Validation / validate-docs (push) Successful in 12s
Documentation Validation / validate-policies-strict (push) Successful in 3s
Integration Tests / test-service-integration (push) Failing after 12s
Multi-Node Blockchain Health Monitoring / health-check (push) Successful in 3s
P2P Network Verification / p2p-verification (push) Successful in 2s
Python Tests / test-python (push) Successful in 10s
Security Scanning / security-scan (push) Successful in 31s
Some checks failed
Blockchain Synchronization Verification / sync-verification (push) Successful in 4s
Documentation Validation / validate-docs (push) Successful in 12s
Documentation Validation / validate-policies-strict (push) Successful in 3s
Integration Tests / test-service-integration (push) Failing after 12s
Multi-Node Blockchain Health Monitoring / health-check (push) Successful in 3s
P2P Network Verification / p2p-verification (push) Successful in 2s
Python Tests / test-python (push) Successful in 10s
Security Scanning / security-scan (push) Successful in 31s
- Add status fields to Receipt model (status, claimed_at, claimed_by) - Add RECEIPT_CLAIM handling to state_transition.py with validation and reward minting - Add type field to Transaction model for reliable transaction type storage - Update router to use TransactionRequest model to preserve type field - Update poa.py to extract type from mempool transaction content and store only original payload - Add RECEIPT_CLAIM to GasType enum with gas schedule
This commit is contained in:
@@ -46,6 +46,44 @@ The workflow uses the single central `/etc/aitbc/.env` file as the configuration
|
||||
- **Standard Location**: Config moved to `/etc/aitbc/` following system standards
|
||||
- **CLI Integration**: AITBC CLI tool uses this config file by default
|
||||
|
||||
## Unique Node Identity Configuration
|
||||
|
||||
Each node must have unique `proposer_id` and `p2p_node_id` for proper P2P network operation. The setup scripts automatically generate UUID-based IDs during initial setup.
|
||||
|
||||
### Node Identity Files
|
||||
- `/etc/aitbc/.env` - Contains `proposer_id` for block signing and consensus
|
||||
- `/etc/aitbc/node.env` - Contains `p2p_node_id` for P2P network identity
|
||||
|
||||
### Identity Generation Utility
|
||||
```bash
|
||||
# Generate or update unique node IDs (if missing or duplicate)
|
||||
python3 /opt/aitbc/scripts/utils/generate_unique_node_ids.py
|
||||
|
||||
# Run on all nodes for remediation
|
||||
python3 /opt/aitbc/scripts/utils/generate_unique_node_ids.py
|
||||
ssh aitbc1 'python3 /opt/aitbc/scripts/utils/generate_unique_node_ids.py'
|
||||
ssh gitea-runner 'python3 /opt/aitbc/scripts/utils/generate_unique_node_ids.py'
|
||||
```
|
||||
|
||||
### Verification
|
||||
```bash
|
||||
# Check node IDs are unique across all nodes
|
||||
echo "=== aitbc ==="
|
||||
grep -E "^(proposer_id|p2p_node_id)=" /etc/aitbc/.env /etc/aitbc/node.env
|
||||
|
||||
echo "=== aitbc1 ==="
|
||||
ssh aitbc1 'grep -E "^(proposer_id|p2p_node_id)=" /etc/aitbc/.env /etc/aitbc/node.env'
|
||||
|
||||
echo "=== gitea-runner ==="
|
||||
ssh gitea-runner 'grep -E "^(proposer_id|p2p_node_id)=" /etc/aitbc/.env /etc/aitbc/node.env'
|
||||
```
|
||||
|
||||
### P2P Identity Issues
|
||||
If nodes fail to connect due to duplicate IDs:
|
||||
1. Run the ID generation utility on affected nodes
|
||||
2. Restart P2P services: `systemctl restart aitbc-blockchain-p2p`
|
||||
3. Verify connectivity: `journalctl -u aitbc-blockchain-p2p -n 30`
|
||||
|
||||
## 🚨 Important: Genesis Block Architecture
|
||||
|
||||
**CRITICAL**: Only the genesis authority node (aitbc) should have the genesis block!
|
||||
|
||||
Reference in New Issue
Block a user