مستندات دارا
مرجع فنیشواهد آزمونشواهد
این صفحه فقط به انگلیسی موجود است.

Evidence: Stellar protocol assumptions (spike)

Date: 2026-10-29. Network: Quickstart stellar/quickstart:v689-b1585.1-latest (digest sha256:e05d68bb3b26…), --local, protocol 30, passphrase Standalone Network ; February 2017. SDK: go-stellar-sdk v0.8.0. Program: scripts/spikes/stellar-assumptions/main.go (run: cd scripts/spikes/stellar-assumptions && go run . with Quickstart on :8000).

Every [verify] item in docs/stellar/STELLAR_ARCHITECTURE.md §1, §2, §4, §6, §7 and §8 is covered. Result: 20/20 PASS.

AssumptionCheckResult
A low-weight key reaches only the low thresholdB1, B2, F1: issuance/clawback signed by AUTH (1) or AUTH+H1 (11)Refused at submission (txFAILED / opBAD_AUTH); never enters a ledger, consumes no sequence
2-of-4 humans issue and claw backB3, F2Applied
Channel as tx source, issuer/Treasury/customer as op sourceA, B3, BUY, SELL, TRANSFERApplied; issuer sequence untouched
Sponsored custodial account in one txCCustomer XLM = 0; one signer (CUSTODY); master 0; numSponsored = 4; trustline flags = 5 (authorized + clawback enabled)
Clawback flag inherited by new trustlinesA, Cflags = 5
In-ledger failure consumes the sequenceDchannel seq +1; PAYMENT_NOT_AUTHORIZED
Freeze = revoke authorizationE1–E3Frozen account cannot send (PAYMENT_SRC_NOT_AUTHORIZED); re-authorization restores
Burn = payment to the issuerGSupply −100,000
Expired envelope can never applyHtxTOO_LATE
SDK refuses missing time boundsItxnbuild error
Supply from the closed holder setfinal899,995 = 1,000,000 − 100,000 − 5

Raw output

[PASS] ceremony: flags, signers, thresholds, master 0                 status=SUCCESS code=TransactionResultCodeTxSuccess SetOptions SetOptions SetOptions SetOptions SetOptions SetOptions SetOptions
[PASS] cold+hot trustlines                                            status=SUCCESS code=TransactionResultCodeTxSuccess ChangeTrust ChangeTrust SetOptions SetOptions
[PASS] A: AUTH key authorizes COLD+HOT (channel source, op source issuer) status=SUCCESS code=TransactionResultCodeTxSuccess SetTrustLineFlags SetTrustLineFlags
       COLD trustline flags=5 (1=authorized, 4=clawback enabled)
[PASS] B1: issue signed by AUTH + H1 (weight 11 < 20) is refused      status=ERROR code=TransactionResultCodeTxFailed op:OperationResultCodeOpBadAuth
[PASS] B2: issue signed by AUTH alone is refused                      status=ERROR code=TransactionResultCodeTxFailed op:OperationResultCodeOpBadAuth
[PASS] B3: issue 1,000,000 signed by H1 + H2                          status=SUCCESS code=TransactionResultCodeTxSuccess pay:PaymentResultCodePaymentSuccess
[PASS] C: sponsored account + trustline + custody signer + authorize  status=SUCCESS code=TransactionResultCodeTxSuccess BeginSponsoringFutureReserves CreateAccount ChangeTrust SetOptions SetOptions EndSponsoringFutureReserves SetTrustLineFlags
[PASS] C: sponsored account + trustline + custody signer + authorize  status=SUCCESS code=TransactionResultCodeTxSuccess BeginSponsoringFutureReserves CreateAccount ChangeTrust SetOptions SetOptions EndSponsoringFutureReserves SetTrustLineFlags
       customer XLM=0 stroops, signers=1, master=0, numSponsored=4, trustline flags=5
[PASS] refill COLD→HOT 10,000                                         status=SUCCESS code=TransactionResultCodeTxSuccess pay:PaymentResultCodePaymentSuccess
[PASS] BUY: HOT→A 100 (signed channel + HOT key)                      status=SUCCESS code=TransactionResultCodeTxSuccess pay:PaymentResultCodePaymentSuccess
[PASS] TRANSFER: A→B 20 (CUSTODY key)                                 status=SUCCESS code=TransactionResultCodeTxSuccess pay:PaymentResultCodePaymentSuccess
[PASS] SELL: A→HOT 30 (CUSTODY key)                                   status=SUCCESS code=TransactionResultCodeTxSuccess pay:PaymentResultCodePaymentSuccess
[PASS] D: HOT→stranger (not authorized) fails in ledger               status=FAILED code=TransactionResultCodeTxFailed pay:PaymentResultCodePaymentNotAuthorized
       channel seq before=1335734829061 after=1335734829062 (consumed=true)
[PASS] E1: AUTH revokes A                                             status=SUCCESS code=TransactionResultCodeTxSuccess SetTrustLineFlags
[PASS] E2: frozen A cannot send                                       status=FAILED code=TransactionResultCodeTxFailed pay:PaymentResultCodePaymentSrcNotAuthorized
[PASS] E3: AUTH re-authorizes A                                       status=SUCCESS code=TransactionResultCodeTxSuccess SetTrustLineFlags
[PASS] F1: clawback signed by AUTH is refused                         status=ERROR code=TransactionResultCodeTxFailed op:OperationResultCodeOpBadAuth
[PASS] F2: clawback 5 from B signed by H3 + H4                        status=SUCCESS code=TransactionResultCodeTxSuccess claw:ClawbackResultCodeClawbackSuccess
[PASS] G: burn 100,000 COLD→issuer                                    status=SUCCESS code=TransactionResultCodeTxSuccess pay:PaymentResultCodePaymentSuccess
[PASS] H: envelope submitted after maxTime is refused                 status=ERROR code=TransactionResultCodeTxTooLate
[INFO] txnbuild without timebounds: err=invalid preconditions: timebounds must be constructed using NewTimebounds(), NewTimeout(), or NewInfiniteTimeout()
       COLD  890000.0000000
       HOT   9930.0000000
       A     50.0000000
       B     15.0000000
       supply(closed holder set) = 899995.0000000   expected 1,000,000 - 100,000 - 5 = 899,995

در این صفحه