View Issue Details

IDProjectCategoryView StatusLast Update
0010735Talersandcastle (containerized demo deployment)public2025-12-21 20:46
ReporterBohdan Assigned ToFlorian Dold Resolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicator 
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionno change required 
Target Version1.3Fixed in Version1.3 
Summary0010735: Default setup of the sandcastle results in the incorrect creation of the merchant
DescriptionI have build and run a sandcastle from demo-12 tag, then tried to pay the order on the newly created merchant, and it failed with next error

2025-12-04T20:23:33.089Z pay-merchant.ts INFO insufficient balance details: {
  "amountRequested": "KUDOS:5",
  "wireMethod": "x-taler-bank",
  "causeHint": "merchant-accept-insufficient",
  "balanceAgeAcceptable": "KUDOS:20",
  "balanceAvailable": "KUDOS:20",
  "balanceMaterial": "KUDOS:20",
  "balanceReceiverAcceptable": "KUDOS:20",
  "balanceExchangeDepositable": "KUDOS:20",
  "balanceReceiverDepositable": "KUDOS:20",
  "maxEffectiveSpendAmount": "KUDOS:20",
  "perExchange": {
    "https://exchange.demo.taler.net/": {
      "balanceAvailable": "KUDOS:20",
      "balanceMaterial": "KUDOS:20",
      "balanceExchangeDepositable": "KUDOS:20",
      "balanceAgeAcceptable": "KUDOS:20",
      "balanceReceiverAcceptable": "KUDOS:20",
      "balanceReceiverDepositable": "KUDOS:20",
      "maxEffectiveSpendAmount": "KUDOS:20",
      "missingGlobalFees": false,
      "causeHint": "merchant-accept-insufficient"
    }
  }
}

After further investigation, it was found that the keys of the exchanges have mismatch
the one received with contract
exchanges: [
    {
      master_pub: 'SFJ6CEK7VDWXD5TXVYAHY15WQ2SPYNC26SCAGAQYR050KWCER3BG',
      priority: 1024,
      url: 'https://exchange.demo.taler.net/',
      max_contribution: 'KUDOS:5'
    }
  ],

and the real one
curl -s https://exchange.demo.taler.net/keys | jq .master_public_key
"F80MFRG8HVH6R9CQ47KRFQSJP3T6DBJ4K1D9B703RJY3Z39TBMJ0"
Steps To ReproduceI assume if you try to build and run the sandcastle on the demo-12 tag, and then try to create and pay the order, you will get the same thing, except the actual demo.taler.net, as it will get the key from the exchange.demo.taler.net located in the same place...
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Activities

Florian Dold

2025-12-10 10:53

manager   ~0026859

This is not a bug!

When you run sandcastle with the default settings, it creates a deployment that looks exactly like demo.taler.net, *including* the domain names, but *excluding* the key material (only available on the actual demo.taler.net server).

If you first run the sandcastle in "demo" mode and then switch to some other domain (like taler.localhost), the merchant will already have the *container-internal* exchange.demo.taler.net key. There's not really any way around it, since it's a fundamental feature of sandcastle to provide the demo.taler.net setup (but also self-contained from inside the container, so we're pointing *.demo.taler.net to localhost *within* the container).

Issue History

Date ModifiedUsernameFieldChange
2025-12-05 11:10BohdanNew Issue
2025-12-05 11:10BohdanStatusnew => assigned
2025-12-05 11:10BohdanAssigned To => Florian Dold
2025-12-07 10:05Christian GrothoffTarget Version => 1.5
2025-12-10 10:53Florian DoldNote Added: 0026859
2025-12-10 10:54Florian DoldStatusassigned => informing
2025-12-10 10:54Florian DoldResolutionopen => no change required
2025-12-15 10:45Christian GrothoffTarget Version1.5 => 1.3
2025-12-15 10:46Christian GrothoffFixed in Version => 1.3
2025-12-21 20:46Christian GrothoffStatusinforming => closed