All checks were successful
Documentation Validation / validate-docs (push) Successful in 10s
📋 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
149 lines
4.4 KiB
Bash
Executable File
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"
|