Maya Protocol activity https://gitlab.com/mayachain 2026-03-18T02:43:15Z tag:gitlab.com,2026-03-18:5215464751 Itzamna pushed to project branch feat/go-1.24 at Maya Protocol / MAYANode 2026-03-18T02:43:15Z ahdzib Itzamna

Itzamna (2242c6ea) at 18 Mar 02:43

fix(cardano): wait for cardano-rpc block indexing before ready

tag:gitlab.com,2026-03-18:5215442337 Itzamna approved merge request !7: Add testing infrastructure, integration tests, and Makefile at Maya Protocol / cardano-go 2026-03-18T02:26:46Z ahdzib Itzamna

Summary

  • rpcclient: Add 4 missing endpoint methods (GetLatestBlock, GetTransactionBlock, EstimateFee, PubkeyToAddress) to the HTTP client and interface
  • testdata: Add privnet node config (genesis files, keys, Dockerfile), CI test-runner Dockerfile, and era fixture capture tooling
  • tests: Add integration tests (sync, backfill, all 12 RPC endpoints, full tx lifecycle), preprod nightly tests, and CBOR era fixture deserialization tests
  • CI: Add integration stage with privnet service, preprod scheduled job, and auto-build of test images on testdata/ changes
  • docs: Document integration test setup, preprod tests, fixture capture, and CI pipeline stages
  • Makefile: Centralize build/test/lint/docker commands as single source of truth for local development

Backfill Phase 2 fixes

Three fixes for the backfill block processing pipeline that was hanging with processed_blocks stuck at 0:

1. Remove WithDelayProtocolStart from backfill connections

In full-duplex NtN mode, gouroboros creates DemuxerChannels for all server protocols even with DelayProtocolStart. Without Start(), no goroutine reads from them — after 10 buffered messages the muxer blocks, halting ALL incoming TCP data including BlockFetch responses.

Replace manual Start() calls with auto-start + GetCurrentTip()/Sync() so the node treats workers as synced peers and serves BlockFetch requests.

2. Preserve rollback point and restore minSlot on resume

The Ouroboros ChainSync rollback point is the last common ancestor between forks — it must be preserved, not deleted.

  • Change in-memory prune from slot < to slot <= so the rollback point stays in the buffer
  • Change DB rollback queries from slot >= ? to slot > ? so the rollback point row is kept
  • Restore minSlot from the highest processed point on resume, preventing the forward sync from picking up backfill headers and causing muxer deadlocks

3. SQLite write performance for backfill Phase 2

Phase 1 inserts ~2.4M headers, bloating the WAL to 200+ MB. The query planner chose idx_point_height for UPDATE queries, which degrades to a full table scan when most rows have height = -1.

  • Use INDEXED BY idx_point_hash to force the correct index
  • Add WAL checkpoints on startup, between phases, and periodically during Phase 2
  • Reduce batch size from 10,000 to 1,000 for faster transactions
  • Add _busy_timeout=5000 and reduce wal_autocheckpoint to 1,000 pages

Verification

  • Phase 1 (header collection): ~25 min for 2.39M headers
  • Phase 2 (block processing): ~2.2 hours, peak throughput ~93K blocks/min
  • Forward sync: tracks node tip concurrently with zero errors
  • All tests pass with -race

Commits

tag:gitlab.com,2026-03-18:5215417947 Bitol Maya pushed to project branch master at Maya Protocol / Devops / Node Launcher 2026-03-18T02:10:06Z Bitol Bitol Maya

Bitol Maya (2bf18d46) at 18 Mar 02:10

fix(radix): add StakeSafe community seed node (official seeds down)

... and 1 more commit

tag:gitlab.com,2026-03-18:5215417919 Bitol Maya deleted project branch fix/radix-seed-nodes at Maya Protocol / Devops / Node Launcher 2026-03-18T02:10:06Z Bitol Bitol Maya

Bitol Maya (04cf15be) at 18 Mar 02:10

tag:gitlab.com,2026-03-18:5215417862 Bitol Maya accepted merge request !404: fix(radix): add StakeSafe community seed node (official seeds down) at Maya Protocol / Devops / Node Launcher 2026-03-18T02:10:04Z Bitol Bitol Maya

Official Radix Foundation seed nodes are all unreachable (port 30000 closed, DNS removed) as part of their 2026 infrastructure transition. Added StakeSafe community seed node as primary, keeping official ones as fallback

tag:gitlab.com,2026-03-18:5215417789 Bitol Maya approved merge request !404: fix(radix): add StakeSafe community seed node (official seeds down) at Maya Protocol / Devops / Node Launcher 2026-03-18T02:10:01Z Bitol Bitol Maya

Official Radix Foundation seed nodes are all unreachable (port 30000 closed, DNS removed) as part of their 2026 infrastructure transition. Added StakeSafe community seed node as primary, keeping official ones as fallback

tag:gitlab.com,2026-03-18:5215399545 Itzamna pushed to project branch feat/go-1.24 at Maya Protocol / MAYANode 2026-03-18T02:03:41Z ahdzib Itzamna

Itzamna (909e6c8d) at 18 Mar 02:03

fix(cardano): add missing RpcClient methods to test mock

tag:gitlab.com,2026-03-18:5215348369 Itzamna approved merge request !404: fix(radix): add StakeSafe community seed node (official seeds down) at Maya Protocol / Devops / Node Launcher 2026-03-18T01:31:25Z ahdzib Itzamna

Official Radix Foundation seed nodes are all unreachable (port 30000 closed, DNS removed) as part of their 2026 infrastructure transition. Added StakeSafe community seed node as primary, keeping official ones as fallback

tag:gitlab.com,2026-03-18:5215331951 Itzamna pushed to project branch feat/go-1.24 at Maya Protocol / MAYANode 2026-03-18T01:22:10Z ahdzib Itzamna

Itzamna (2bd32d3e) at 18 Mar 01:22

deps: upgrade cardano-go to MR !7 (backfill fixes, testing infra)

... and 1 more commit

tag:gitlab.com,2026-03-18:5215296419 Itzamna pushed to project branch add-testing-infra-and-makefile at Maya Protocol / cardano-go 2026-03-18T00:57:36Z ahdzib Itzamna

Itzamna (f18b1b16) at 18 Mar 00:57

fix: backfill Phase 2 muxer deadlock, rollback off-by-one, SQLite perf

tag:gitlab.com,2026-03-18:5215292031 Itzamna pushed new project branch fix/backfill-phase2-deadlock-v2 at Maya Protocol / cardano-go 2026-03-18T00:55:53Z ahdzib Itzamna

Itzamna (f35bb68f) at 18 Mar 00:55

fix: backfill Phase 2 muxer deadlock, rollback off-by-one, SQLite perf

... and 14 more commits

tag:gitlab.com,2026-03-17:5215156153 Kukulkan Maya opened merge request !404: fix(radix): add StakeSafe community seed node (official seeds down) at Maya Protocol / Devops / Node Launcher 2026-03-17T23:39:32Z kukulkan04 Kukulkan Maya

Official Radix Foundation seed nodes are all unreachable (port 30000 closed, DNS removed) as part of their 2026 infrastructure transition. Added StakeSafe community seed node as primary, keeping official ones as fallback

tag:gitlab.com,2026-03-17:5214268081 Bitol Maya pushed to project branch fix/swap-queue-ordering at Maya Protocol / MAYANode 2026-03-17T18:28:56Z Bitol Bitol Maya

Bitol Maya (7492a96c) at 17 Mar 18:28

[V129-specific] score streaming swaps by sub-swap size

... and 3 more commits

tag:gitlab.com,2026-03-17:5214247731 Bitol Maya deleted project branch update-zec-ts at Maya Protocol / MAYANode 2026-03-17T18:22:53Z Bitol Bitol Maya

Bitol Maya (94a477c4) at 17 Mar 18:22

tag:gitlab.com,2026-03-17:5214247606 Bitol Maya pushed to project branch develop at Maya Protocol / MAYANode 2026-03-17T18:22:50Z Bitol Bitol Maya

Bitol Maya (c6f57888) at 17 Mar 18:22

[Version-unspecific] Update zec ts #check-lint-warning

tag:gitlab.com,2026-03-17:5214247538 Bitol Maya accepted merge request !651: [Version-unspecific] Update zec ts #check-lint-warning at Maya Protocol / MAYANode 2026-03-17T18:22:49Z Bitol Bitol Maya
  • Test/lint pipeline when directory is edited in MR
  • Deploy pipeline when ts directory is edited so it auto deploys to npmjs when it's merged

Summary by CodeRabbit

  • New Features

    • Pure JavaScript library added with JS transaction builder, signer, RPC helpers, address utilities, and new JS integration & e2e tests.
  • Breaking Changes

    • Package renamed to @mayaprotocol/zcash-js.
    • Public API signatures and types updated (address/UTXO/transaction shapes and function names changed).
  • Build & Infrastructure

    • JS build pipeline added (webpack, TypeScript config, ESLint, npm scripts) and CI jobs for JS testing and publishing.
tag:gitlab.com,2026-03-17:5214146770 rss approved merge request !749: fix: score streaming swaps by sub-swap size in queue ordering at Maya Protocol / MAYANode 2026-03-17T17:54:52Z rss8_8 rss

Summary

  • Score streaming swaps by deposit / remaining_sub_swaps instead of full deposit in scoreMsgs(), preventing large streaming swaps from monopolizing block space
  • Freeze current swap queue logic as V128 and gate new behavior at version 1.129.0

Closes #259

Changes

  1. Freeze V128: Copy current swap queue as manager_swap_queue_v128.go with renamed types
  2. Version gate: Add 1.129.0 entry in GetSwapQueue() switch in managers.go
  3. Core fix: In scoreMsgs(), create a local sourceCoin for streaming swaps that divides the deposit by remaining sub-swaps (Quantity - Count). Uses persisted streaming swap from keeper when available (accurate Count), falls back to msg-based swap for new entries (Count=0)
  4. Tests: TestScoreMsgsStreamingSwap verifies fee-based scoring for streaming vs non-streaming, persisted progress, and Quantity=1 edge case

Key design decisions

  • sourceCoin is a new local variable — does NOT mutate item.msg.Tx.Coins[0] (execution amounts unaffected)
  • remaining > 0 guard prevents division by zero for completed swaps
  • Error from GetStreamingSwap falls back to msg-based swap (conservative scoring)

Test plan

  • TestSwapQueueVCURSuite — all 5 tests pass (4 existing + 1 new)
  • TestSwapQueueV128Suite — all 4 frozen tests pass
  • go build ./x/mayachain/... — clean build

Summary by CodeRabbit

  • Bug Fixes
    • Improved SwapQueue operation handling with version-specific optimizations to ensure compatibility across different protocol versions.
tag:gitlab.com,2026-03-17:5214091744 Bitol Maya commented on merge request !748 at Maya Protocol / MAYANode 2026-03-17T17:38:15Z Bitol Bitol Maya
        deadline := time.Now().Add(5 * time.Minute)
        for {
            if time.Now().After(deadline) {
                log.Fatal().Msg("timed out waiting for cardano to be ready")
            }
            res, err := http.Get(chainRPCs[common.ADAChain] + "/status")
            if err == nil && res.StatusCode == 200 {
                break
            }
            log.Info().Msg("waiting for cardano to be ready")
            time.Sleep(time.Second)
        }

Let's add a timeout for this. Not sure if 5 minutes it's enough.

tag:gitlab.com,2026-03-17:5214011480 Itzamna pushed to project branch feat/go-1.24 at Maya Protocol / MAYANode 2026-03-17T17:16:54Z ahdzib Itzamna

Itzamna (a37f2527) at 17 Mar 17:16

fix(cardano): increase reorgwindow to handle devnet startup rollbacks

tag:gitlab.com,2026-03-17:5213903868 Bitol Maya approved merge request !749: fix: score streaming swaps by sub-swap size in queue ordering at Maya Protocol / MAYANode 2026-03-17T16:50:45Z Bitol Bitol Maya

Summary

  • Score streaming swaps by deposit / remaining_sub_swaps instead of full deposit in scoreMsgs(), preventing large streaming swaps from monopolizing block space
  • Freeze current swap queue logic as V128 and gate new behavior at version 1.129.0

Closes #259

Changes

  1. Freeze V128: Copy current swap queue as manager_swap_queue_v128.go with renamed types
  2. Version gate: Add 1.129.0 entry in GetSwapQueue() switch in managers.go
  3. Core fix: In scoreMsgs(), create a local sourceCoin for streaming swaps that divides the deposit by remaining sub-swaps (Quantity - Count). Uses persisted streaming swap from keeper when available (accurate Count), falls back to msg-based swap for new entries (Count=0)
  4. Tests: TestScoreMsgsStreamingSwap verifies fee-based scoring for streaming vs non-streaming, persisted progress, and Quantity=1 edge case

Key design decisions

  • sourceCoin is a new local variable — does NOT mutate item.msg.Tx.Coins[0] (execution amounts unaffected)
  • remaining > 0 guard prevents division by zero for completed swaps
  • Error from GetStreamingSwap falls back to msg-based swap (conservative scoring)

Test plan

  • TestSwapQueueVCURSuite — all 5 tests pass (4 existing + 1 new)
  • TestSwapQueueV128Suite — all 4 frozen tests pass
  • go build ./x/mayachain/... — clean build

Summary by CodeRabbit

  • Bug Fixes
    • Improved SwapQueue operation handling with version-specific optimizations to ensure compatibility across different protocol versions.