Files
aitbc/scripts/workflow/24_marketplace_scenario_simple.sh
aitbc1 df3f31b865
All checks were successful
Documentation Validation / validate-docs (push) Successful in 10s
docs: optimize workflow with production deployment scripts and AI marketplace tracking
📋 Workflow Restructuring:
• Add AI prompt and response tracking to marketplace scenario
• Replace immediate actions with production deployment scripts (25-27)
• Add production marketplace testing with real AI integration (30)
• Reorganize short-term goals with operations automation focus
• Add comprehensive testing and deployment automation steps
• Remove redundant inline bash snippets in favor of script references
2026-03-29 19:12:07 +02:00

149 lines
4.4 KiB
Bash
Executable File

#!/bin/bash
# Simplified Marketplace Scenario using existing blockchain endpoints
echo "=== 🛒 SIMPLIFIED MARKETPLACE SCENARIO ==="
echo "Timestamp: $(date)"
echo ""
# Addresses
GENESIS_ADDR="ait1hqpufd2skt3kdhpfdqv7cc3adg6hdgaany343spdlw00xdqn37xsyvz60r"
USER_ADDR="ait1e7d5e60688ff0b4a5c6863f1625e47945d84c94b"
echo "🎯 SIMPLIFIED MARKETPLACE WORKFLOW"
echo "Testing marketplace-like functionality using blockchain"
echo ""
# 1. SIMULATE MARKETPLACE LISTING
echo "1. 📋 SIMULATED GPU LISTING"
echo "=========================="
echo "Creating simulated GPU listing..."
LISTING_ID="gpu_listing_$(date +%s)"
echo "Listing ID: $LISTING_ID"
echo "Title: NVIDIA RTX 4090 GPU"
echo "Price: 100 AIT"
echo "Provider: $GENESIS_ADDR"
# 2. USER BIDDING SIMULATION
echo ""
echo "2. 🎯 USER BIDDING SIMULATION"
echo "============================"
echo "Simulating bid from user $USER_ADDR..."
BID_AMOUNT=100
echo "Bid amount: $BID_AMOUNT AIT"
# Check user balance
USER_BALANCE=$(curl -s "http://localhost:8006/rpc/getBalance/$USER_ADDR" | jq .balance)
echo "User balance: $USER_BALANCE AIT"
if [ "$USER_BALANCE" -lt "$BID_AMOUNT" ]; then
echo "❌ Insufficient balance for bid"
exit 1
fi
echo "✅ User has sufficient balance"
# 3. PROVIDER CONFIRMATION
echo ""
echo "3. ✅ PROVIDER CONFIRMATION"
echo "========================"
echo "Provider confirming bid..."
JOB_ID="job_$(date +%s)"
echo "Job ID: $JOB_ID"
echo "Status: confirmed"
# 4. AI TASK EXECUTION (if available)
echo ""
echo "4. 🤖 AI TASK EXECUTION"
echo "======================"
echo "Attempting AI task submission..."
# Try AI submit endpoint
AI_RESULT=$(curl -s -X POST http://localhost:8006/rpc/ai-submit \
-H "Content-Type: application/json" \
-d "{
\"job_id\": \"$JOB_ID\",
\"task_type\": \"llm_inference\",
\"model\": \"llama2\",
\"prompt\": \"What is blockchain technology?\",
\"parameters\": {
\"max_tokens\": 100,
\"temperature\": 0.7
}
}" 2>/dev/null)
if [ -n "$AI_RESULT" ] && [ "$AI_RESULT" != "null" ] && [ "$AI_RESULT" != '{"detail":"Not Found"}' ]; then
echo "✅ AI task submitted successfully"
echo "Result: $AI_RESULT"
TASK_ID=$(echo "$AI_RESULT" | jq -r .task_id 2>/dev/null || echo "unknown")
else
echo "⚠️ AI endpoint not available, simulating task completion"
TASK_ID="simulated_task_$(date +%s)"
echo "Simulated task ID: $TASK_ID"
fi
# 5. BLOCKCHAIN PAYMENT SIMULATION
echo ""
echo "5. 💰 BLOCKCHAIN PAYMENT"
echo "======================"
echo "Processing payment for completed job..."
# Create payment transaction
PAYMENT_RESULT=$(curl -s -X POST http://localhost:8006/rpc/sendTx \
-H "Content-Type: application/json" \
-d "{
\"type\": \"TRANSFER\",
\"sender\": \"$USER_ADDR\",
\"nonce\": 0,
\"fee\": 5,
\"payload\": {
\"to\": \"$GENESIS_ADDR\",
\"amount\": $BID_AMOUNT
}
}")
echo "Payment result: $PAYMENT_RESULT"
PAYMENT_TX=$(echo "$PAYMENT_RESULT" | jq -r .tx_hash 2>/dev/null || echo "unknown")
echo "Payment transaction: $PAYMENT_TX"
if [ "$PAYMENT_TX" != "unknown" ] && [ "$PAYMENT_TX" != "null" ]; then
echo "✅ Payment transaction created"
# Wait for mining
echo "Waiting for payment to be mined..."
for i in {1..10}; do
TX_STATUS=$(curl -s "http://localhost:8006/rpc/tx/$PAYMENT_TX" | jq -r .block_height 2>/dev/null || echo "pending")
if [ "$TX_STATUS" != "null" ] && [ "$TX_STATUS" != "pending" ]; then
echo "✅ Payment mined in block: $TX_STATUS"
break
fi
sleep 2
done
else
echo "❌ Payment transaction failed"
fi
# 6. FINAL BALANCE VERIFICATION
echo ""
echo "6. 📊 FINAL BALANCE VERIFICATION"
echo "=============================="
# Check final balances
GENESIS_BALANCE=$(curl -s "http://localhost:8006/rpc/getBalance/$GENESIS_ADDR" | jq .balance)
USER_FINAL_BALANCE=$(curl -s "http://localhost:8006/rpc/getBalance/$USER_ADDR" | jq .balance)
echo "Genesis final balance: $GENESIS_BALANCE AIT"
echo "User final balance: $USER_FINAL_BALANCE AIT"
echo ""
echo "=== 🛒 SIMPLIFIED MARKETPLACE SCENARIO COMPLETE ==="
echo ""
echo "✅ SCENARIO RESULTS:"
echo "• Listing ID: $LISTING_ID"
echo "• Job ID: $JOB_ID"
echo "• Task ID: $TASK_ID"
echo "• Payment transaction: $PAYMENT_TX"
echo "• Genesis balance: $GENESIS_BALANCE AIT"
echo "• User balance: $USER_FINAL_BALANCE AIT"
echo ""
echo "🎯 MARKETPLACE WORKFLOW: SIMULATED"