From ed2f215ec9be12ad9f773a6ef7ae28eb18b55e31 Mon Sep 17 00:00:00 2001 From: Loredana Cirstea Date: Sat, 27 Dec 2025 18:57:25 +0100 Subject: [PATCH 01/10] kayros init --- .gitignore | 1 + .../tinygo/wasmx-kayrosp2p-lib/README.md | 21 + .../tinygo/wasmx-kayrosp2p-lib/cmd/main.go | 286 ++++++ .../wasmx-kayrosp2p-lib/diagram/def.json | 1 + .../tinygo/wasmx-kayrosp2p-lib/diagram/def.ts | 371 +++++++ .../tinygo/wasmx-kayrosp2p-lib/go.mod | 67 ++ .../tinygo/wasmx-kayrosp2p-lib/go.sum | 12 + .../tinygo/wasmx-kayrosp2p-lib/lib/actions.go | 912 ++++++++++++++++++ .../tinygo/wasmx-kayrosp2p-lib/lib/kayros.go | 210 ++++ .../tinygo/wasmx-kayrosp2p-lib/lib/storage.go | 1 + .../tinygo/wasmx-kayrosp2p-lib/lib/types.go | 139 +++ .../tinygo/wasmx-kayrosp2p-lib/lib/utils.go | 25 + 12 files changed, 2046 insertions(+) create mode 100644 tests/testdata/tinygo/wasmx-kayrosp2p-lib/README.md create mode 100644 tests/testdata/tinygo/wasmx-kayrosp2p-lib/cmd/main.go create mode 100644 tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.json create mode 100644 tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.ts create mode 100644 tests/testdata/tinygo/wasmx-kayrosp2p-lib/go.mod create mode 100644 tests/testdata/tinygo/wasmx-kayrosp2p-lib/go.sum create mode 100644 tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go create mode 100644 tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/kayros.go create mode 100644 tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/storage.go create mode 100644 tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/types.go create mode 100644 tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/utils.go diff --git a/.gitignore b/.gitignore index 876c1b9b..2ad5b372 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ event.json private.md .claude/ tests/codes_compiled/ +private diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/README.md b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/README.md new file mode 100644 index 00000000..0061784f --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/README.md @@ -0,0 +1,21 @@ +# Kayros Consensus + +A new type of consensus based on our Kayros indexer. Each node will be initialized with a Kayros gateway url. The Kayros indexer is the one who orders transactions and gives them a timestamp. So, the node/validator sends the user transaction to Kayros and gets a Kayros record that is should also include in the block. And will use this Kayros order to order the transactions in a block. + +Nodes therefore can produce blocks continuously. There is no Leader, because Kayros is the only source of truth. We will only check that nodes are in sync by propagating the block hashes and then comparing them per block. If a node sees > x% (e.g. 50%) of nodes having a different block hash, it will revert its blocks and take them from the validators with the majority. And then continue the protocol. + +## Protocol + +User sends the transaction to the node. The node adds the transaction to the mempool, registers it with Kayros if it was not registered. And forwards it to other nodes. + +Block production: +- get max `x` records with data_type `wasmx_` since the previous record hash +- match records with mempool transactions +- if a record does not have a transaction, ask the other validators for the missing txs +- if tx does not appear in x time, produce block without it +- after block is produced, the block hash and txhash list is sent to the other nodes + +Block check: +- block hashes are coming in our KAYROS_BLOCKHASH_CHATROOM and we keep them in a mapping block_number => []BlockHash , with hash and validator address; when we have > 2/3 we check if the hash matches our hash, if not, we rollback the blocks until that block and ask the validators with correct hash for the block. +- only after this check do we consider the block truly finalized, even though the probability of producing a bad block is low (only when txs don't arrive in the mempool due to a bad actor) + diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/cmd/main.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/cmd/main.go new file mode 100644 index 00000000..923ff4c4 --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/cmd/main.go @@ -0,0 +1,286 @@ +package main + +import ( + "encoding/json" + "fmt" + "os" + + wasmx "github.com/loredanacirstea/wasmx-env/lib" + fsm "github.com/loredanacirstea/wasmx-fsm/lib" + lib "github.com/loredanacirstea/wasmx-kayrosp2p-lib/lib" + raft "github.com/loredanacirstea/wasmx-raft-lib/lib" + raftp2p "github.com/loredanacirstea/wasmx-raftp2p-lib/lib" +) + +//go:wasm-module wasmx +//export memory_ptrlen_i64_1 +func Memory_ptrlen_i64_1() {} + +//go:wasm-module wasmx +//export wasmx_env_i64_2 +func Wasmx_env_i64_2() {} + +//go:wasm-module consensus +//export wasmx_consensus_json_i64_1 +func Wasmx_consensus_json_i64_1() {} + +//go:wasm-module wasmxcore +//export wasmx_env_core_i64_1 +func Wasmx_env_core_i64_1() {} + +//go:wasm-module crosschain +//export wasmx_crosschain_json_i64_1 +func Wasmx_crosschain_json_i64_1() {} + +//go:wasm-module multichain +//export wasmx_multichain_json_i64_1 +func Wasmx_multichain_json_i64_1() {} + +//go:wasm-module p2p +//export wasmx_p2p_json_i64_1 +func Wasmx_p2p_json_i64_1() {} + +//go:wasm-module wasmxcore +//export wasmx_nondeterministic_1 +func Wasmx_nondeterministic_1() {} + +//go:wasm-module wasmx-raftp2p +//export instantiate +func Instantiate() {} + +func main() { + entrypoint := os.Getenv("ENTRY_POINT") + lib.LoggerDebugExtended("fsm: ENTRY_POINT: "+entrypoint, nil) + // these entrypoints are internal by default + switch entrypoint { + case "instantiate": + databz := wasmx.GetCallData() + var msg lib.InstantiateMsg + if err := json.Unmarshal(databz, &msg); err != nil { + wasmx.Revert([]byte("invalid instantiate message: " + err.Error())) + return + } + + // Initialize Kayros client with the provided API URL + config := lib.KayrosConfig{ + ApiBaseUrl: msg.KayrosApiUrl, + } + if err := lib.InitializeKayrosClient(config); err != nil { + wasmx.Revert([]byte("failed to initialize Kayros client: " + err.Error())) + return + } + + // Store consensus configuration + consensusConfig := lib.ConsensusConfig{ + ThresholdCommit: msg.ThresholdCommit, + ThresholdFinalize: msg.ThresholdFinalize, + GenesisUUID: msg.GenesisUUID, + } + // Set defaults if not provided + if consensusConfig.ThresholdCommit == 0 { + consensusConfig.ThresholdCommit = 51 + } + if consensusConfig.ThresholdFinalize == 0 { + consensusConfig.ThresholdFinalize = 75 + } + if err := lib.SetConsensusConfig(consensusConfig); err != nil { + wasmx.Revert([]byte("failed to set consensus config: " + err.Error())) + return + } + + // Set genesis UUID as initial last UUID if provided + if msg.GenesisUUID != "" { + lib.SetLastKayrosUUID(msg.GenesisUUID) + } + + lib.LoggerInfo("Kayros client initialized", []string{ + "api_url", msg.KayrosApiUrl, + "genesis_uuid", msg.GenesisUUID, + "threshold_commit", fmt.Sprintf("%d", consensusConfig.ThresholdCommit), + "threshold_finalize", fmt.Sprintf("%d", consensusConfig.ThresholdFinalize), + }) + wasmx.Finish([]byte{}) + return + } + + // Only internal + wasmx.OnlyInternal(raftp2p.MODULE_NAME, "") + + databz := wasmx.GetCallData() + var calld fsm.ExternalActionCallData + if err := json.Unmarshal(databz, &calld); err != nil { + raftp2p.Revert("invalid call data: " + err.Error() + ": " + string(databz)) + return + } + + // Helper to read params from event + get := func(key string) string { + for _, p := range calld.Event.Params { + if p.Key == key { + return p.Value + } + } + for _, p := range calld.Params { + if p.Key == key { + return p.Value + } + } + return "" + } + + // Route methods + switch calld.Method { + case "ifNodeIsValidator": + ok, err := raftp2p.IfNodeIsValidator(calld.Params, calld.Event) + if err != nil { + raftp2p.Revert(err.Error()) + return + } + res := raft.WrapGuard(ok) + wasmx.Finish(res) + return + case "ifNewTransaction": + ok, err := raftp2p.IfNewTransaction(calld.Params, calld.Event) + if err != nil { + raftp2p.Revert(err.Error()) + return + } + res := raft.WrapGuard(ok) + wasmx.Finish(res) + return + case "setupNode": + if err := raftp2p.SetupNode(calld.Params, calld.Event); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "connectPeers": + st, err := raft.GetCurrentState() + if err != nil { + raftp2p.Revert(err.Error()) + return + } + if err := raftp2p.ConnectPeersInternal(raftp2p.GetProtocolIdFromState(st)); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "connectRooms": + if err := raftp2p.ConnectRooms(); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "registerWithKayros": + err := lib.RegisterWithKayros(calld.Params, calld.Event) + if err != nil { + raftp2p.Revert(err.Error()) + return + } + case "getKayrosTxs": + err := lib.GetKayrosTxs(calld.Params, calld.Event) + if err != nil { + raftp2p.Revert(err.Error()) + return + } + case "forwardMsgToChat": + if err := raftp2p.ForwardMsgToChat(calld.Params, calld.Event); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "requestBlockSync": + if err := raftp2p.RequestBlockSync(); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "receiveStateSyncRequest": + entry := get("entry") + sig := get("signature") + sender := get("sender") + if err := raftp2p.ReceiveStateSyncRequest(entry, sig, wasmx.Bech32String(sender)); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "receiveStateSyncResponse": + entry := get("entry") + sender := get("sender") + if err := raftp2p.ReceiveStateSyncResponse(entry, sender); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "receiveUpdateNodeResponse": + entry := get("entry") + sig := get("signature") + sender := get("sender") + if err := raftp2p.ReceiveUpdateNodeResponse(entry, sig, wasmx.Bech32String(sender)); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "receiveCommit": + if err := lib.ReceiveCommit(calld.Params, calld.Event); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "receiveMissingTransactions": + if err := lib.ReceiveMissingTransactions(calld.Params, calld.Event); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "receiveMissingTransactionsRequest": + if err := lib.ReceiveMissingTransactionsRequest(calld.Params, calld.Event); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "ifAllTransactions": + ok := lib.IfAllTransactions(nil, calld.Event) + res := raft.WrapGuard(ok) + wasmx.Finish(res) + return + case "sendNewTransactionResponse": + if err := raft.SendNewTransactionResponse(nil, fsm.EventObject{}); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "addToMempool": + if err := raftp2p.AddToMempool(calld.Params, calld.Event); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "updateNodeAndReturn": + if err := raftp2p.UpdateNodeAndReturn(calld.Params, calld.Event); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "registerValidatorWithNetwork": + if err := raftp2p.RegisterValidatorWithNetwork(nil, fsm.EventObject{}); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "setup": + if err := raft.Setup(calld.Params, calld.Event); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "bootstrapAfterStateSync": + if err := raft.BootstrapAfterStateSync(calld.Params, calld.Event); err != nil { + raftp2p.Revert("bootstrapAfterStateSync failed: " + err.Error()) + return + } + case "commitAfterStateSync": + if err := raft.CommitAfterStateSync(calld.Params, calld.Event); err != nil { + raftp2p.Revert("commitAfterStateSync failed: " + err.Error()) + return + } + case "VerifyCommitLight": + if err := lib.VerifyCommitLight(calld.Params, calld.Event); err != nil { + raftp2p.Revert("VerifyCommitLight failed: " + err.Error()) + return + } + case "rollback": + if err := raft.Rollback(calld.Params, calld.Event); err != nil { + raftp2p.Revert("Rollback failed: " + err.Error()) + return + } + default: + wasmx.Revert(append([]byte("invalid function call data: "), databz...)) + return + } + wasmx.Finish(wasmx.GetFinishData()) +} diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.json b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.json new file mode 100644 index 00000000..34a4cddb --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.json @@ -0,0 +1 @@ +{"context":[{"key":"log","value":""},{"key":"votedFor","value":"0"},{"key":"nextIndex","value":"[]"},{"key":"currentTerm","value":"0"},{"key":"blockTimeout","value":"roundTimeout"},{"key":"max_tx_bytes","value":"65536"},{"key":"roundTimeout","value":4000},{"key":"currentNodeId","value":"0"},{"key":"max_block_gas","value":"20000000"},{"key":"timeoutPrevote","value":3000},{"key":"timeoutPropose","value":3000},{"key":"timeoutPrecommit","value":3000}],"id":"Kayros-P2P-1","initial":"uninitialized","states":[{"name":"uninitialized","after":[],"always":[],"on":[{"name":"initialize","transitions":[{"target":"#Kayros-P2P-1.initialized","guard":null,"actions":[],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"initialized","after":[],"always":[],"on":[],"entry":[],"exit":[],"initial":"unstarted","states":[{"name":"unstarted","after":[],"always":[],"on":[{"name":"setupNode","transitions":[{"target":"#Kayros-P2P-1.initialized.unstarted","guard":null,"actions":[{"type":"setupNode","params":[]}],"meta":[]}]},{"name":"prestart","transitions":[{"target":"#Kayros-P2P-1.initialized.prestart","guard":null,"actions":[],"meta":[]}]},{"name":"setup","transitions":[{"target":"#Kayros-P2P-1.initialized.unstarted","guard":null,"actions":[{"type":"setup","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"#Kayros-P2P-1.initialized.started","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"prestart","after":[{"name":"500","transitions":[{"target":"#Kayros-P2P-1.initialized.started","guard":null,"actions":[],"meta":[]}]}],"always":[],"on":[],"entry":[],"exit":[],"initial":"","states":[]},{"name":"started","after":[],"always":[],"on":[{"name":"newTransaction","transitions":[{"target":"","guard":{"type":"ifNewTransaction","params":[]},"actions":[{"type":"addToMempool","params":[]},{"type":"registerWithKayros","params":[]},{"type":"sendNewTransactionResponse","params":[]},{"type":"forwardMsgToChat","params":[{"key":"protocolId","value":"mempool"}]}],"meta":[]}]},{"name":"receiveStateSyncRequest","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncRequest","params":[]}],"meta":[]}]},{"name":"receiveMissingTransactionsRequest","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveMissingTransactionsRequest","params":[]}],"meta":[]}]},{"name":"updateNode","transitions":[{"target":"","guard":null,"actions":[{"type":"updateNodeAndReturn","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"Node","states":[{"name":"Node","after":[],"always":[{"name":"always","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator","actions":[{"type":"registerValidatorWithNetwork","params":[]}],"guard":{"type":"ifNodeIsValidator","params":[]},"meta":[]}]}],"on":[{"name":"becomeValidator","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator","guard":null,"actions":[{"type":"registerValidatorWithNetwork","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveStateSyncResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncResponse","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveCommit","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveCommit","params":[]}],"meta":[]}]},{"name":"receiveUpdateNodeResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeResponse","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"Validator","after":[],"always":[],"on":[{"name":"stop","transitions":[{"target":"#Kayros-P2P-1.stopped","guard":null,"actions":[],"meta":[]}]},{"name":"receiveUpdateNodeResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeResponse","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"registerValidatorWithNetwork","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveCommit","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveCommit","params":[]}],"meta":[]}]},{"name":"receiveUpdateNodeRequest","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeRequest","params":[]}],"meta":[]}]},{"name":"receiveStateSyncResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncResponse","params":[]},{"type":"requestValidatorNodeInfoIfSynced","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"active","states":[{"name":"active","after":[],"always":[{"name":"always","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.propose","guard":{"type":"ifAllTransactions","params":[]},"actions":[],"meta":[]}]}],"on":[{"name":"receiveMissingTransactions","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.active","guard":null,"actions":[{"type":"receiveMissingTransactions","params":[]}],"meta":[]}]}],"entry":[{"type":"getKayrosTxs","params":[]}],"exit":[],"initial":"","states":[]},{"name":"propose","after":[{"name":"timeoutCommit","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.active","guard":null,"actions":[],"meta":[]}]}],"always":[],"on":[],"entry":[{"type":"commitBlock","params":[]},{"type":"sendCommit","params":[]},{"type":"cancelActiveIntervals","params":[{"key":"after","value":"timeoutCommit"}]}],"exit":[],"initial":"","states":[]}]}]}]},{"name":"stopped","after":[],"always":[],"on":[{"name":"restart","transitions":[{"target":"#Kayros-P2P-1.initialized.unstarted","guard":null,"actions":[],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]}]} diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.ts b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.ts new file mode 100644 index 00000000..314f6288 --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.ts @@ -0,0 +1,371 @@ +import { createMachine } from "xstate"; + +export const machine = createMachine({ + context: { + log: "", + votedFor: "0", + nextIndex: "[]", + currentTerm: "0", + blockTimeout: "roundTimeout", + max_tx_bytes: "65536", + roundTimeout: 4000, + currentNodeId: "0", + max_block_gas: "20000000", + timeoutPrevote: 3000, + timeoutPropose: 3000, + timeoutPrecommit: 3000, + }, + id: "Kayros-P2P-1", + initial: "uninitialized", + states: { + uninitialized: { + on: { + initialize: { + target: "initialized", + }, + }, + }, + initialized: { + initial: "unstarted", + states: { + unstarted: { + on: { + setupNode: { + target: "unstarted", + actions: { + type: "setupNode", + }, + }, + prestart: { + target: "prestart", + }, + setup: { + target: "unstarted", + actions: { + type: "setup", + }, + }, + start: { + target: "started", + actions: [ + { + type: "connectPeers", + }, + { + type: "connectRooms", + }, + { + type: "requestBlockSync", + }, + ], + }, + }, + }, + prestart: { + after: { + "500": { + target: "started", + }, + }, + }, + started: { + initial: "Node", + on: { + newTransaction: { + actions: [ + { + type: "addToMempool", + }, + { + type: "registerWithKayros", + }, + { + type: "sendNewTransactionResponse", + }, + { + type: "forwardMsgToChat", + params: { + protocolId: "mempool", + }, + }, + ], + guard: { + type: "ifNewTransaction", + }, + }, + receiveStateSyncRequest: { + actions: { + type: "receiveStateSyncRequest", + }, + }, + updateNode: { + actions: { + type: "updateNodeAndReturn", + }, + }, + }, + states: { + Node: { + on: { + becomeValidator: { + target: "Validator", + actions: [ + { + type: "registerValidatorWithNetwork", + }, + { + type: "requestBlockSync", + }, + ], + }, + receiveStateSyncResponse: { + actions: { + type: "receiveStateSyncResponse", + }, + }, + start: { + actions: [ + { + type: "connectPeers", + }, + { + type: "connectRooms", + }, + { + type: "requestBlockSync", + }, + ], + }, + receiveCommit: { + actions: { + type: "receiveCommit", + }, + }, + receiveUpdateNodeResponse: { + actions: { + type: "receiveUpdateNodeResponse", + }, + }, + }, + always: { + target: "Validator", + actions: { + type: "registerValidatorWithNetwork", + }, + guard: { + type: "ifNodeIsValidator", + }, + }, + }, + Validator: { + initial: "active", + on: { + stop: { + target: "#Kayros-P2P-1.stopped", + }, + receiveUpdateNodeResponse: { + actions: { + type: "receiveUpdateNodeResponse", + }, + }, + start: { + target: "Validator", + actions: [ + { + type: "connectPeers", + }, + { + type: "connectRooms", + }, + { + type: "registerValidatorWithNetwork", + }, + { + type: "requestBlockSync", + }, + ], + }, + receiveCommit: { + actions: { + type: "receiveCommit", + }, + description: + "Receive the block hashes from other validators and finalize the block. Rollback if 2/3 with another hash.", + }, + receiveUpdateNodeRequest: { + actions: { + type: "receiveUpdateNodeRequest", + }, + }, + receiveStateSyncResponse: { + actions: [ + { + type: "receiveStateSyncResponse", + }, + { + type: "requestValidatorNodeInfoIfSynced", + }, + ], + }, + }, + states: { + active: { + on: { + receiveMissingTransactions: { + target: "active", + actions: { + type: "receiveMissingTransactions", + }, + }, + }, + always: { + target: "propose", + guard: { + type: "ifAllTransactions", + }, + }, + entry: { + type: "getKayrosTxs", + }, + }, + propose: { + after: { + timeoutCommit: { + target: "active", + }, + }, + entry: [ + { + type: "commitBlock", + }, + { + type: "sendCommit", + }, + { + type: "cancelActiveIntervals", + params: { + after: "timeoutCommit", + }, + }, + ], + }, + }, + }, + }, + }, + }, + }, + stopped: { + on: { + restart: { + target: "#Kayros-P2P-1.initialized.unstarted", + }, + }, + }, + }, +}).withConfig({ + actions: { + getKayrosTxs: function (context, event) { + // Add your action code here + // ... + }, + commitBlock: function (context, event) { + // Add your action code here + // ... + }, + sendCommit: function (context, event) { + // Add your action code here + // ... + }, + cancelActiveIntervals: function (context, event) { + // Add your action code here + // ... + }, + setupNode: function (context, event) { + // Add your action code here + // ... + }, + addToMempool: function (context, event) { + // Add your action code here + // ... + }, + registerWithKayros: function (context, event) { + // Add your action code here + // ... + }, + sendNewTransactionResponse: function (context, event) { + // Add your action code here + // ... + }, + forwardMsgToChat: function (context, event) { + // Add your action code here + // ... + }, + setup: function (context, event) { + // Add your action code here + // ... + }, + receiveUpdateNodeResponse: function (context, event) { + // Add your action code here + // ... + }, + receiveStateSyncRequest: function (context, event) { + // Add your action code here + // ... + }, + updateNodeAndReturn: function (context, event) { + // Add your action code here + // ... + }, + registerValidatorWithNetwork: function (context, event) { + // Add your action code here + // ... + }, + requestBlockSync: function (context, event) { + // Add your action code here + // ... + }, + receiveStateSyncResponse: function (context, event) { + // Add your action code here + // ... + }, + connectPeers: function (context, event) { + // Add your action code here + // ... + }, + connectRooms: function (context, event) { + // Add your action code here + // ... + }, + receiveCommit: function (context, event) { + // Add your action code here + // ... + }, + receiveUpdateNodeRequest: function (context, event) { + // Add your action code here + // ... + }, + requestValidatorNodeInfoIfSynced: function (context, event) { + // Add your action code here + // ... + }, + receiveMissingTransactions: function (context, event) { + // Add your action code here + // ... + }, + }, + guards: { + ifNewTransaction: function (context, event) { + // Add your guard condition here + return true; + }, + ifNodeIsValidator: function (context, event) { + // Add your guard condition here + return true; + }, + ifAllTransactions: function (context, event) { + // Add your guard condition here + return true; + }, + }, +}); diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/go.mod b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/go.mod new file mode 100644 index 00000000..de46dbd5 --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/go.mod @@ -0,0 +1,67 @@ +module github.com/loredanacirstea/wasmx-kayrosp2p-lib + +go 1.24 + +toolchain go1.24.4 + +require github.com/loredanacirstea/wasmx-env v0.0.0 + +require github.com/loredanacirstea/wasmx-fsm v0.0.0 + +require github.com/loredanacirstea/wasmx-env-core v0.0.0 // indirect + +require github.com/loredanacirstea/wasmx-env-consensus v0.0.0 + +require github.com/loredanacirstea/wasmx-env-crosschain v0.0.0 // indirect + +require github.com/loredanacirstea/wasmx-staking v0.0.0 + +require github.com/loredanacirstea/wasmx-consensus-utils v0.0.0 + +require github.com/loredanacirstea/wasmx-blocks v0.0.0 + +require github.com/loredanacirstea/wasmx-env-multichain v0.0.0 + +require github.com/loredanacirstea/wasmx-raft-lib v0.0.0 +require github.com/loredanacirstea/wasmx-raftp2p-lib v0.0.0 + +require ( + cosmossdk.io/math v1.5.3 + github.com/loredanacirstea/wasmx-env-p2p v0.0.0 + github.com/loredanacirstea/wasmx-env-httpclient v0.0.0 +) + +require ( + github.com/loredanacirstea/wasmx-env-utils v0.0.0 // indirect + github.com/loredanacirstea/wasmx-utils v0.0.0 // indirect +) + +replace github.com/loredanacirstea/wasmx-env v0.0.0 => ../wasmx-env + +replace github.com/loredanacirstea/wasmx-env-utils v0.0.0 => ../wasmx-env-utils + +replace github.com/loredanacirstea/wasmx-utils v0.0.0 => ../wasmx-utils + +replace github.com/loredanacirstea/wasmx-fsm v0.0.0 => ../wasmx-fsm + +replace github.com/loredanacirstea/wasmx-env-core v0.0.0 => ../wasmx-env-core + +replace github.com/loredanacirstea/wasmx-env-crosschain v0.0.0 => ../wasmx-env-crosschain + +replace github.com/loredanacirstea/wasmx-env-consensus v0.0.0 => ../wasmx-env-consensus + +replace github.com/loredanacirstea/wasmx-staking v0.0.0 => ../wasmx-staking + +replace github.com/loredanacirstea/wasmx-consensus-utils v0.0.0 => ../wasmx-consensus-utils + +replace github.com/loredanacirstea/wasmx-blocks v0.0.0 => ../wasmx-blocks + +replace github.com/loredanacirstea/wasmx-env-multichain v0.0.0 => ../wasmx-env-multichain + +replace github.com/loredanacirstea/wasmx-raft-lib v0.0.0 => ../wasmx-raft-lib + +replace github.com/loredanacirstea/wasmx-raftp2p-lib v0.0.0 => ../wasmx-raftp2p-lib + +replace github.com/loredanacirstea/wasmx-env-p2p v0.0.0 => ../wasmx-env-p2p + +replace github.com/loredanacirstea/wasmx-env-httpclient v0.0.0 => ../wasmx-env-httpclient diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/go.sum b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/go.sum new file mode 100644 index 00000000..18cf05fc --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/go.sum @@ -0,0 +1,12 @@ +cosmossdk.io/math v1.5.3 h1:WH6tu6Z3AUCeHbeOSHg2mt9rnoiUWVWaQ2t6Gkll96U= +cosmossdk.io/math v1.5.3/go.mod h1:uqcZv7vexnhMFJF+6zh9EWdm/+Ylyln34IvPnBauPCQ= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go new file mode 100644 index 00000000..c46ae579 --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go @@ -0,0 +1,912 @@ +package lib + +import ( + "encoding/base64" + "encoding/json" + "fmt" + + wasmx "github.com/loredanacirstea/wasmx-env/lib" + p2p "github.com/loredanacirstea/wasmx-env-p2p/lib" + fsm "github.com/loredanacirstea/wasmx-fsm/lib" + raftlib "github.com/loredanacirstea/wasmx-raft-lib/lib" +) + +// Chat room topics (parity with AS config) +const ( + CHAT_ROOM_PROTOCOL = "kayros_p2p_protocol" + CHAT_ROOM_MEMPOOL = CHAT_ROOM_PROTOCOL + CHAT_ROOM_BLOCKHASH = "kayros_blockhash_chatroom" + STORAGE_KEY_KAYROS_CONFIG = "kayros_config" + STORAGE_KEY_LAST_UUID = "kayros_last_uuid" + STORAGE_KEY_CONSENSUS_CONFIG = "consensus_config" + STORAGE_KEY_BLOCK_COMMITS = "block_commits_" // Prefix for block commit mappings + STORAGE_KEY_PENDING_TXS = "pending_txs" // Transactions needed for current block + STORAGE_KEY_KAYROS_TX_META = "kayros_tx_meta_" // Prefix for Kayros tx metadata + STORAGE_KEY_BLOCK_KAYROS = "block_kayros_" // Prefix for block Kayros metadata + MAX_TXS_PER_BLOCK = 100 // Default max transactions to fetch from Kayros per block +) + +var kayrosClient *KayrosClient + +// InitializeKayrosClient initializes the Kayros client with configuration +func InitializeKayrosClient(config KayrosConfig) error { + kayrosClient = NewKayrosClient(config) + // Store config in state + configData, err := json.Marshal(config) + if err != nil { + return err + } + wasmx.StorageStore([]byte(STORAGE_KEY_KAYROS_CONFIG), configData) + return nil +} + +// GetKayrosClient retrieves the Kayros client, initializing if needed +func GetKayrosClient() (*KayrosClient, error) { + if kayrosClient != nil { + return kayrosClient, nil + } + + // Try to load from state + configData := wasmx.StorageLoad([]byte(STORAGE_KEY_KAYROS_CONFIG)) + if len(configData) == 0 { + return nil, fmt.Errorf("kayros client not initialized") + } + + var config KayrosConfig + if err := json.Unmarshal(configData, &config); err != nil { + return nil, err + } + + kayrosClient = NewKayrosClient(config) + return kayrosClient, nil +} + +// GetLastKayrosUUID retrieves the last processed Kayros UUID from state +func GetLastKayrosUUID() string { + data := wasmx.StorageLoad([]byte(STORAGE_KEY_LAST_UUID)) + return string(data) +} + +// SetLastKayrosUUID stores the last processed Kayros UUID in state +func SetLastKayrosUUID(uuid string) { + wasmx.StorageStore([]byte(STORAGE_KEY_LAST_UUID), []byte(uuid)) +} + +// GetConsensusConfig retrieves the consensus configuration from state +func GetConsensusConfig() (*ConsensusConfig, error) { + data := wasmx.StorageLoad([]byte(STORAGE_KEY_CONSENSUS_CONFIG)) + if len(data) == 0 { + return nil, fmt.Errorf("consensus config not initialized") + } + var config ConsensusConfig + if err := json.Unmarshal(data, &config); err != nil { + return nil, err + } + return &config, nil +} + +// SetConsensusConfig stores the consensus configuration in state +func SetConsensusConfig(config ConsensusConfig) error { + data, err := json.Marshal(config) + if err != nil { + return err + } + wasmx.StorageStore([]byte(STORAGE_KEY_CONSENSUS_CONFIG), data) + return nil +} + +// GetBlockCommitMapping retrieves the commit mapping for a specific block +func GetBlockCommitMapping(blockNumber int64) (*BlockCommitMapping, error) { + key := fmt.Sprintf("%s%d", STORAGE_KEY_BLOCK_COMMITS, blockNumber) + data := wasmx.StorageLoad([]byte(key)) + if len(data) == 0 { + // Return empty mapping if not found + return &BlockCommitMapping{ + BlockNumber: blockNumber, + Commits: make(map[string]BlockCommit), + Finalized: false, + }, nil + } + var mapping BlockCommitMapping + if err := json.Unmarshal(data, &mapping); err != nil { + return nil, err + } + return &mapping, nil +} + +// SetBlockCommitMapping stores the commit mapping for a specific block +func SetBlockCommitMapping(mapping *BlockCommitMapping) error { + key := fmt.Sprintf("%s%d", STORAGE_KEY_BLOCK_COMMITS, mapping.BlockNumber) + data, err := json.Marshal(mapping) + if err != nil { + return err + } + wasmx.StorageStore([]byte(key), data) + return nil +} + +// GetPendingTxHashes retrieves the list of transaction hashes needed for the current block +func GetPendingTxHashes() ([]string, error) { + data := wasmx.StorageLoad([]byte(STORAGE_KEY_PENDING_TXS)) + if len(data) == 0 { + return []string{}, nil + } + var hashes []string + if err := json.Unmarshal(data, &hashes); err != nil { + return nil, err + } + return hashes, nil +} + +// SetPendingTxHashes stores the list of transaction hashes needed for the current block +func SetPendingTxHashes(hashes []string) error { + data, err := json.Marshal(hashes) + if err != nil { + return err + } + wasmx.StorageStore([]byte(STORAGE_KEY_PENDING_TXS), data) + return nil +} + +// GetKayrosTxMetadata retrieves Kayros metadata for a specific transaction +func GetKayrosTxMetadata(txHash string) (*KayrosTxMetadata, error) { + key := fmt.Sprintf("%s%s", STORAGE_KEY_KAYROS_TX_META, txHash) + data := wasmx.StorageLoad([]byte(key)) + if len(data) == 0 { + return nil, nil + } + var meta KayrosTxMetadata + if err := json.Unmarshal(data, &meta); err != nil { + return nil, err + } + return &meta, nil +} + +// SetKayrosTxMetadata stores Kayros metadata for a specific transaction +func SetKayrosTxMetadata(meta *KayrosTxMetadata) error { + key := fmt.Sprintf("%s%s", STORAGE_KEY_KAYROS_TX_META, meta.TxHash) + data, err := json.Marshal(meta) + if err != nil { + return err + } + wasmx.StorageStore([]byte(key), data) + return nil +} + +// GetBlockKayrosMetadata retrieves Kayros metadata for all transactions in a block +func GetBlockKayrosMetadata(blockNumber int64) (*KayrosBlockMetadata, error) { + key := fmt.Sprintf("%s%d", STORAGE_KEY_BLOCK_KAYROS, blockNumber) + data := wasmx.StorageLoad([]byte(key)) + if len(data) == 0 { + return nil, nil + } + var meta KayrosBlockMetadata + if err := json.Unmarshal(data, &meta); err != nil { + return nil, err + } + return &meta, nil +} + +// SetBlockKayrosMetadata stores Kayros metadata for all transactions in a block +func SetBlockKayrosMetadata(blockNumber int64, meta *KayrosBlockMetadata) error { + key := fmt.Sprintf("%s%d", STORAGE_KEY_BLOCK_KAYROS, blockNumber) + data, err := json.Marshal(meta) + if err != nil { + return err + } + wasmx.StorageStore([]byte(key), data) + return nil +} + +// BuildBlockKayrosMetadata collects Kayros metadata for all transactions in the pending list +func BuildBlockKayrosMetadata(blockNumber int64) (*KayrosBlockMetadata, error) { + pendingHashes, err := GetPendingTxHashes() + if err != nil { + return nil, err + } + + blockMeta := &KayrosBlockMetadata{ + Transactions: make([]KayrosTxMetadata, 0, len(pendingHashes)), + } + + for _, txHash := range pendingHashes { + txMeta, err := GetKayrosTxMetadata(txHash) + if err != nil { + LoggerError("failed to get Kayros metadata for tx", []string{"txHash", txHash, "error", err.Error()}) + continue + } + if txMeta != nil { + txMeta.BlockNumber = blockNumber + blockMeta.Transactions = append(blockMeta.Transactions, *txMeta) + + // Track first and last UUIDs + if blockMeta.FirstUUID == "" { + blockMeta.FirstUUID = txMeta.UUID + } + blockMeta.LastUUID = txMeta.UUID + } + } + + // Store the block metadata + if err := SetBlockKayrosMetadata(blockNumber, blockMeta); err != nil { + return nil, err + } + + return blockMeta, nil +} + +// RegisterWithKayros registers a transaction with Kayros via POST /api/grpc/single-hash +// This action is called when a new transaction is received +func RegisterWithKayros(params []fsm.ActionParam, event fsm.EventObject) error { + // Extract transaction from event params + txB64 := "" + for _, p := range event.Params { + if p.Key == "transaction" { + txB64 = p.Value + break + } + } + if txB64 == "" { + return fmt.Errorf("no transaction found in event") + } + + // Decode transaction + txBytes, err := base64.StdEncoding.DecodeString(txB64) + if err != nil { + return err + } + + // Compute transaction hash (hex encoded for Kayros) + txHashBytes := wasmx.Sha256(txBytes) + txHash := fmt.Sprintf("%x", txHashBytes) + + // Get Kayros client + client, err := GetKayrosClient() + if err != nil { + LoggerError("failed to get Kayros client", []string{"error", err.Error()}) + // Don't fail the transaction if Kayros is unavailable + return nil + } + + // Register transaction with Kayros via POST /api/grpc/single-hash + resp, err := client.RegisterTransaction(txHash) + if err != nil { + LoggerError("failed to register transaction with Kayros", []string{"txHash", txHash, "error", err.Error()}) + // Don't fail the transaction if Kayros registration fails + return nil + } + + if !resp.Success { + LoggerDebug("Kayros registration returned failure", []string{"txHash", txHash, "message", resp.Message}) + return nil + } + + LoggerInfo("transaction registered with Kayros", []string{ + "txHash", txHash, + "uuid", resp.UUID, + }) + + return nil +} + +// GetKayrosTxs fetches transactions from Kayros for block production +// This action is called periodically by validators to produce blocks +// It first checks the mempool for transactions, then requests missing ones from peers +func GetKayrosTxs(params []fsm.ActionParam, event fsm.EventObject) error { + client, err := GetKayrosClient() + if err != nil { + return err + } + + // Get the last processed Kayros UUID + lastUUID := GetLastKayrosUUID() + + // If no last UUID, use the genesis UUID from config + if lastUUID == "" { + config, err := GetConsensusConfig() + if err != nil { + LoggerError("failed to get consensus config for genesis UUID", []string{"error", err.Error()}) + return err + } + if config.GenesisUUID == "" { + LoggerInfo("no genesis UUID configured, skipping block production", []string{}) + return nil + } + lastUUID = config.GenesisUUID + LoggerInfo("using genesis UUID", []string{"uuid", lastUUID}) + } + + // Fetch records from Kayros starting from the last UUID + limit := MAX_TXS_PER_BLOCK + records, err := client.GetRecordsFromPrev(lastUUID, limit) + if err != nil { + LoggerError("failed to fetch records from Kayros", []string{"error", err.Error(), "lastUUID", lastUUID}) + return err + } + + LoggerInfo("fetched records from Kayros", []string{ + "count", fmt.Sprintf("%d", len(records)), + "lastUUID", lastUUID, + }) + + if len(records) == 0 { + // No new transactions to process - clear pending + SetPendingTxHashes([]string{}) + return nil + } + + // Get mempool to check which transactions we already have + mp, err := raftlib.GetMempool() + if err != nil { + return err + } + + // Collect transaction hashes we need and ones we're missing + missingTxHashes := []string{} + allTxHashes := []string{} + + for _, record := range records { + txHash := record.DataItemHex + allTxHashes = append(allTxHashes, txHash) + + // Store Kayros metadata for this transaction + txMeta := &KayrosTxMetadata{ + TxHash: txHash, + UUID: record.UuidHex, + HashItem: record.HashItemHex, + Timestamp: record.Timestamp, + PrevHash: record.PrevHashHex, + } + if err := SetKayrosTxMetadata(txMeta); err != nil { + LoggerError("failed to store Kayros tx metadata", []string{"txHash", txHash, "error", err.Error()}) + } + + // Check if we have this transaction in our mempool + if mp.HasSeen(txHash) { + LoggerDebug("transaction in mempool", []string{"txHash", txHash, "kayrosId", record.HashItemHex}) + continue + } + + // Transaction not in mempool - add to missing list + missingTxHashes = append(missingTxHashes, txHash) + LoggerDebug("transaction not in mempool, will request from peers", []string{ + "txHash", txHash, + "kayrosId", record.HashItemHex, + "uuid", record.UuidHex, + "timestamp", record.Timestamp, + }) + } + + // Store the list of all transactions needed for this block + if err := SetPendingTxHashes(allTxHashes); err != nil { + LoggerError("failed to store pending tx hashes", []string{"error", err.Error()}) + } + + // If we have missing transactions, request them from peers + if len(missingTxHashes) > 0 { + LoggerInfo("requesting missing transactions from peers", []string{"count", fmt.Sprintf("%d", len(missingTxHashes))}) + if err := RequestMissingTransactions(missingTxHashes); err != nil { + LoggerError("failed to request missing transactions", []string{"error", err.Error()}) + // Don't return error - we'll retry on next round + } + } + + // Update the last processed UUID to the last record's UUID + if len(records) > 0 { + lastRecord := records[len(records)-1] + SetLastKayrosUUID(lastRecord.UuidHex) + LoggerDebug("updated last Kayros UUID", []string{"uuid", lastRecord.UuidHex}) + } + return nil +} + +// ReceiveCommit handles receiving a commit from another validator +// In Kayros consensus, validators send block hashes to verify consensus +// Until a block is finalized, we may receive multiple commits from the same node +// so we use timestamps to overwrite previous commits if a newer one comes in +func ReceiveCommit(params []fsm.ActionParam, event fsm.EventObject) error { + // Extract commit data from event params + commitB64 := "" + sender := "" + for _, p := range event.Params { + if p.Key == "commit" { + commitB64 = p.Value + } else if p.Key == "sender" { + sender = p.Value + } + } + + if commitB64 == "" { + return fmt.Errorf("no commit found in event") + } + + // Decode commit data + commitData, err := base64.StdEncoding.DecodeString(commitB64) + if err != nil { + return err + } + + // Parse the commit + var commit BlockCommit + if err := json.Unmarshal(commitData, &commit); err != nil { + LoggerError("failed to parse commit", []string{"error", err.Error()}) + return err + } + + // Set sender from event if not in commit data + if commit.Sender == "" { + commit.Sender = sender + } + + LoggerDebug("received commit", []string{ + "sender", commit.Sender, + "blockNumber", fmt.Sprintf("%d", commit.BlockNumber), + "blockHash", commit.BlockHash, + "timestamp", fmt.Sprintf("%d", commit.Timestamp), + }) + + // Get the commit mapping for this block + mapping, err := GetBlockCommitMapping(commit.BlockNumber) + if err != nil { + LoggerError("failed to get block commit mapping", []string{"error", err.Error()}) + return err + } + + // If block is already finalized, ignore new commits + if mapping.Finalized { + LoggerDebug("block already finalized, ignoring commit", []string{"blockNumber", fmt.Sprintf("%d", commit.BlockNumber)}) + return nil + } + + // Check if we already have a commit from this sender + existingCommit, exists := mapping.Commits[commit.Sender] + if exists { + // Only overwrite if new commit has a newer timestamp + if commit.Timestamp <= existingCommit.Timestamp { + LoggerDebug("ignoring older commit from same sender", []string{ + "sender", commit.Sender, + "existingTimestamp", fmt.Sprintf("%d", existingCommit.Timestamp), + "newTimestamp", fmt.Sprintf("%d", commit.Timestamp), + }) + return nil + } + LoggerDebug("overwriting commit with newer timestamp", []string{ + "sender", commit.Sender, + "oldTimestamp", fmt.Sprintf("%d", existingCommit.Timestamp), + "newTimestamp", fmt.Sprintf("%d", commit.Timestamp), + }) + } + + // Store the commit + mapping.Commits[commit.Sender] = commit + + // Save the updated mapping + if err := SetBlockCommitMapping(mapping); err != nil { + LoggerError("failed to save block commit mapping", []string{"error", err.Error()}) + return err + } + + // Check consensus thresholds + if err := CheckConsensusThresholds(mapping); err != nil { + LoggerError("failed to check consensus thresholds", []string{"error", err.Error()}) + return err + } + + return nil +} + +// CheckConsensusThresholds checks if we have reached consensus thresholds for a block +func CheckConsensusThresholds(mapping *BlockCommitMapping) error { + config, err := GetConsensusConfig() + if err != nil { + return err + } + + // Get total validator count + nodes, err := raftlib.GetNodeIPs() + if err != nil { + return err + } + totalValidators := len(nodes) + if totalValidators == 0 { + return nil + } + + // Count commits by block hash + hashCounts := make(map[string]int) + for _, commit := range mapping.Commits { + hashCounts[commit.BlockHash]++ + } + + // Find the hash with the most votes + maxCount := 0 + maxHash := "" + for hash, count := range hashCounts { + if count > maxCount { + maxCount = count + maxHash = hash + } + } + + // Calculate percentages + commitPercentage := (len(mapping.Commits) * 100) / totalValidators + hashPercentage := (maxCount * 100) / totalValidators + + LoggerDebug("consensus status", []string{ + "blockNumber", fmt.Sprintf("%d", mapping.BlockNumber), + "totalCommits", fmt.Sprintf("%d", len(mapping.Commits)), + "totalValidators", fmt.Sprintf("%d", totalValidators), + "commitPercentage", fmt.Sprintf("%d", commitPercentage), + "maxHashCount", fmt.Sprintf("%d", maxCount), + "maxHash", maxHash, + "hashPercentage", fmt.Sprintf("%d", hashPercentage), + }) + + // Check finalization threshold (e.g., 75% agree on the same hash) + if hashPercentage >= config.ThresholdFinalize { + LoggerInfo("block finalized", []string{ + "blockNumber", fmt.Sprintf("%d", mapping.BlockNumber), + "blockHash", maxHash, + "percentage", fmt.Sprintf("%d", hashPercentage), + }) + mapping.Finalized = true + if err := SetBlockCommitMapping(mapping); err != nil { + return err + } + return nil + } + + // Check commit threshold for potential rollback (e.g., 51% have committed but disagree) + if commitPercentage >= config.ThresholdCommit && len(hashCounts) > 1 { + // We have enough commits but they disagree - this might require rollback + LoggerInfo("commit threshold reached but hashes disagree, may need rollback", []string{ + "blockNumber", fmt.Sprintf("%d", mapping.BlockNumber), + "uniqueHashes", fmt.Sprintf("%d", len(hashCounts)), + "commitPercentage", fmt.Sprintf("%d", commitPercentage), + }) + // TODO: Implement rollback logic if our hash doesn't match the majority + } + + return nil +} + +// VerifyCommitLight performs light verification of a commit +func VerifyCommitLight(params []fsm.ActionParam, event fsm.EventObject) error { + // TODO: Implement light client verification of commits + // This could verify signatures and basic structure without full state verification + return nil +} + +// RequestMissingTransactions sends a P2P request to peers for missing transactions +func RequestMissingTransactions(txHashes []string) error { + if len(txHashes) == 0 { + return nil + } + + // Get current block number + lastBlockIndex, err := raftlib.GetLastBlockIndex() + if err != nil { + return err + } + nextBlockNumber := lastBlockIndex + 1 + + // Get our node info + nodes, err := raftlib.GetNodeIPs() + if err != nil { + return err + } + ourId, err := raftlib.GetCurrentNodeId() + if err != nil { + return err + } + if int(ourId) >= len(nodes) { + return fmt.Errorf("our node ID out of range") + } + ourAddress := string(nodes[ourId].Address) + + // Create request + request := MissingTransactionsRequest{ + TxHashes: txHashes, + BlockNumber: nextBlockNumber, + Sender: ourAddress, + } + + reqBytes, err := json.Marshal(request) + if err != nil { + return err + } + + // Build P2P message payload + payload := struct { + Run struct { + Event struct { + Type string `json:"type"` + Params []struct { + Key string `json:"key"` + Value string `json:"value"` + } `json:"params"` + } `json:"event"` + } `json:"run"` + }{} + payload.Run.Event.Type = "receiveMissingTransactionsRequest" + payload.Run.Event.Params = []struct { + Key string `json:"key"` + Value string `json:"value"` + }{ + {Key: "request", Value: base64.StdEncoding.EncodeToString(reqBytes)}, + {Key: "sender", Value: ourAddress}, + } + msg, _ := json.Marshal(&payload) + + // Send to all peers + peers := make([]string, 0, len(nodes)-1) + for i := range nodes { + if int32(i) != ourId && raftlib.IsNodeActive(nodes[i]) { + peers = append(peers, nodes[i].Node.IP) + } + } + + if len(peers) == 0 { + LoggerDebug("no peers available to request missing transactions", nil) + return nil + } + + contract := wasmx.GetAddress() + _, err = p2p.SendMessageToPeers(p2p.SendMessageToPeersRequest{ + Contract: contract, + Sender: contract, + Msg: msg, + ProtocolId: PROTOCOL_ID, + Peers: peers, + }) + + if err != nil { + LoggerError("failed to send missing transactions request", []string{"error", err.Error()}) + return err + } + + LoggerInfo("sent missing transactions request", []string{ + "txCount", fmt.Sprintf("%d", len(txHashes)), + "peerCount", fmt.Sprintf("%d", len(peers)), + }) + + return nil +} + +// ReceiveMissingTransactionsRequest handles incoming requests for missing transactions +// This is called when another node asks us for transactions it doesn't have +func ReceiveMissingTransactionsRequest(params []fsm.ActionParam, event fsm.EventObject) error { + // Extract request from event params + requestB64 := "" + sender := "" + for _, p := range event.Params { + if p.Key == "request" { + requestB64 = p.Value + } else if p.Key == "sender" { + sender = p.Value + } + } + + if requestB64 == "" { + return fmt.Errorf("no request found in event") + } + + // Decode request + requestData, err := base64.StdEncoding.DecodeString(requestB64) + if err != nil { + return err + } + + var request MissingTransactionsRequest + if err := json.Unmarshal(requestData, &request); err != nil { + LoggerError("failed to parse missing transactions request", []string{"error", err.Error()}) + return err + } + + LoggerDebug("received missing transactions request", []string{ + "sender", sender, + "txCount", fmt.Sprintf("%d", len(request.TxHashes)), + "blockNumber", fmt.Sprintf("%d", request.BlockNumber), + }) + + // Get mempool to find transactions + mp, err := raftlib.GetMempool() + if err != nil { + return err + } + + // Collect transactions we have + transactions := make([][]byte, 0) + foundHashes := make([]string, 0) + + for _, txHash := range request.TxHashes { + // Check if transaction exists in mempool map + if mempoolTx, ok := mp.Map[txHash]; ok { + transactions = append(transactions, mempoolTx.Tx) + foundHashes = append(foundHashes, txHash) + } + } + + if len(transactions) == 0 { + LoggerDebug("no requested transactions found in mempool", []string{"sender", sender}) + return nil + } + + // Get our node info + nodes, err := raftlib.GetNodeIPs() + if err != nil { + return err + } + ourId, err := raftlib.GetCurrentNodeId() + if err != nil { + return err + } + ourAddress := string(nodes[ourId].Address) + + // Create response + response := MissingTransactionsResponse{ + Transactions: transactions, + TxHashes: foundHashes, + Sender: ourAddress, + } + + respBytes, err := json.Marshal(response) + if err != nil { + return err + } + + // Build P2P message payload + payload := struct { + Run struct { + Event struct { + Type string `json:"type"` + Params []struct { + Key string `json:"key"` + Value string `json:"value"` + } `json:"params"` + } `json:"event"` + } `json:"run"` + }{} + payload.Run.Event.Type = "receiveMissingTransactions" + payload.Run.Event.Params = []struct { + Key string `json:"key"` + Value string `json:"value"` + }{ + {Key: "response", Value: base64.StdEncoding.EncodeToString(respBytes)}, + {Key: "sender", Value: ourAddress}, + } + msg, _ := json.Marshal(&payload) + + // Send response to the requesting peer + contract := wasmx.GetAddress() + _, err = p2p.SendMessageToPeers(p2p.SendMessageToPeersRequest{ + Contract: contract, + Sender: contract, + Msg: msg, + ProtocolId: PROTOCOL_ID, + Peers: []string{sender}, + }) + + if err != nil { + LoggerError("failed to send missing transactions response", []string{"error", err.Error()}) + return err + } + + LoggerInfo("sent missing transactions response", []string{ + "txCount", fmt.Sprintf("%d", len(transactions)), + "to", sender, + }) + + return nil +} + +// ReceiveMissingTransactions handles incoming missing transactions from peers +// This is called when a peer responds to our request for missing transactions +func ReceiveMissingTransactions(params []fsm.ActionParam, event fsm.EventObject) error { + // Extract response from event params + responseB64 := "" + sender := "" + for _, p := range event.Params { + if p.Key == "response" { + responseB64 = p.Value + } else if p.Key == "sender" { + sender = p.Value + } + } + + if responseB64 == "" { + return fmt.Errorf("no response found in event") + } + + // Decode response + responseData, err := base64.StdEncoding.DecodeString(responseB64) + if err != nil { + return err + } + + var response MissingTransactionsResponse + if err := json.Unmarshal(responseData, &response); err != nil { + LoggerError("failed to parse missing transactions response", []string{"error", err.Error()}) + return err + } + + LoggerDebug("received missing transactions", []string{ + "sender", sender, + "txCount", fmt.Sprintf("%d", len(response.Transactions)), + }) + + // Add transactions to mempool + mp, err := raftlib.GetMempool() + if err != nil { + return err + } + + addedCount := 0 + chainId := wasmx.GetChainId() + for i, tx := range response.Transactions { + txHash := response.TxHashes[i] + if !mp.HasSeen(txHash) { + // Add to mempool with default gas (0) and our chain as leader + mp.Add(txHash, tx, 0, chainId) + addedCount++ + } + } + + // Save the updated mempool + if addedCount > 0 { + if err := raftlib.SetMempool(mp); err != nil { + LoggerError("failed to save mempool", []string{"error", err.Error()}) + } + } + + LoggerInfo("added missing transactions to mempool", []string{ + "addedCount", fmt.Sprintf("%d", addedCount), + "fromPeer", sender, + }) + + return nil +} + +// IfAllTransactions is a guard that checks if we have all transactions needed for the current block +func IfAllTransactions(params []fsm.GuardParam, event fsm.EventObject) bool { + // Get pending transaction hashes + pendingHashes, err := GetPendingTxHashes() + if err != nil { + LoggerError("failed to get pending tx hashes", []string{"error", err.Error()}) + return false + } + + // If no pending transactions, we're ready (empty block) + if len(pendingHashes) == 0 { + LoggerDebug("no pending transactions, ready for block", nil) + return true + } + + // Get mempool to check which transactions we have + mp, err := raftlib.GetMempool() + if err != nil { + LoggerError("failed to get mempool", []string{"error", err.Error()}) + return false + } + + // Check if all pending transactions are in mempool + missingCount := 0 + for _, txHash := range pendingHashes { + if !mp.HasSeen(txHash) { + missingCount++ + } + } + + if missingCount > 0 { + LoggerDebug("still missing transactions", []string{ + "missingCount", fmt.Sprintf("%d", missingCount), + "totalPending", fmt.Sprintf("%d", len(pendingHashes)), + }) + return false + } + + LoggerDebug("all transactions available", []string{ + "count", fmt.Sprintf("%d", len(pendingHashes)), + }) + return true +} diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/kayros.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/kayros.go new file mode 100644 index 00000000..0b6b1a8c --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/kayros.go @@ -0,0 +1,210 @@ +package lib + +import ( + "encoding/json" + "fmt" + "net/http" + + wasmx "github.com/loredanacirstea/wasmx-env/lib" + httpclient "github.com/loredanacirstea/wasmx-env-httpclient" +) + +// KayrosClient provides methods to interact with Kayros API +type KayrosClient struct { + config KayrosConfig +} + +// NewKayrosClient creates a new Kayros API client with the given configuration +func NewKayrosClient(config KayrosConfig) *KayrosClient { + return &KayrosClient{ + config: config, + } +} + +// getDataType returns the formatted data_type for Kayros API (wasmx_) +func (kc *KayrosClient) getDataType() string { + chainId := wasmx.GetChainId() + return fmt.Sprintf("wasmx_%s", chainId) +} + +// makeRequest performs an HTTP GET request to the Kayros API +func (kc *KayrosClient) makeRequest(endpoint string) ([]byte, error) { + url := fmt.Sprintf("%s%s", kc.config.ApiBaseUrl, endpoint) + + req := httpclient.HttpRequestWrap{ + Request: httpclient.HttpRequest{ + Method: "GET", + Url: url, + Header: http.Header{ + "Content-Type": []string{"application/json"}, + }, + Data: []byte{}, + }, + ResponseHandler: httpclient.ResponseHandler{ + MaxSize: 1024 * 1024, // 1MB max response size + FilePath: "", + }, + } + + resp := httpclient.Request(&req) + + if resp.Error != "" { + return nil, fmt.Errorf("HTTP request failed: %s", resp.Error) + } + + if resp.Data.StatusCode != 200 { + return nil, fmt.Errorf("HTTP request returned status %d: %s", resp.Data.StatusCode, resp.Data.Status) + } + + return resp.Data.Data, nil +} + +// GetRecordByDataItem retrieves a Kayros record by data_type and data_item (transaction hash) +// GET /api/database/record?data_type=&data_item= +func (kc *KayrosClient) GetRecordByDataItem(txHash string) (*KayrosRecord, error) { + endpoint := fmt.Sprintf("/api/database/record?data_type=%s&data_item=%s", + kc.getDataType(), txHash) + + respData, err := kc.makeRequest(endpoint) + if err != nil { + return nil, err + } + + var kayrosResp KayrosRecordResponse + if err := json.Unmarshal(respData, &kayrosResp); err != nil { + return nil, fmt.Errorf("failed to unmarshal Kayros response: %w", err) + } + + if !kayrosResp.Success { + return nil, fmt.Errorf("Kayros API error: %s", kayrosResp.Message) + } + + return &kayrosResp.Data, nil +} + +// GetRecordByHash retrieves a Kayros record by hash_item (Kayros unique ID) +// GET /api/database/record-by-hash?hash_item= +func (kc *KayrosClient) GetRecordByHash(hashItem string) (*KayrosRecord, error) { + endpoint := fmt.Sprintf("/api/database/record-by-hash?hash_item=%s", hashItem) + + respData, err := kc.makeRequest(endpoint) + if err != nil { + return nil, err + } + + var kayrosResp KayrosRecordResponse + if err := json.Unmarshal(respData, &kayrosResp); err != nil { + return nil, fmt.Errorf("failed to unmarshal Kayros response: %w", err) + } + + if !kayrosResp.Success { + return nil, fmt.Errorf("Kayros API error: %s", kayrosResp.Message) + } + + return &kayrosResp.Data, nil +} + +// GetRecordWithPrev retrieves a Kayros record with its previous hash by UUID +// GET /api/database/record-with-prev?data_type=&uuid= +func (kc *KayrosClient) GetRecordWithPrev(uuid string) (*KayrosRecord, error) { + endpoint := fmt.Sprintf("/api/database/record-with-prev?data_type=%s&uuid=%s", + kc.getDataType(), uuid) + + respData, err := kc.makeRequest(endpoint) + if err != nil { + return nil, err + } + + var kayrosResp KayrosRecordResponse + if err := json.Unmarshal(respData, &kayrosResp); err != nil { + return nil, fmt.Errorf("failed to unmarshal Kayros response: %w", err) + } + + if !kayrosResp.Success { + return nil, fmt.Errorf("Kayros API error: %s", kayrosResp.Message) + } + + return &kayrosResp.Data, nil +} + +// GetRecordsFromPrev retrieves multiple Kayros records from a previous UUID with a limit +// GET /api/database/records-from-prev?data_type=&uuid=&limit= +func (kc *KayrosClient) GetRecordsFromPrev(uuid string, limit int) ([]KayrosRecord, error) { + endpoint := fmt.Sprintf("/api/database/records-from-prev?data_type=%s&uuid=%s&limit=%d", + kc.getDataType(), uuid, limit) + + respData, err := kc.makeRequest(endpoint) + if err != nil { + return nil, err + } + + var kayrosResp KayrosRecordsResponse + if err := json.Unmarshal(respData, &kayrosResp); err != nil { + return nil, fmt.Errorf("failed to unmarshal Kayros response: %w", err) + } + + if !kayrosResp.Success { + return nil, fmt.Errorf("Kayros API error: %s", kayrosResp.Message) + } + + return kayrosResp.Data, nil +} + +// makePostRequest performs an HTTP POST request to the Kayros API +func (kc *KayrosClient) makePostRequest(endpoint string, body []byte) ([]byte, error) { + url := fmt.Sprintf("%s%s", kc.config.ApiBaseUrl, endpoint) + + req := httpclient.HttpRequestWrap{ + Request: httpclient.HttpRequest{ + Method: "POST", + Url: url, + Header: http.Header{ + "Content-Type": []string{"application/json"}, + }, + Data: body, + }, + ResponseHandler: httpclient.ResponseHandler{ + MaxSize: 1024 * 1024, // 1MB max response size + FilePath: "", + }, + } + + resp := httpclient.Request(&req) + + if resp.Error != "" { + return nil, fmt.Errorf("HTTP POST request failed: %s", resp.Error) + } + + if resp.Data.StatusCode != 200 && resp.Data.StatusCode != 201 { + return nil, fmt.Errorf("HTTP POST request returned status %d: %s", resp.Data.StatusCode, resp.Data.Status) + } + + return resp.Data.Data, nil +} + +// RegisterTransaction registers a transaction with Kayros via POST /api/grpc/single-hash +func (kc *KayrosClient) RegisterTransaction(txHash string) (*KayrosRegistrationResponse, error) { + endpoint := "/api/grpc/single-hash" + + reqBody := KayrosRegistrationRequest{ + DataType: kc.getDataType(), + DataItem: txHash, + } + + bodyBytes, err := json.Marshal(reqBody) + if err != nil { + return nil, fmt.Errorf("failed to marshal registration request: %w", err) + } + + respData, err := kc.makePostRequest(endpoint, bodyBytes) + if err != nil { + return nil, err + } + + var kayrosResp KayrosRegistrationResponse + if err := json.Unmarshal(respData, &kayrosResp); err != nil { + return nil, fmt.Errorf("failed to unmarshal Kayros registration response: %w", err) + } + + return &kayrosResp, nil +} diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/storage.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/storage.go new file mode 100644 index 00000000..55c21f80 --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/storage.go @@ -0,0 +1 @@ +package lib diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/types.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/types.go new file mode 100644 index 00000000..46dfe519 --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/types.go @@ -0,0 +1,139 @@ +package lib + +import ( + raftlib "github.com/loredanacirstea/wasmx-raft-lib/lib" +) + +// Module identification and protocol constants +const ( + MODULE_NAME = "kayrosp2p" + PROTOCOL_ID = "kayrosp2p_1" +) + +// StateSyncRequest mirrors the AS request with start index +type StateSyncRequest struct { + StartIndex int64 `json:"start_index"` + PeerAddress string `json:"peer_address"` +} + +// StateSyncResponse mirrors the AS response with batch indexes and entries +type StateSyncResponse struct { + StartBatchIndex int64 `json:"start_batch_index"` + LastBatchIndex int64 `json:"last_batch_index"` + LastLogIndex int64 `json:"last_log_index"` + TrustedLogIndex int64 `json:"trusted_log_index"` + TrustedLogHash []byte `json:"trusted_log_hash"` + TermID int32 `json:"termId"` + PeerAddress string `json:"peer_address"` + Entries []raftlib.LogEntryAggregate `json:"entries"` +} + +// KayrosConfig holds the configuration for Kayros API client +type KayrosConfig struct { + ApiBaseUrl string `json:"api_base_url"` // e.g., "https://kayros.provable.dev" +} + +// InstantiateMsg is the message passed during contract instantiation +type InstantiateMsg struct { + KayrosApiUrl string `json:"kayros_api_url"` // e.g., "https://kayros.provable.dev" + GenesisUUID string `json:"genesis_uuid"` // First UUID to start from on genesis + ThresholdCommit int `json:"threshold_commit"` // Percentage threshold for commit (e.g., 51) - determines when to rollback + ThresholdFinalize int `json:"threshold_finalize"` // Percentage threshold for finalization (e.g., 75) - determines when block is finalized +} + +// KayrosRecord represents a record in the Kayros database +type KayrosRecord struct { + DataType string `json:"data_type"` + DataItemHex string `json:"data_item_hex"` + UuidHex string `json:"uuid_hex"` + HashItemHex string `json:"hash_item_hex"` // Kayros unique ID + PrevHashHex string `json:"prev_hash_hex"` + HashType string `json:"hash_type"` + Timestamp string `json:"timestamp"` +} + +// KayrosApiResponse is the common response structure from Kayros API +type KayrosApiResponse struct { + Success bool `json:"success"` + Message string `json:"message"` +} + +// KayrosRecordResponse is the response for single record queries +type KayrosRecordResponse struct { + KayrosApiResponse + Data KayrosRecord `json:"data"` +} + +// KayrosRecordsResponse is the response for multiple record queries +type KayrosRecordsResponse struct { + KayrosApiResponse + Data []KayrosRecord `json:"data"` +} + +// BlockCommit represents a commit from a validator for a specific block +type BlockCommit struct { + BlockNumber int64 `json:"block_number"` + BlockHash string `json:"block_hash"` + Sender string `json:"sender"` + Timestamp int64 `json:"timestamp"` // Timestamp from the sending node + Signature string `json:"signature"` +} + +// BlockCommitMapping stores all commits for a specific block from various validators +type BlockCommitMapping struct { + BlockNumber int64 `json:"block_number"` + Commits map[string]BlockCommit `json:"commits"` // Map from sender to their commit (allows overwriting with newer timestamp) + Finalized bool `json:"finalized"` +} + +// ConsensusConfig holds the consensus thresholds +type ConsensusConfig struct { + ThresholdCommit int `json:"threshold_commit"` // Percentage for commit threshold (e.g., 51) + ThresholdFinalize int `json:"threshold_finalize"` // Percentage for finalization threshold (e.g., 75) + GenesisUUID string `json:"genesis_uuid"` // First UUID on genesis +} + +// MissingTransactionsRequest is sent to peers to request missing transactions +type MissingTransactionsRequest struct { + TxHashes []string `json:"tx_hashes"` // List of transaction hashes we need + BlockNumber int64 `json:"block_number"` // The block number we're building + Sender string `json:"sender"` // The peer requesting +} + +// MissingTransactionsResponse contains the requested transactions +type MissingTransactionsResponse struct { + Transactions [][]byte `json:"transactions"` // Raw transaction bytes + TxHashes []string `json:"tx_hashes"` // Corresponding hashes + Sender string `json:"sender"` // The peer responding +} + +// KayrosRegistrationRequest is the request body for POST /api/grpc/single-hash +type KayrosRegistrationRequest struct { + DataType string `json:"data_type"` + DataItem string `json:"data_item"` // Transaction hash +} + +// KayrosRegistrationResponse is the response from the registration API +type KayrosRegistrationResponse struct { + Success bool `json:"success"` + Message string `json:"message"` + UUID string `json:"uuid,omitempty"` +} + +// KayrosTxMetadata stores Kayros ordering information for a transaction +// This metadata is included in the block's Metainfo field +type KayrosTxMetadata struct { + TxHash string `json:"tx_hash"` // Transaction hash (data_item) + UUID string `json:"uuid"` // Kayros UUID for ordering + HashItem string `json:"hash_item"` // Kayros unique ID (hash_item_hex) + Timestamp string `json:"timestamp"` // Kayros timestamp + PrevHash string `json:"prev_hash"` // Previous hash in the ordering chain + BlockNumber int64 `json:"block_number"` // Block this tx is included in +} + +// KayrosBlockMetadata contains all Kayros metadata for transactions in a block +type KayrosBlockMetadata struct { + Transactions []KayrosTxMetadata `json:"transactions"` + FirstUUID string `json:"first_uuid"` // First UUID in this block + LastUUID string `json:"last_uuid"` // Last UUID in this block +} diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/utils.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/utils.go new file mode 100644 index 00000000..284f4899 --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/utils.go @@ -0,0 +1,25 @@ +package lib + +import ( + wasmx "github.com/loredanacirstea/wasmx-env/lib" +) + +func LoggerInfo(msg string, parts []string) { + wasmx.LoggerInfo(MODULE_NAME, msg, parts) +} + +func LoggerError(msg string, parts []string) { + wasmx.LoggerError(MODULE_NAME, msg, parts) +} + +func LoggerDebug(msg string, parts []string) { + wasmx.LoggerDebug(MODULE_NAME, msg, parts) +} + +func LoggerDebugExtended(msg string, parts []string) { + wasmx.LoggerDebugExtended(MODULE_NAME, msg, parts) +} + +func Revert(message string) { + wasmx.RevertWithModule(MODULE_NAME, message) +} From d10d7edc50b66b583940d86c356d6b9a68461a5e Mon Sep 17 00:00:00 2001 From: Loredana Cirstea Date: Sun, 28 Dec 2025 21:48:58 +0100 Subject: [PATCH 02/10] working kayros consensus --- Makefile | 7 +- tests/testdata/tinygo/emailchain/main.go | 4 + .../tinygo/wasmx-env-httpclient/httpclient.go | 4 - .../tinygo/wasmx-env/lib/wasmx_wrap.go | 1 - tests/testdata/tinygo/wasmx-fsm/lib/timer.go | 4 +- tests/testdata/tinygo/wasmx-fsm/lib/utils.go | 4 +- .../tinygo/wasmx-kayrosp2p-lib/README.md | 9 +- .../tinygo/wasmx-kayrosp2p-lib/cmd/main.go | 83 +-- .../wasmx-kayrosp2p-lib/diagram/def.json | 2 +- .../tinygo/wasmx-kayrosp2p-lib/diagram/def.ts | 47 +- .../tinygo/wasmx-kayrosp2p-lib/go.mod | 7 +- .../tinygo/wasmx-kayrosp2p-lib/lib/actions.go | 168 +++--- .../tinygo/wasmx-kayrosp2p-lib/lib/block.go | 520 ++++++++++++++++++ .../tinygo/wasmx-kayrosp2p-lib/lib/kayros.go | 36 +- .../tinygo/wasmx-kayrosp2p-lib/lib/storage.go | 7 + .../tinygo/wasmx-kayrosp2p-lib/lib/types.go | 24 +- .../tinygo/wasmx-kayrosp2p-lib/lib/utils.go | 13 + tests/utils/utils.go | 13 + tests/wasmx/keeper_test.go | 5 + wasmx/app/app.go | 3 +- wasmx/multichain/helper.go | 4 +- wasmx/testutil/wasmx/chain.go | 64 ++- wasmx/x/wasmx/keeper/precompiles.go | 2 + wasmx/x/wasmx/types/system_contract.go | 74 ++- wasmx/x/wasmx/types/vm.go | 3 + wasmx/x/wasmx/vm/ops_wasi_rust_wasmx.go | 1 + .../precompiles/28.finite_state_machine.wasm | Bin 287917 -> 287490 bytes .../vm/precompiles/71.kayrosp2p_library.wasm | Bin 0 -> 491053 bytes wasmx/x/wasmx/vm/precompiles/fsm.go | 4 + wasmx/x/wasmx/vm/precompiles/precompiles.go | 12 + 30 files changed, 943 insertions(+), 182 deletions(-) create mode 100644 tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/block.go create mode 100644 wasmx/x/wasmx/vm/precompiles/71.kayrosp2p_library.wasm diff --git a/Makefile b/Makefile index 66ad9ec2..5da7a125 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,8 @@ TINYGO_TARGETS := \ wasmx-fsm:28.finite_state_machine.wasm \ wasmx-raft-lib:2a.raft_library.wasm \ wasmx-raftp2p-lib:36.raftp2p_library.wasm \ - wasmx-ondemand-single-lib:65.wasmx_ondemand_single_library.wasm + wasmx-ondemand-single-lib:65.wasmx_ondemand_single_library.wasm \ + wasmx-kayrosp2p-lib:71.kayrosp2p_library.wasm # wasmx-gov:35.gov_0.0.1.wasm \ # wasmx-gov-continuous:37.gov_cont_0.0.1.wasm \ @@ -72,7 +73,7 @@ $(TINYGO_MODULES): if [ -z "$$out" ]; then echo "Unknown TinyGo module: $$mod"; exit 1; fi; \ if [ ! -f "$(TINYGO_DIR)/$$mod/cmd/main.go" ]; then echo "No cmd/main.go in $$mod"; exit 1; fi; \ echo "Tidying $$mod..."; \ - (cd "$(TINYGO_DIR)/$$mod" && env GOWORK=off go mod tidy) 2>/dev/null; \ + (cd "$(TINYGO_DIR)/$$mod" && env GOWORK=off go mod tidy); \ echo "Building $$mod -> $(PRECOMPILE_DIR)/$$out"; \ - (cd "$(TINYGO_DIR)/$$mod" && env GOWORK=off tinygo build -o "$(abspath $(PRECOMPILE_DIR))/$$out" -no-debug -scheduler=none -gc=leaking -target=wasi ./cmd) 2>/dev/null; \ + (cd "$(TINYGO_DIR)/$$mod" && env GOWORK=off tinygo build -o "$(abspath $(PRECOMPILE_DIR))/$$out" -no-debug -scheduler=none -gc=leaking -target=wasi ./cmd); \ echo "Built $(PRECOMPILE_DIR)/$$out" diff --git a/tests/testdata/tinygo/emailchain/main.go b/tests/testdata/tinygo/emailchain/main.go index e8a2452b..8b2d83a5 100644 --- a/tests/testdata/tinygo/emailchain/main.go +++ b/tests/testdata/tinygo/emailchain/main.go @@ -14,6 +14,10 @@ import ( //export wasmx_nondeterministic_1 func Wasmx_nondeterministic_1() {} +//go:wasm-module httpclient +//export wasmx_httpclient_i64_1 +func Wasmx_httpclient_i64_1() {} + //go:wasm-module wasmx //export memory_ptrlen_i64_1 func Wemory_ptrlen_i64_1() {} diff --git a/tests/testdata/tinygo/wasmx-env-httpclient/httpclient.go b/tests/testdata/tinygo/wasmx-env-httpclient/httpclient.go index 9df2b362..f55e0dd8 100644 --- a/tests/testdata/tinygo/wasmx-env-httpclient/httpclient.go +++ b/tests/testdata/tinygo/wasmx-env-httpclient/httpclient.go @@ -9,10 +9,6 @@ import ( utils "github.com/loredanacirstea/wasmx-env-utils" ) -//go:wasm-module httpclient -//export wasmx_httpclient_i64_1 -func wasmx_httpclient_i64_1() {} - //go:wasmimport httpclient Request func Request_(reqPtr int64) int64 diff --git a/tests/testdata/tinygo/wasmx-env/lib/wasmx_wrap.go b/tests/testdata/tinygo/wasmx-env/lib/wasmx_wrap.go index 80792452..4d2bb7aa 100644 --- a/tests/testdata/tinygo/wasmx-env/lib/wasmx_wrap.go +++ b/tests/testdata/tinygo/wasmx-env/lib/wasmx_wrap.go @@ -15,7 +15,6 @@ import ( ) func StorageStore(key, value []byte) { - Log([]byte("storagestore"), [][32]byte{}) StorageStore_(utils.BytesToPackedPtr(key), utils.BytesToPackedPtr(value)) } diff --git a/tests/testdata/tinygo/wasmx-fsm/lib/timer.go b/tests/testdata/tinygo/wasmx-fsm/lib/timer.go index c3b3e0fa..e4457a54 100644 --- a/tests/testdata/tinygo/wasmx-fsm/lib/timer.go +++ b/tests/testdata/tinygo/wasmx-fsm/lib/timer.go @@ -12,7 +12,7 @@ func GetLastIntervalId() int64 { if value == "" { return 0 } - result, err := parseInt64(value) + result, err := ParseInt64(value) if err != nil { return 0 } @@ -46,7 +46,7 @@ func GetLastIntervalIdForState(state, delay string) int64 { if lastIntervalId == "" { return 0 } - result, err := parseInt64(lastIntervalId) + result, err := ParseInt64(lastIntervalId) if err != nil { return 0 } diff --git a/tests/testdata/tinygo/wasmx-fsm/lib/utils.go b/tests/testdata/tinygo/wasmx-fsm/lib/utils.go index 51f7b780..835cfaa1 100644 --- a/tests/testdata/tinygo/wasmx-fsm/lib/utils.go +++ b/tests/testdata/tinygo/wasmx-fsm/lib/utils.go @@ -60,7 +60,7 @@ func getAddressHex(addr []byte) string { } // Parsing utilities -func parseInt32(s string) (int32, error) { +func ParseInt32(s string) (int32, error) { val, err := strconv.ParseInt(s, 10, 32) if err != nil { return 0, err @@ -68,7 +68,7 @@ func parseInt32(s string) (int32, error) { return int32(val), nil } -func parseInt64(s string) (int64, error) { +func ParseInt64(s string) (int64, error) { return strconv.ParseInt(s, 10, 64) } diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/README.md b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/README.md index 0061784f..94114b5b 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/README.md +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/README.md @@ -2,7 +2,7 @@ A new type of consensus based on our Kayros indexer. Each node will be initialized with a Kayros gateway url. The Kayros indexer is the one who orders transactions and gives them a timestamp. So, the node/validator sends the user transaction to Kayros and gets a Kayros record that is should also include in the block. And will use this Kayros order to order the transactions in a block. -Nodes therefore can produce blocks continuously. There is no Leader, because Kayros is the only source of truth. We will only check that nodes are in sync by propagating the block hashes and then comparing them per block. If a node sees > x% (e.g. 50%) of nodes having a different block hash, it will revert its blocks and take them from the validators with the majority. And then continue the protocol. +Nodes therefore produce blocks continuously (they finalized blocks continuously). There is no Leader, because Kayros is the only source of truth. We will only check that nodes are in sync by propagating the block hashes and then comparing them per block. If a node sees > x% (e.g. 50%) of nodes having a different block hash, it will revert its blocks and take them from the validators with the majority. And then continue the protocol. ## Protocol @@ -16,6 +16,9 @@ Block production: - after block is produced, the block hash and txhash list is sent to the other nodes Block check: -- block hashes are coming in our KAYROS_BLOCKHASH_CHATROOM and we keep them in a mapping block_number => []BlockHash , with hash and validator address; when we have > 2/3 we check if the hash matches our hash, if not, we rollback the blocks until that block and ask the validators with correct hash for the block. -- only after this check do we consider the block truly finalized, even though the probability of producing a bad block is low (only when txs don't arrive in the mempool due to a bad actor) +- block hashes are coming in our KAYROS_BLOCKHASH_CHATROOM and we keep them in a mapping block_number => []BlockHash , with hash and validator address; when we have > 50% we check if the hash matches our hash, if not, we rollback the blocks until that block and ask the validators with correct hash for the block. +- only after this check do we consider the block as stable (cannot be rolled back), even though the probability of producing a bad block is low (only when txs don't arrive in the mempool due to a bad actor) +## agents info + +FinalizeBlock is part of the process to commit a block. we run this as part of block production. so we run this automatically, for every block, regardless of other nodes/validators. but in parallel, we take messages from the other nodes/validators who send their block hashes and check if those block hashes match ours; this is where our thresholds come in. if we see other validators sending a different blockhash (the message needs to be signed by the validator and we need to verify the signature), then if > CTX_THRESHOLD_COMMIT, we will rollback all the blocks until the offending block (including it) and ask validators with the correct hash for the blocks; these receiveCommit messages, with block hashes keep comming, so when we get a > CTX_THRESHOLD_FINALIZE it just means that the block for sure will not rollback, so we will no longer be concerned with receiveCommit messages about that block; but FinalizeBlock has been already called when the block was produced in the first place. it is different from RAFT, because RAFT and tendermint have an entire voting process and usually split block preparation, dissemination and finalization into multiple phases. but here, we fully produce and finalize the block locally, without voting. and we correct any issues post-block finalization, because they should be very rare. it is fast consensus, because ordering is done by kayros. diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/cmd/main.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/cmd/main.go index 923ff4c4..ea860646 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/cmd/main.go +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/cmd/main.go @@ -2,8 +2,6 @@ package main import ( "encoding/json" - "fmt" - "os" wasmx "github.com/loredanacirstea/wasmx-env/lib" fsm "github.com/loredanacirstea/wasmx-fsm/lib" @@ -40,6 +38,10 @@ func Wasmx_multichain_json_i64_1() {} //export wasmx_p2p_json_i64_1 func Wasmx_p2p_json_i64_1() {} +//go:wasm-module httpclient +//export wasmx_httpclient_i64_1 +func Wasmx_httpclient_i64_1() {} + //go:wasm-module wasmxcore //export wasmx_nondeterministic_1 func Wasmx_nondeterministic_1() {} @@ -48,61 +50,10 @@ func Wasmx_nondeterministic_1() {} //export instantiate func Instantiate() {} -func main() { - entrypoint := os.Getenv("ENTRY_POINT") - lib.LoggerDebugExtended("fsm: ENTRY_POINT: "+entrypoint, nil) - // these entrypoints are internal by default - switch entrypoint { - case "instantiate": - databz := wasmx.GetCallData() - var msg lib.InstantiateMsg - if err := json.Unmarshal(databz, &msg); err != nil { - wasmx.Revert([]byte("invalid instantiate message: " + err.Error())) - return - } - - // Initialize Kayros client with the provided API URL - config := lib.KayrosConfig{ - ApiBaseUrl: msg.KayrosApiUrl, - } - if err := lib.InitializeKayrosClient(config); err != nil { - wasmx.Revert([]byte("failed to initialize Kayros client: " + err.Error())) - return - } - - // Store consensus configuration - consensusConfig := lib.ConsensusConfig{ - ThresholdCommit: msg.ThresholdCommit, - ThresholdFinalize: msg.ThresholdFinalize, - GenesisUUID: msg.GenesisUUID, - } - // Set defaults if not provided - if consensusConfig.ThresholdCommit == 0 { - consensusConfig.ThresholdCommit = 51 - } - if consensusConfig.ThresholdFinalize == 0 { - consensusConfig.ThresholdFinalize = 75 - } - if err := lib.SetConsensusConfig(consensusConfig); err != nil { - wasmx.Revert([]byte("failed to set consensus config: " + err.Error())) - return - } - - // Set genesis UUID as initial last UUID if provided - if msg.GenesisUUID != "" { - lib.SetLastKayrosUUID(msg.GenesisUUID) - } - - lib.LoggerInfo("Kayros client initialized", []string{ - "api_url", msg.KayrosApiUrl, - "genesis_uuid", msg.GenesisUUID, - "threshold_commit", fmt.Sprintf("%d", consensusConfig.ThresholdCommit), - "threshold_finalize", fmt.Sprintf("%d", consensusConfig.ThresholdFinalize), - }) - wasmx.Finish([]byte{}) - return - } +// note, we cannot instantiate with storage this library +// because it will read from the main consensus contract +func main() { // Only internal wasmx.OnlyInternal(raftp2p.MODULE_NAME, "") @@ -278,6 +229,26 @@ func main() { raftp2p.Revert("Rollback failed: " + err.Error()) return } + case "commitBlock": + if err := lib.CommitBlock(calld.Params, calld.Event); err != nil { + raftp2p.Revert("commitBlock failed: " + err.Error()) + return + } + case "sendCommit": + if err := lib.SendCommit(calld.Params, calld.Event); err != nil { + raftp2p.Revert("sendCommit failed: " + err.Error()) + return + } + case "cancelActiveIntervals": + // Cancel active intervals - this is handled by the FSM runtime + // Just acknowledge the action + lib.LoggerDebug("cancelActiveIntervals called", nil) + case "requestValidatorNodeInfoIfSynced": + // Request validator node info after state sync - stub for now + lib.LoggerDebug("requestValidatorNodeInfoIfSynced called", nil) + case "receiveUpdateNodeRequest": + raftp2p.Revert("receiveUpdateNodeRequest not implemented") + return default: wasmx.Revert(append([]byte("invalid function call data: "), databz...)) return diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.json b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.json index 34a4cddb..b31e62ee 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.json +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.json @@ -1 +1 @@ -{"context":[{"key":"log","value":""},{"key":"votedFor","value":"0"},{"key":"nextIndex","value":"[]"},{"key":"currentTerm","value":"0"},{"key":"blockTimeout","value":"roundTimeout"},{"key":"max_tx_bytes","value":"65536"},{"key":"roundTimeout","value":4000},{"key":"currentNodeId","value":"0"},{"key":"max_block_gas","value":"20000000"},{"key":"timeoutPrevote","value":3000},{"key":"timeoutPropose","value":3000},{"key":"timeoutPrecommit","value":3000}],"id":"Kayros-P2P-1","initial":"uninitialized","states":[{"name":"uninitialized","after":[],"always":[],"on":[{"name":"initialize","transitions":[{"target":"#Kayros-P2P-1.initialized","guard":null,"actions":[],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"initialized","after":[],"always":[],"on":[],"entry":[],"exit":[],"initial":"unstarted","states":[{"name":"unstarted","after":[],"always":[],"on":[{"name":"setupNode","transitions":[{"target":"#Kayros-P2P-1.initialized.unstarted","guard":null,"actions":[{"type":"setupNode","params":[]}],"meta":[]}]},{"name":"prestart","transitions":[{"target":"#Kayros-P2P-1.initialized.prestart","guard":null,"actions":[],"meta":[]}]},{"name":"setup","transitions":[{"target":"#Kayros-P2P-1.initialized.unstarted","guard":null,"actions":[{"type":"setup","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"#Kayros-P2P-1.initialized.started","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"prestart","after":[{"name":"500","transitions":[{"target":"#Kayros-P2P-1.initialized.started","guard":null,"actions":[],"meta":[]}]}],"always":[],"on":[],"entry":[],"exit":[],"initial":"","states":[]},{"name":"started","after":[],"always":[],"on":[{"name":"newTransaction","transitions":[{"target":"","guard":{"type":"ifNewTransaction","params":[]},"actions":[{"type":"addToMempool","params":[]},{"type":"registerWithKayros","params":[]},{"type":"sendNewTransactionResponse","params":[]},{"type":"forwardMsgToChat","params":[{"key":"protocolId","value":"mempool"}]}],"meta":[]}]},{"name":"receiveStateSyncRequest","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncRequest","params":[]}],"meta":[]}]},{"name":"receiveMissingTransactionsRequest","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveMissingTransactionsRequest","params":[]}],"meta":[]}]},{"name":"updateNode","transitions":[{"target":"","guard":null,"actions":[{"type":"updateNodeAndReturn","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"Node","states":[{"name":"Node","after":[],"always":[{"name":"always","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator","actions":[{"type":"registerValidatorWithNetwork","params":[]}],"guard":{"type":"ifNodeIsValidator","params":[]},"meta":[]}]}],"on":[{"name":"becomeValidator","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator","guard":null,"actions":[{"type":"registerValidatorWithNetwork","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveStateSyncResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncResponse","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveCommit","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveCommit","params":[]}],"meta":[]}]},{"name":"receiveUpdateNodeResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeResponse","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"Validator","after":[],"always":[],"on":[{"name":"stop","transitions":[{"target":"#Kayros-P2P-1.stopped","guard":null,"actions":[],"meta":[]}]},{"name":"receiveUpdateNodeResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeResponse","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"registerValidatorWithNetwork","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveCommit","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveCommit","params":[]}],"meta":[]}]},{"name":"receiveUpdateNodeRequest","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeRequest","params":[]}],"meta":[]}]},{"name":"receiveStateSyncResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncResponse","params":[]},{"type":"requestValidatorNodeInfoIfSynced","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"active","states":[{"name":"active","after":[],"always":[{"name":"always","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.propose","guard":{"type":"ifAllTransactions","params":[]},"actions":[],"meta":[]}]}],"on":[{"name":"receiveMissingTransactions","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.active","guard":null,"actions":[{"type":"receiveMissingTransactions","params":[]}],"meta":[]}]}],"entry":[{"type":"getKayrosTxs","params":[]}],"exit":[],"initial":"","states":[]},{"name":"propose","after":[{"name":"timeoutCommit","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.active","guard":null,"actions":[],"meta":[]}]}],"always":[],"on":[],"entry":[{"type":"commitBlock","params":[]},{"type":"sendCommit","params":[]},{"type":"cancelActiveIntervals","params":[{"key":"after","value":"timeoutCommit"}]}],"exit":[],"initial":"","states":[]}]}]}]},{"name":"stopped","after":[],"always":[],"on":[{"name":"restart","transitions":[{"target":"#Kayros-P2P-1.initialized.unstarted","guard":null,"actions":[],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]}]} +{"context":[{"key":"blockTimeout","value":"timeoutCommit"},{"key":"max_tx_bytes","value":65536},{"key":"timeoutCommit","value":4000},{"key":"max_block_gas","value":"20000000"},{"key":"timeoutMissingTxs","value":4000},{"key":"kayros_base_url","value":"https://kayros.provable.dev"},{"key":"kayros_user_key","value":""},{"key":"threshold_commit","value":51},{"key":"threshold_finalize","value":75},{"key":"genesis_uuid","value":""},{"key":"data_type_id","value":""}],"id":"Kayros-P2P-1","initial":"uninitialized","states":[{"name":"uninitialized","after":[],"always":[],"on":[{"name":"initialize","transitions":[{"target":"#Kayros-P2P-1.initialized","guard":null,"actions":[],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"initialized","after":[],"always":[],"on":[],"entry":[],"exit":[],"initial":"unstarted","states":[{"name":"unstarted","after":[],"always":[],"on":[{"name":"setupNode","transitions":[{"target":"#Kayros-P2P-1.initialized.unstarted","guard":null,"actions":[{"type":"setupNode","params":[]}],"meta":[]}]},{"name":"prestart","transitions":[{"target":"#Kayros-P2P-1.initialized.prestart","guard":null,"actions":[],"meta":[]}]},{"name":"setup","transitions":[{"target":"#Kayros-P2P-1.initialized.unstarted","guard":null,"actions":[{"type":"setup","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"#Kayros-P2P-1.initialized.started","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"prestart","after":[{"name":"500","transitions":[{"target":"#Kayros-P2P-1.initialized.started","guard":null,"actions":[],"meta":[]}]}],"always":[],"on":[],"entry":[],"exit":[],"initial":"","states":[]},{"name":"started","after":[],"always":[],"on":[{"name":"newTransaction","transitions":[{"target":"","guard":{"type":"ifNewTransaction","params":[]},"actions":[{"type":"addToMempool","params":[]},{"type":"registerWithKayros","params":[]},{"type":"sendNewTransactionResponse","params":[]},{"type":"forwardMsgToChat","params":[{"key":"protocolId","value":"mempool"}]}],"meta":[]}]},{"name":"receiveStateSyncRequest","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncRequest","params":[]}],"meta":[]}]},{"name":"updateNode","transitions":[{"target":"","guard":null,"actions":[{"type":"updateNodeAndReturn","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"Node","states":[{"name":"Node","after":[],"always":[{"name":"always","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator","actions":[{"type":"registerValidatorWithNetwork","params":[]}],"guard":{"type":"ifNodeIsValidator","params":[]},"meta":[]}]}],"on":[{"name":"becomeValidator","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator","guard":null,"actions":[{"type":"registerValidatorWithNetwork","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveStateSyncResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncResponse","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveCommit","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveCommit","params":[]}],"meta":[]}]},{"name":"receiveUpdateNodeResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeResponse","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"Validator","after":[],"always":[],"on":[{"name":"stop","transitions":[{"target":"#Kayros-P2P-1.stopped","guard":null,"actions":[],"meta":[]}]},{"name":"receiveUpdateNodeResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeResponse","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"registerValidatorWithNetwork","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveCommit","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveCommit","params":[]}],"meta":[]}]},{"name":"receiveUpdateNodeRequest","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeRequest","params":[]}],"meta":[]}]},{"name":"receiveStateSyncResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncResponse","params":[]},{"type":"requestValidatorNodeInfoIfSynced","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"active","states":[{"name":"active","after":[{"name":"timeoutMissingTxs","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.propose","guard":null,"actions":[],"meta":[]}]}],"always":[{"name":"always","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.propose","guard":{"type":"ifAllTransactions","params":[]},"actions":[],"meta":[]}]}],"on":[{"name":"receiveMissingTransactions","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.active","guard":null,"actions":[{"type":"receiveMissingTransactions","params":[]}],"meta":[]}]}],"entry":[{"type":"getKayrosTxs","params":[]},{"type":"cancelActiveIntervals","params":[{"key":"after","value":"timeoutMissingTxs"}]}],"exit":[],"initial":"","states":[]},{"name":"propose","after":[{"name":"timeoutCommit","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.active","guard":null,"actions":[],"meta":[]}]}],"always":[],"on":[],"entry":[{"type":"commitBlock","params":[]},{"type":"sendCommit","params":[]},{"type":"cancelActiveIntervals","params":[{"key":"after","value":"timeoutCommit"}]}],"exit":[],"initial":"","states":[]}]}]}]},{"name":"stopped","after":[],"always":[],"on":[{"name":"restart","transitions":[{"target":"#Kayros-P2P-1.initialized.unstarted","guard":null,"actions":[],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]}]} diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.ts b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.ts index 314f6288..02075526 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.ts +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.ts @@ -1,19 +1,19 @@ +// @ts-nocheck import { createMachine } from "xstate"; export const machine = createMachine({ context: { - log: "", - votedFor: "0", - nextIndex: "[]", - currentTerm: "0", - blockTimeout: "roundTimeout", - max_tx_bytes: "65536", - roundTimeout: 4000, - currentNodeId: "0", + blockTimeout: "timeoutCommit", + max_tx_bytes: 65536, + timeoutCommit: 4000, max_block_gas: "20000000", - timeoutPrevote: 3000, - timeoutPropose: 3000, - timeoutPrecommit: 3000, + timeoutMissingTxs: 4000, + kayros_base_url: "https://kayros.provable.dev", + kayros_user_key: "", + threshold_commit: 51, + threshold_finalize: 75, + genesis_uuid: "", + data_type_id: "", }, id: "Kayros-P2P-1", initial: "uninitialized", @@ -218,15 +218,28 @@ export const machine = createMachine({ }, }, }, + after: { + timeoutMissingTxs: { + target: "propose", + }, + }, always: { target: "propose", guard: { type: "ifAllTransactions", }, }, - entry: { - type: "getKayrosTxs", - }, + entry: [ + { + type: "getKayrosTxs", + }, + { + type: "cancelActiveIntervals", + params: { + after: "timeoutMissingTxs", + }, + }, + ], }, propose: { after: { @@ -269,15 +282,15 @@ export const machine = createMachine({ // Add your action code here // ... }, - commitBlock: function (context, event) { + cancelActiveIntervals: function (context, event) { // Add your action code here // ... }, - sendCommit: function (context, event) { + commitBlock: function (context, event) { // Add your action code here // ... }, - cancelActiveIntervals: function (context, event) { + sendCommit: function (context, event) { // Add your action code here // ... }, diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/go.mod b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/go.mod index de46dbd5..2d009ea2 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/go.mod +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/go.mod @@ -20,18 +20,19 @@ require github.com/loredanacirstea/wasmx-consensus-utils v0.0.0 require github.com/loredanacirstea/wasmx-blocks v0.0.0 -require github.com/loredanacirstea/wasmx-env-multichain v0.0.0 +require github.com/loredanacirstea/wasmx-env-multichain v0.0.0 // indirect require github.com/loredanacirstea/wasmx-raft-lib v0.0.0 + require github.com/loredanacirstea/wasmx-raftp2p-lib v0.0.0 require ( - cosmossdk.io/math v1.5.3 - github.com/loredanacirstea/wasmx-env-p2p v0.0.0 github.com/loredanacirstea/wasmx-env-httpclient v0.0.0 + github.com/loredanacirstea/wasmx-env-p2p v0.0.0 ) require ( + cosmossdk.io/math v1.5.3 // indirect github.com/loredanacirstea/wasmx-env-utils v0.0.0 // indirect github.com/loredanacirstea/wasmx-utils v0.0.0 // indirect ) diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go index c46ae579..8bbda079 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go @@ -5,8 +5,8 @@ import ( "encoding/json" "fmt" - wasmx "github.com/loredanacirstea/wasmx-env/lib" p2p "github.com/loredanacirstea/wasmx-env-p2p/lib" + wasmx "github.com/loredanacirstea/wasmx-env/lib" fsm "github.com/loredanacirstea/wasmx-fsm/lib" raftlib "github.com/loredanacirstea/wasmx-raft-lib/lib" ) @@ -15,84 +15,68 @@ import ( const ( CHAT_ROOM_PROTOCOL = "kayros_p2p_protocol" CHAT_ROOM_MEMPOOL = CHAT_ROOM_PROTOCOL - CHAT_ROOM_BLOCKHASH = "kayros_blockhash_chatroom" STORAGE_KEY_KAYROS_CONFIG = "kayros_config" STORAGE_KEY_LAST_UUID = "kayros_last_uuid" STORAGE_KEY_CONSENSUS_CONFIG = "consensus_config" - STORAGE_KEY_BLOCK_COMMITS = "block_commits_" // Prefix for block commit mappings - STORAGE_KEY_PENDING_TXS = "pending_txs" // Transactions needed for current block - STORAGE_KEY_KAYROS_TX_META = "kayros_tx_meta_" // Prefix for Kayros tx metadata - STORAGE_KEY_BLOCK_KAYROS = "block_kayros_" // Prefix for block Kayros metadata - MAX_TXS_PER_BLOCK = 100 // Default max transactions to fetch from Kayros per block + STORAGE_KEY_BLOCK_COMMITS = "block_commits_" // Prefix for block commit mappings + STORAGE_KEY_PENDING_TXS = "pending_txs" // Transactions needed for current block + STORAGE_KEY_KAYROS_TX_META = "kayros_tx_meta_" // Prefix for Kayros tx metadata + STORAGE_KEY_BLOCK_KAYROS = "block_kayros_" // Prefix for block Kayros metadata + MAX_TXS_PER_BLOCK = 100 // Default max transactions to fetch from Kayros per block + + CTX_KAYROS_BASE_URL = "kayros_base_url" + CTX_KAYROS_USER_KEY = "kayros_user_key" + CTX_DATA_TYPE_ID = "data_type_id" + CTX_THRESHOLD_COMMIT = "threshold_commit" + CTX_THRESHOLD_FINALIZE = "threshold_finalize" + CTX_GENESIS_UUID = "genesis_uuid" ) -var kayrosClient *KayrosClient - -// InitializeKayrosClient initializes the Kayros client with configuration -func InitializeKayrosClient(config KayrosConfig) error { - kayrosClient = NewKayrosClient(config) - // Store config in state - configData, err := json.Marshal(config) - if err != nil { - return err - } - wasmx.StorageStore([]byte(STORAGE_KEY_KAYROS_CONFIG), configData) - return nil -} - // GetKayrosClient retrieves the Kayros client, initializing if needed func GetKayrosClient() (*KayrosClient, error) { - if kayrosClient != nil { - return kayrosClient, nil - } - - // Try to load from state - configData := wasmx.StorageLoad([]byte(STORAGE_KEY_KAYROS_CONFIG)) - if len(configData) == 0 { - return nil, fmt.Errorf("kayros client not initialized") - } - - var config KayrosConfig - if err := json.Unmarshal(configData, &config); err != nil { - return nil, err + config := KayrosConfig{ + ApiBaseUrl: sGet(CTX_KAYROS_BASE_URL), } - - kayrosClient = NewKayrosClient(config) + kayrosClient := NewKayrosClient(config) return kayrosClient, nil } // GetLastKayrosUUID retrieves the last processed Kayros UUID from state func GetLastKayrosUUID() string { - data := wasmx.StorageLoad([]byte(STORAGE_KEY_LAST_UUID)) + data := sGet(STORAGE_KEY_LAST_UUID) return string(data) } // SetLastKayrosUUID stores the last processed Kayros UUID in state func SetLastKayrosUUID(uuid string) { - wasmx.StorageStore([]byte(STORAGE_KEY_LAST_UUID), []byte(uuid)) + sSet(STORAGE_KEY_LAST_UUID, uuid) } // GetConsensusConfig retrieves the consensus configuration from state func GetConsensusConfig() (*ConsensusConfig, error) { - data := wasmx.StorageLoad([]byte(STORAGE_KEY_CONSENSUS_CONFIG)) - if len(data) == 0 { - return nil, fmt.Errorf("consensus config not initialized") + thresholdCommit := 51 // default + thresholdFinalize := 75 // default + + commitStr := sGet(CTX_THRESHOLD_COMMIT) + if commitStr != "" { + if val, err := fsm.ParseInt32(commitStr); err == nil { + thresholdCommit = int(val) + } } - var config ConsensusConfig - if err := json.Unmarshal(data, &config); err != nil { - return nil, err + + finalizeStr := sGet(CTX_THRESHOLD_FINALIZE) + if finalizeStr != "" { + if val, err := fsm.ParseInt32(finalizeStr); err == nil { + thresholdFinalize = int(val) + } } - return &config, nil -} -// SetConsensusConfig stores the consensus configuration in state -func SetConsensusConfig(config ConsensusConfig) error { - data, err := json.Marshal(config) - if err != nil { - return err + config := ConsensusConfig{ + ThresholdCommit: thresholdCommit, + ThresholdFinalize: thresholdFinalize, + GenesisUUID: sGet(CTX_GENESIS_UUID), } - wasmx.StorageStore([]byte(STORAGE_KEY_CONSENSUS_CONFIG), data) - return nil + return &config, nil } // GetBlockCommitMapping retrieves the commit mapping for a specific block @@ -308,10 +292,6 @@ func GetKayrosTxs(params []fsm.ActionParam, event fsm.EventObject) error { LoggerError("failed to get consensus config for genesis UUID", []string{"error", err.Error()}) return err } - if config.GenesisUUID == "" { - LoggerInfo("no genesis UUID configured, skipping block production", []string{}) - return nil - } lastUUID = config.GenesisUUID LoggerInfo("using genesis UUID", []string{"uuid", lastUUID}) } @@ -361,8 +341,15 @@ func GetKayrosTxs(params []fsm.ActionParam, event fsm.EventObject) error { LoggerError("failed to store Kayros tx metadata", []string{"txHash", txHash, "error", err.Error()}) } + // Convert hex hash to base64 for mempool check (mempool uses base64 format) + txHashBase64, err := HexHashToBase64(txHash) + if err != nil { + LoggerError("failed to decode tx hash from Kayros", []string{"txHash", txHash, "error", err.Error()}) + continue + } + // Check if we have this transaction in our mempool - if mp.HasSeen(txHash) { + if mp.HasSeen(txHashBase64) { LoggerDebug("transaction in mempool", []string{"txHash", txHash, "kayrosId", record.HashItemHex}) continue } @@ -391,12 +378,8 @@ func GetKayrosTxs(params []fsm.ActionParam, event fsm.EventObject) error { } } - // Update the last processed UUID to the last record's UUID - if len(records) > 0 { - lastRecord := records[len(records)-1] - SetLastKayrosUUID(lastRecord.UuidHex) - LoggerDebug("updated last Kayros UUID", []string{"uuid", lastRecord.UuidHex}) - } + // Note: LastKayrosUUID is updated in CommitBlock after successful block commit + // This ensures we don't skip transactions if block commit fails return nil } @@ -558,13 +541,52 @@ func CheckConsensusThresholds(mapping *BlockCommitMapping) error { // Check commit threshold for potential rollback (e.g., 51% have committed but disagree) if commitPercentage >= config.ThresholdCommit && len(hashCounts) > 1 { - // We have enough commits but they disagree - this might require rollback - LoggerInfo("commit threshold reached but hashes disagree, may need rollback", []string{ + // We have enough commits but they disagree - check if we need to rollback + LoggerInfo("commit threshold reached but hashes disagree, checking rollback", []string{ "blockNumber", fmt.Sprintf("%d", mapping.BlockNumber), "uniqueHashes", fmt.Sprintf("%d", len(hashCounts)), "commitPercentage", fmt.Sprintf("%d", commitPercentage), }) - // TODO: Implement rollback logic if our hash doesn't match the majority + + // Get our block hash to compare + st, err := raftlib.GetCurrentState() + if err != nil { + return err + } + ourHash := base64.StdEncoding.EncodeToString(st.NextHash) + + // If our hash doesn't match the majority hash, we need to rollback + if ourHash != maxHash { + LoggerInfo("our hash doesn't match majority, initiating rollback", []string{ + "blockNumber", fmt.Sprintf("%d", mapping.BlockNumber), + "ourHash", ourHash, + "majorityHash", maxHash, + }) + + // Rollback to the block before the disagreement + // Using raft.Rollback which handles multiple blocks + rollbackHeight := mapping.BlockNumber - 1 + err := raftlib.Rollback([]fsm.ActionParam{ + {Key: "height", Value: fmt.Sprintf("%d", rollbackHeight)}, + }, fsm.EventObject{}) + if err != nil { + LoggerError("rollback failed", []string{"error", err.Error()}) + return err + } + + // Clear pending txs and reset Kayros UUID to re-fetch + SetPendingTxHashes([]string{}) + + // Reset LastKayrosUUID to the UUID from the last good block + // This will cause GetKayrosTxs to re-fetch from that point + lastGoodBlockMeta, err := GetBlockKayrosMetadata(rollbackHeight) + if err == nil && lastGoodBlockMeta != nil && lastGoodBlockMeta.LastUUID != "" { + SetLastKayrosUUID(lastGoodBlockMeta.LastUUID) + LoggerInfo("reset Kayros UUID after rollback", []string{"uuid", lastGoodBlockMeta.LastUUID}) + } + + LoggerInfo("rollback completed", []string{"toHeight", fmt.Sprintf("%d", rollbackHeight)}) + } } return nil @@ -868,7 +890,7 @@ func ReceiveMissingTransactions(params []fsm.ActionParam, event fsm.EventObject) } // IfAllTransactions is a guard that checks if we have all transactions needed for the current block -func IfAllTransactions(params []fsm.GuardParam, event fsm.EventObject) bool { +func IfAllTransactions(params []fsm.ActionParam, event fsm.EventObject) bool { // Get pending transaction hashes pendingHashes, err := GetPendingTxHashes() if err != nil { @@ -892,7 +914,15 @@ func IfAllTransactions(params []fsm.GuardParam, event fsm.EventObject) bool { // Check if all pending transactions are in mempool missingCount := 0 for _, txHash := range pendingHashes { - if !mp.HasSeen(txHash) { + // Convert hex hash to base64 for mempool check (mempool uses base64 format) + txHashBase64, err := HexHashToBase64(txHash) + if err != nil { + LoggerError("failed to convert tx hash to base64", []string{"txHash", txHash, "error", err.Error()}) + missingCount++ + continue + } + + if !mp.HasSeen(txHashBase64) { missingCount++ } } diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/block.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/block.go new file mode 100644 index 00000000..44cf2fd9 --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/block.go @@ -0,0 +1,520 @@ +package lib + +import ( + "encoding/base64" + "encoding/hex" + "encoding/json" + "fmt" + "strings" + "time" + + blocks "github.com/loredanacirstea/wasmx-blocks/lib" + consutils "github.com/loredanacirstea/wasmx-consensus-utils/lib" + consensuswrap "github.com/loredanacirstea/wasmx-env-consensus/lib" + typestnd "github.com/loredanacirstea/wasmx-env-consensus/lib" + p2p "github.com/loredanacirstea/wasmx-env-p2p/lib" + wasmx "github.com/loredanacirstea/wasmx-env/lib" + fsm "github.com/loredanacirstea/wasmx-fsm/lib" + raftlib "github.com/loredanacirstea/wasmx-raft-lib/lib" + stakinglib "github.com/loredanacirstea/wasmx-staking/lib" +) + +const ( + METAINFO_KEY_KAYROS_RECORDS = "kayros_records" +) + +// CommitBlock builds and commits a block using Kayros-ordered transactions +// This is called as an entry action when transitioning to the propose state +func CommitBlock(params []fsm.ActionParam, event fsm.EventObject) error { + // Get pending transaction hashes (ordered by Kayros) + pendingHashes, err := GetPendingTxHashes() + if err != nil { + return fmt.Errorf("failed to get pending tx hashes: %v", err) + } + + LoggerInfo("committing block with Kayros-ordered transactions", []string{ + "txCount", fmt.Sprintf("%d", len(pendingHashes)), + }) + + // Get mempool to fetch actual transaction bytes + mp, err := raftlib.GetMempool() + if err != nil { + return fmt.Errorf("failed to get mempool: %v", err) + } + + // Collect transactions in Kayros order and track last UUID + txs := make([][]byte, 0, len(pendingHashes)) + var lastUUID string + for _, txHash := range pendingHashes { + // Convert hex hash to base64 for mempool lookup (mempool uses base64 keys) + txHashBase64, err := HexHashToBase64(txHash) + if err != nil { + LoggerError("failed to convert tx hash to base64", []string{"txHash", txHash, "error", err.Error()}) + continue + } + + if mempoolTx, ok := mp.Map[txHashBase64]; ok { + txs = append(txs, mempoolTx.Tx) + // Get the Kayros metadata for this tx to track last UUID + if txMeta, err := GetKayrosTxMetadata(txHash); err == nil && txMeta != nil { + lastUUID = txMeta.UUID + } + } else { + LoggerError("transaction not found in mempool", []string{"txHash", txHash, "txHashBase64", txHashBase64}) + // Skip missing transactions - they should have been fetched + } + } + + // Build and commit the block + // In Kayros P2P, all validators build blocks independently, so disable optimistic execution + err = buildKayrosBlockProposal(txs, pendingHashes, false, raftlib.MaxBlockSizeBytes) + if err != nil { + return err + } + + // After successful block commit, update the last Kayros UUID + if lastUUID != "" { + SetLastKayrosUUID(lastUUID) + LoggerDebug("updated last Kayros UUID after block commit", []string{"uuid", lastUUID}) + } + + // Clear pending transaction hashes for next block + if err := SetPendingTxHashes([]string{}); err != nil { + LoggerError("failed to clear pending tx hashes", []string{"error", err.Error()}) + } + + return nil +} + +// buildKayrosBlockProposal creates a block proposal with Kayros metadata +func buildKayrosBlockProposal(txs [][]byte, txHashes []string, optimisticExecution bool, maxDataBytes int64) error { + if txs == nil { + txs = make([][]byte, 0) + } + + // Get last log index for height + last, err := raftlib.GetLastLogIndex() + if err != nil { + return err + } + height := last + 1 + LoggerDebug("start Kayros block proposal", []string{"height", raftlib.Int64ToString(height)}) + + // Gather state and validators + st, err := raftlib.GetCurrentState() + if err != nil { + return err + } + validators, err := raftlib.GetAllValidators() + if err != nil { + return err + } + activeInfos, err := consutils.GetActiveValidatorInfo(validators) + if err != nil { + return err + } + validatorInfos := consutils.SortTendermintValidators(activeInfos) + validatorSet := typestnd.TendermintValidators{Validators: validatorInfos} + + lastBlockCommit := getLastBlockCommitInternal(st) + + // Get previous block validators for the last block commit signatures + previousBlock, err := raftlib.GetLogEntryAggregate(height - 1) + var previousValidatorSet typestnd.TendermintValidators + if previousBlock != nil { + err = json.Unmarshal(previousBlock.Data.ValidatorInfo, &previousValidatorSet) + } else { + previousValidatorSet = validatorSet + } + + signatures := consutils.FilterAndSortCommitSignatures(lastBlockCommit.Signatures, previousValidatorSet.Validators) + if len(signatures) != len(previousValidatorSet.Validators) && height > (raftlib.LOG_START+1) { + raftlib.Revert(fmt.Sprintf(`last block validator set length mismatch with signature list: expected %d, got %d`, len(signatures), len(previousValidatorSet.Validators))) + } + + lastCommit := typestnd.CommitInfo{Round: 0, Votes: []typestnd.VoteInfo{}} + localLastCommit := typestnd.ExtendedCommitInfo{Round: 0, Votes: []typestnd.ExtendedVoteInfo{}} + for i := 0; i < len(signatures); i++ { + commitSig := signatures[i] + val := previousValidatorSet.Validators[i] + + vaddress := wasmx.AddrCanonicalize(string(val.OperatorAddress)) + validator := typestnd.Validator{Address: vaddress, Power: val.VotingPower} + voteInfo := typestnd.VoteInfo{Validator: validator, BlockIDFlag: commitSig.BlockIDFlag} + lastCommit.Votes = append(lastCommit.Votes, voteInfo) + + extendedVoteInfo := typestnd.ExtendedVoteInfo{ + Validator: validator, + VoteExtension: []byte{}, + ExtensionSignature: []byte{}, + BlockIDFlag: commitSig.BlockIDFlag, + } + localLastCommit.Votes = append(localLastCommit.Votes, extendedVoteInfo) + } + + nextValsHash, err := consensuswrap.ValidatorsHash(validatorInfos) + if err != nil { + return err + } + misbehavior := []typestnd.Misbehavior{} + timeNow := time.Now() + timeISO := timeNow.UTC().Format(time.RFC3339Nano) + + t, _ := time.Parse(time.RFC3339Nano, st.LastTime) + if t.UnixMilli() >= timeNow.UnixMilli() { + raftlib.Revert(fmt.Sprintf(`last block time %s higher than current time %s, revert and skip round`, st.LastTime, timeISO)) + } + + prepareReq := typestnd.RequestPrepareProposal{ + MaxTxBytes: maxDataBytes, + Txs: txs, + LocalLastCommit: localLastCommit, + Misbehavior: misbehavior, + Height: height, + Time: timeISO, + NextValidatorsHash: nextValsHash, + ProposerAddress: st.ValidatorAddress, + } + prepareResp, err := consensuswrap.PrepareProposal(prepareReq) + if err != nil { + return err + } + + sortedBlockCommits := lastBlockCommit + if height > (raftlib.LOG_START + 1) { + sortedBlockCommits, err = consutils.GetSortedBlockCommits(lastBlockCommit, previousValidatorSet.Validators) + sortedBlockCommits = consutils.CleanAbsentCommits(sortedBlockCommits) + } + evidence := typestnd.Evidence{} + consHash := []byte{} + if params, err := raftlib.GetConsensusParams(height); err == nil && params != nil { + if h, err2 := consutils.GetConsensusParamsHash(*params); err2 == nil { + consHash = h + } + } + + lastCommitHashHex := wasmx.HexString(strings.ToUpper(hex.EncodeToString(consutils.GetCommitHash(sortedBlockCommits)))) + + header := typestnd.Header{ + Version: typestnd.VersionConsensus{Block: typestnd.BlockProtocol, App: st.Version.Consensus.App}, + ChainID: st.ChainID, + Height: height, + Time: prepareReq.Time, + LastBlockID: st.LastBlockID, + LastCommitHash: lastCommitHashHex, + DataHash: wasmx.HexString(strings.ToUpper(hex.EncodeToString(consutils.GetTxsHash(prepareResp.Txs)))), + ValidatorsHash: wasmx.HexString(strings.ToUpper(hex.EncodeToString(nextValsHash))), + NextValidatorsHash: wasmx.HexString(strings.ToUpper(hex.EncodeToString(nextValsHash))), + ConsensusHash: wasmx.HexString(strings.ToUpper(hex.EncodeToString(consHash))), + AppHash: wasmx.HexString(strings.ToUpper(hex.EncodeToString(st.AppHash))), + LastResultsHash: wasmx.HexString(strings.ToUpper(hex.EncodeToString(st.LastResultsHash))), + EvidenceHash: wasmx.HexString(strings.ToUpper(hex.EncodeToString(consutils.GetEvidenceHash(evidence)))), + ProposerAddress: st.ValidatorAddress, + } + hhash, err := consensuswrap.HeaderHash(header) + if err != nil { + return err + } + LoggerInfo("Kayros block proposal", []string{ + "height", raftlib.Int64ToString(height), + "hash", base64.StdEncoding.EncodeToString(hhash), + "txCount", fmt.Sprintf("%d", len(txs)), + }) + + processReq := typestnd.RequestProcessProposal{ + Txs: prepareResp.Txs, + ProposedLastCommit: lastCommit, + Misbehavior: prepareReq.Misbehavior, + Hash: hhash, + Height: prepareReq.Height, + Time: prepareReq.Time, + NextValidatorsHash: prepareReq.NextValidatorsHash, + ProposerAddress: prepareReq.ProposerAddress, + } + processResp, err := consensuswrap.ProcessProposal(processReq) + if err != nil { + return err + } + if processResp.Status == typestnd.ProposalStatus_REJECT { + LoggerError("Kayros block rejected", []string{"height", raftlib.Int64ToString(processReq.Height)}) + return nil + } + + // Build metainfo with Kayros records + metainfo := map[string][]byte{} + if optimisticExecution { + if oe, err := consensuswrap.OptimisticExecution(processReq, processResp); err == nil { + metainfo = oe.Metainfo + } + } + + // Add Kayros metadata to metainfo + kayrosBlockMeta, err := BuildBlockKayrosMetadata(height) + if err != nil { + LoggerError("failed to build Kayros block metadata", []string{"error", err.Error()}) + } else if kayrosBlockMeta != nil && len(kayrosBlockMeta.Transactions) > 0 { + // kayrosMetaBytes, err := json.Marshal(kayrosBlockMeta) + // if err != nil { + // LoggerError("failed to marshal Kayros metadata", []string{"error", err.Error()}) + // } else { + // metainfo[METAINFO_KEY_KAYROS_RECORDS] = kayrosMetaBytes + // LoggerInfo("added Kayros metadata to block", []string{ + // "txCount", fmt.Sprintf("%d", len(kayrosBlockMeta.Transactions)), + // "firstUUID", kayrosBlockMeta.FirstUUID, + // "lastUUID", kayrosBlockMeta.LastUUID, + // }) + // } + } + + st, _ = raftlib.GetCurrentState() + st.NextHash = hhash + raftlib.SetCurrentState(st) + + err = appendLogWithKayrosMeta(processReq, header, sortedBlockCommits, optimisticExecution, metainfo, validatorSet) + if err != nil { + return err + } + + // In Kayros P2P, finalize the block immediately after appending to log + // (no voting phase - each validator finalizes independently) + entryobj, err := raftlib.GetLogEntryAggregate(height) + if err != nil { + return fmt.Errorf("failed to get log entry for finalization: %v", err) + } + if entryobj != nil { + _, err := raftlib.StartBlockFinalizationInternal(entryobj, false) + if err != nil { + return fmt.Errorf("failed to finalize block: %v", err) + } + // Update last applied to mark this block as finalized + if err := raftlib.SetLastApplied(height); err != nil { + return fmt.Errorf("failed to set last applied: %v", err) + } + } + + return nil +} + +// appendLogWithKayrosMeta creates a BlockEntry and LogEntryAggregate with Kayros metadata +func appendLogWithKayrosMeta(processReq typestnd.RequestProcessProposal, header typestnd.Header, blockCommit typestnd.BlockCommit, optimisticExecution bool, meta map[string][]byte, validatorSet typestnd.TendermintValidators) error { + if meta == nil { + meta = make(map[string][]byte) + } + + // Create RequestProcessProposalWithMetaInfo + wrap := typestnd.RequestProcessProposalWithMetaInfo{ + Request: processReq, + OptimisticExecution: optimisticExecution, + Metainfo: meta, + } + + blockData, err := json.Marshal(&wrap) + if err != nil { + return fmt.Errorf("failed to marshal block data: %v", err) + } + + blockHeader, err := json.Marshal(&header) + if err != nil { + return fmt.Errorf("failed to marshal block header: %v", err) + } + + commit, err := json.Marshal(&blockCommit) + if err != nil { + return fmt.Errorf("failed to marshal block commit: %v", err) + } + + leaderId, err := raftlib.GetCurrentNodeId() + if err != nil { + return fmt.Errorf("failed to get current node ID: %v", err) + } + + validator, err := getValidatorByHexAddrInternal(wasmx.HexString(processReq.ProposerAddress)) + if err != nil { + return fmt.Errorf("failed to get validator: %v", err) + } + + contractAddress := wasmx.GetAddressBz() + + validatorSetBytes, err := json.Marshal(&validatorSet) + if err != nil { + return fmt.Errorf("failed to marshal validator set: %v", err) + } + + // Create BlockEntry + blockEntry := blocks.BlockEntry{ + Index: processReq.Height, + ReaderContract: contractAddress, + WriterContract: contractAddress, + Data: blockData, + Header: blockHeader, + ProposerAddress: validator.OperatorAddress, + LastCommit: commit, + Evidence: []byte(`{"evidence":[]}`), + Result: []byte{}, + ValidatorInfo: validatorSetBytes, + } + + // Create LogEntryAggregate + entry := raftlib.LogEntryAggregate{ + Index: processReq.Height, + TermID: 0, + LeaderID: leaderId, + Data: blockEntry, + } + + return raftlib.AppendLogEntry(entry) +} + +// SendCommit broadcasts a commit message to other validators +func SendCommit(params []fsm.ActionParam, event fsm.EventObject) error { + st, err := raftlib.GetCurrentState() + if err != nil { + return err + } + + lastIndex, err := raftlib.GetLastLogIndex() + if err != nil { + return err + } + + // Get current node info + nodes, err := raftlib.GetNodeIPs() + if err != nil { + return err + } + ourId, err := raftlib.GetCurrentNodeId() + if err != nil { + return err + } + if int(ourId) >= len(nodes) { + return fmt.Errorf("our node ID out of range") + } + ourAddress := string(nodes[ourId].Address) + + // Create commit message + commit := BlockCommit{ + BlockNumber: lastIndex, + BlockHash: base64.StdEncoding.EncodeToString(st.NextHash), + Sender: ourAddress, + Timestamp: time.Now().UnixMilli(), + } + + // Sign the commit + commitBytes, err := json.Marshal(commit) + if err != nil { + return err + } + signature, err := raftlib.SignMessage(string(commitBytes)) + if err != nil { + LoggerError("failed to sign commit", []string{"error", err.Error()}) + } + commit.Signature = signature + + commitBytes, _ = json.Marshal(commit) + + // Build P2P message payload + payload := struct { + Run struct { + Event struct { + Type string `json:"type"` + Params []struct { + Key string `json:"key"` + Value string `json:"value"` + } `json:"params"` + } `json:"event"` + } `json:"run"` + }{} + payload.Run.Event.Type = "receiveCommit" + payload.Run.Event.Params = []struct { + Key string `json:"key"` + Value string `json:"value"` + }{ + {Key: "commit", Value: base64.StdEncoding.EncodeToString(commitBytes)}, + {Key: "sender", Value: ourAddress}, + } + msg, _ := json.Marshal(&payload) + + // Send to all peers + peers := make([]string, 0, len(nodes)-1) + for i := range nodes { + if int32(i) != ourId && raftlib.IsNodeActive(nodes[i]) { + peers = append(peers, nodes[i].Node.IP) + } + } + + if len(peers) == 0 { + LoggerDebug("no peers to send commit to", nil) + return nil + } + + contract := wasmx.GetAddress() + _, err = p2p.SendMessageToPeers(p2p.SendMessageToPeersRequest{ + Contract: contract, + Sender: contract, + Msg: msg, + ProtocolId: PROTOCOL_ID, + Peers: peers, + }) + + if err != nil { + LoggerError("failed to send commit", []string{"error", err.Error()}) + return err + } + + LoggerInfo("sent commit", []string{ + "blockNumber", fmt.Sprintf("%d", commit.BlockNumber), + "blockHash", commit.BlockHash, + "peerCount", fmt.Sprintf("%d", len(peers)), + }) + + return nil +} + +// Helper functions copied/adapted from raft + +// getLastBlockCommitInternal gets the last block commit from state +func getLastBlockCommitInternal(st raftlib.CurrentState) typestnd.BlockCommit { + return typestnd.BlockCommit{ + Height: st.NextHeight - 1, + Round: 0, + BlockID: st.LastBlockID, + Signatures: st.LastBlockSigs, + } +} + +// getValidatorByHexAddrInternal queries the staking module for a validator +func getValidatorByHexAddrInternal(addr wasmx.HexString) (stakinglib.Validator, error) { + payload := map[string]any{"ValidatorByHexAddr": map[string]any{"validator_addr": string(addr)}} + bz, err := json.Marshal(&payload) + if err != nil { + return stakinglib.Validator{}, err + } + resp, err := callStakingInternal(string(bz), true) + if err != nil { + return stakinglib.Validator{}, err + } + if resp.Success > 0 { + return stakinglib.Validator{}, fmt.Errorf("validator not found: %s", addr) + } + if resp.Data == "" { + return stakinglib.Validator{}, fmt.Errorf("validator not found: %s", addr) + } + var result struct { + Validator stakinglib.Validator `json:"validator"` + } + if err := json.Unmarshal([]byte(resp.Data), &result); err != nil { + return stakinglib.Validator{}, err + } + return result.Validator, nil +} + +// callStakingInternal calls the staking contract +func callStakingInternal(calldata string, isQuery bool) (wasmx.CallResponse, error) { + addr := wasmx.GetAddressByRole("staking") + ok, data := wasmx.CallSimple(addr, []byte(calldata), isQuery, MODULE_NAME) + resp := wasmx.CallResponse{Success: 0, Data: string(data)} + if !ok { + resp.Success = 1 + } + return resp, nil +} diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/kayros.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/kayros.go index 0b6b1a8c..e3fe37f1 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/kayros.go +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/kayros.go @@ -1,12 +1,13 @@ package lib import ( + "encoding/hex" "encoding/json" "fmt" "net/http" - wasmx "github.com/loredanacirstea/wasmx-env/lib" httpclient "github.com/loredanacirstea/wasmx-env-httpclient" + wasmx "github.com/loredanacirstea/wasmx-env/lib" ) // KayrosClient provides methods to interact with Kayros API @@ -21,10 +22,24 @@ func NewKayrosClient(config KayrosConfig) *KayrosClient { } } -// getDataType returns the formatted data_type for Kayros API (wasmx_) +// getDataType returns the formatted data_type for Kayros API +// Format: "wasmx_[_]" converted to hex and right-padded to 32 bytes func (kc *KayrosClient) getDataType() string { chainId := wasmx.GetChainId() - return fmt.Sprintf("wasmx_%s", chainId) + dataType := fmt.Sprintf("wasmx_%s", chainId) + + // Append data_type_id if provided + dataTypeId := sGet(CTX_DATA_TYPE_ID) + if dataTypeId != "" { + dataType = fmt.Sprintf("%s_%s", dataType, dataTypeId) + } + + // Convert to bytes and right-pad to 32 bytes + dataTypeBytes := make([]byte, 32) + copy(dataTypeBytes, []byte(dataType)) + + // Return as hex string + return hex.EncodeToString(dataTypeBytes) } // makeRequest performs an HTTP GET request to the Kayros API @@ -45,7 +60,7 @@ func (kc *KayrosClient) makeRequest(endpoint string) ([]byte, error) { FilePath: "", }, } - + LoggerDebug("http request", []string{"url", url}) resp := httpclient.Request(&req) if resp.Error != "" { @@ -128,9 +143,9 @@ func (kc *KayrosClient) GetRecordWithPrev(uuid string) (*KayrosRecord, error) { } // GetRecordsFromPrev retrieves multiple Kayros records from a previous UUID with a limit -// GET /api/database/records-from-prev?data_type=&uuid=&limit= +// GET /api/database/records-since-prev?data_type=&uuid=&limit= func (kc *KayrosClient) GetRecordsFromPrev(uuid string, limit int) ([]KayrosRecord, error) { - endpoint := fmt.Sprintf("/api/database/records-from-prev?data_type=%s&uuid=%s&limit=%d", + endpoint := fmt.Sprintf("/api/database/records-since-prev?data_type=%s&uuid=%s&limit=%d", kc.getDataType(), uuid, limit) respData, err := kc.makeRequest(endpoint) @@ -147,19 +162,23 @@ func (kc *KayrosClient) GetRecordsFromPrev(uuid string, limit int) ([]KayrosReco return nil, fmt.Errorf("Kayros API error: %s", kayrosResp.Message) } - return kayrosResp.Data, nil + return kayrosResp.Data.Records, nil } // makePostRequest performs an HTTP POST request to the Kayros API func (kc *KayrosClient) makePostRequest(endpoint string, body []byte) ([]byte, error) { url := fmt.Sprintf("%s%s", kc.config.ApiBaseUrl, endpoint) + // Get user key from context + userKey := sGet("kayros_user_key") + req := httpclient.HttpRequestWrap{ Request: httpclient.HttpRequest{ Method: "POST", Url: url, Header: http.Header{ "Content-Type": []string{"application/json"}, + "X-User-Key": []string{userKey}, }, Data: body, }, @@ -168,7 +187,8 @@ func (kc *KayrosClient) makePostRequest(endpoint string, body []byte) ([]byte, e FilePath: "", }, } - + reqbz, _ := json.Marshal(&req) + LoggerDebug("http request", []string{"url", url, "method", "POST", "data", string(body), "req", string(reqbz)}) resp := httpclient.Request(&req) if resp.Error != "" { diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/storage.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/storage.go index 55c21f80..2f921ba1 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/storage.go +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/storage.go @@ -1 +1,8 @@ package lib + +import ( + fsm "github.com/loredanacirstea/wasmx-fsm/lib" +) + +func sGet(key string) string { return string(fsm.GetContextValueInternal(key)) } +func sSet(key string, val string) { fsm.SetContextValue(key, val) } diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/types.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/types.go index 46dfe519..ee97a1b1 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/types.go +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/types.go @@ -43,13 +43,14 @@ type InstantiateMsg struct { // KayrosRecord represents a record in the Kayros database type KayrosRecord struct { - DataType string `json:"data_type"` - DataItemHex string `json:"data_item_hex"` - UuidHex string `json:"uuid_hex"` - HashItemHex string `json:"hash_item_hex"` // Kayros unique ID - PrevHashHex string `json:"prev_hash_hex"` - HashType string `json:"hash_type"` - Timestamp string `json:"timestamp"` + DataType string `json:"data_type"` + DataTypeHex string `json:"data_type_hex"` + DataItemHex string `json:"data_item_hex"` + UuidHex string `json:"uuid_hex"` + HashItemHex string `json:"hash_item_hex"` // Kayros unique ID + PrevHashHex string `json:"prev_hash_hex,omitempty"` // Optional - may not be in all responses + HashType string `json:"hash_type"` + Timestamp string `json:"timestamp"` } // KayrosApiResponse is the common response structure from Kayros API @@ -64,10 +65,17 @@ type KayrosRecordResponse struct { Data KayrosRecord `json:"data"` } +// KayrosRecordsData is the data structure for multiple record queries +type KayrosRecordsData struct { + Count int `json:"count"` + Limit int `json:"limit"` + Records []KayrosRecord `json:"records"` +} + // KayrosRecordsResponse is the response for multiple record queries type KayrosRecordsResponse struct { KayrosApiResponse - Data []KayrosRecord `json:"data"` + Data KayrosRecordsData `json:"data"` } // BlockCommit represents a commit from a validator for a specific block diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/utils.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/utils.go index 284f4899..5afed66d 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/utils.go +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/utils.go @@ -1,6 +1,9 @@ package lib import ( + "encoding/base64" + "encoding/hex" + wasmx "github.com/loredanacirstea/wasmx-env/lib" ) @@ -23,3 +26,13 @@ func LoggerDebugExtended(msg string, parts []string) { func Revert(message string) { wasmx.RevertWithModule(MODULE_NAME, message) } + +// HexHashToBase64 converts a hex-encoded hash to base64 format +// This is needed because mempool stores hashes in base64, but Kayros uses hex +func HexHashToBase64(hexHash string) (string, error) { + hashBytes, err := hex.DecodeString(hexHash) + if err != nil { + return "", err + } + return base64.StdEncoding.EncodeToString(hashBytes), nil +} diff --git a/tests/utils/utils.go b/tests/utils/utils.go index 329ca9f2..b9562e04 100644 --- a/tests/utils/utils.go +++ b/tests/utils/utils.go @@ -6,6 +6,7 @@ import ( "os" "path" "runtime" + "strings" "time" "cosmossdk.io/math" @@ -46,7 +47,19 @@ func SystemContractsModify(wasmRuntime string) func([]wasmxtypes.SystemContract) } else { contracts[i].Pinned = false } + } + } + for i := range contracts { + if contracts[i].Label == wasmxtypes.CONSENSUS_KAYROSP2P { + execmsg := &wasmxtypes.WasmxExecutionMessage{} + json.Unmarshal(contracts[i].InitMessage, execmsg) + + msg := string(execmsg.Data) + msg = strings.Replace(msg, `{"key":"data_type_id","value":""}`, fmt.Sprintf(`{"key":"data_type_id","value":"%d"}`, time.Now().UnixMilli()), 1) + execmsg.Data = []byte(msg) + execmsgbz, _ := json.Marshal(execmsg) + contracts[i].InitMessage = execmsgbz } } return contracts diff --git a/tests/wasmx/keeper_test.go b/tests/wasmx/keeper_test.go index 3a6cc9a1..2215d123 100644 --- a/tests/wasmx/keeper_test.go +++ b/tests/wasmx/keeper_test.go @@ -14,6 +14,7 @@ import ( dbm "github.com/cosmos/cosmos-db" wt "github.com/loredanacirstea/wasmx/testutil/wasmx" + "github.com/loredanacirstea/wasmx/x/vmhttpclient" // wasmedge "github.com/loredanacirstea/wasmx-wasmedge" wazero "github.com/loredanacirstea/wasmx-wazero" @@ -27,6 +28,10 @@ var ( runKnownFixme bool ) +func init() { + vmhttpclient.Setup() +} + // TestMain is the main entry point for the tests. func TestMain(m *testing.M) { // Add custom flags diff --git a/wasmx/app/app.go b/wasmx/app/app.go index 0de79921..e379a380 100644 --- a/wasmx/app/app.go +++ b/wasmx/app/app.go @@ -169,6 +169,7 @@ import ( docs "github.com/loredanacirstea/wasmx/docs" networkmodule "github.com/loredanacirstea/wasmx/x/network" + "github.com/loredanacirstea/wasmx/x/vmhttpclient" networkmodulekeeper "github.com/loredanacirstea/wasmx/x/network/keeper" @@ -261,7 +262,7 @@ func init() { vmkv.Setup() // vmimap.Setup() // vmsmtp.Setup() - // vmhttpclient.Setup() + vmhttpclient.Setup() // vmhttpserver.Setup() // vmoauth2client.Setup() } diff --git a/wasmx/multichain/helper.go b/wasmx/multichain/helper.go index 56a96491..86b7e7c5 100644 --- a/wasmx/multichain/helper.go +++ b/wasmx/multichain/helper.go @@ -65,8 +65,8 @@ func (*MockApiCtx) StartChainApis( } func CreateMockAppCreator(wasmVmMeta memc.IWasmVmMeta, appCreatorFactory NewAppCreator, homeDir string, getDB func(dbpath string) dbm.DB) (*mcfg.MultiChainApp, func(chainId string, chainCfg *menc.ChainConfig) mcfg.MythosApp) { - // level := "x/wasmx:debug,*:info" - level := "error" + level := "x/wasmx:debug,*:info" + // level := "error" filter, _ := ParseLogLevel(level) logger := log.NewLogger( os.Stderr, diff --git a/wasmx/testutil/wasmx/chain.go b/wasmx/testutil/wasmx/chain.go index 3f1f4bed..6b3b1383 100644 --- a/wasmx/testutil/wasmx/chain.go +++ b/wasmx/testutil/wasmx/chain.go @@ -493,7 +493,12 @@ func (chain TestChain) InitConsensusContract(resInit *abci.ResponseInitChain, no Contract: wasmxtypes.ROLE_CONSENSUS, Msg: msg, }) - chain.raftToLeader() + currentState = chain.GetCurrentState(chain.GetContext()) + if strings.Contains(currentState, "Kayros-P2P") { + chain.kayrosToValidator() + } else { + chain.raftToLeader() + } return err } @@ -827,6 +832,63 @@ func (chain TestChain) raftToLeader() { } } +// kayrosToValidator transitions Kayros P2P consensus to Validator state +// Kayros P2P doesn't have leader election - all validators produce blocks based on Kayros ordering +func (chain TestChain) kayrosToValidator() { + currentState := chain.GetCurrentState(chain.GetContext()) + // Check if we're in Kayros P2P consensus + if !strings.Contains(currentState, "Kayros-P2P") { + return + } + + // If in Node state, send becomeValidator event to transition to Validator + if strings.Contains(currentState, "Node") && !strings.Contains(currentState, "Validator") { + msg := []byte(`{"run":{"event": {"type": "becomeValidator", "params": []}}}`) + _, err := chain.App.NetworkKeeper.ExecuteContractInternal(chain.GetContext(), &types.MsgExecuteContract{ + Sender: wasmxtypes.ROLE_CONSENSUS, + Contract: wasmxtypes.ROLE_CONSENSUS, + Msg: msg, + }) + chain.suite.Require().NoError(err) + } + + currentState = chain.GetCurrentState(chain.GetContext()) + chain.suite.Require().Contains(currentState, "Validator") +} + +// KayrosCommitBlock triggers block production for Kayros P2P consensus +// This simulates the Kayros ordering service providing transaction ordering +func (chain TestChain) KayrosCommitBlock() (*abci.ResponseFinalizeBlock, error) { + currentState := chain.GetCurrentState(chain.GetContext()) + if !strings.Contains(currentState, "Kayros-P2P") { + return nil, fmt.Errorf("not in Kayros P2P consensus mode: %s", currentState) + } + + // If in active state, trigger the always transition to propose (if ifAllTransactions guard passes) + // The FSM will call getKayrosTxs, then ifAllTransactions, then commitBlock and sendCommit + if strings.Contains(currentState, "active") { + lastInterval := chain.GetLastInterval(chain.GetContext()) + blockDelay := chain.GetBlockDelay(chain.GetContext()) + + msg1 := []byte(fmt.Sprintf(`{"delay":"%s","state":"%s","intervalId":%s}`, blockDelay, currentState, lastInterval)) + _, err := chain.App.NetworkKeeper.ExecuteEntryPointInternal(chain.GetContext(), wasmxtypes.ENTRY_POINT_TIMED, &types.MsgExecuteContract{ + Sender: wasmxtypes.ROLE_CONSENSUS, + Contract: wasmxtypes.ROLE_CONSENSUS, + Msg: msg1, + }) + if err != nil { + return nil, fmt.Errorf("kayros commit block failed: %v", err) + } + } + + lastBlock := chain.App.LastBlockHeight() + res, _, _, err := chain.GetBlock(chain.GetContext(), lastBlock) + if err != nil { + return nil, fmt.Errorf("get new committed block failed: %v", err) + } + return res, nil +} + func (suite *KeeperTestSuite) commitBlock(chain *TestChain, res *abci.ResponseFinalizeBlock) { _, err := chain.App.Commit() require.NoError(suite.T(), err) diff --git a/wasmx/x/wasmx/keeper/precompiles.go b/wasmx/x/wasmx/keeper/precompiles.go index 4f5b35d2..e3edd09b 100644 --- a/wasmx/x/wasmx/keeper/precompiles.go +++ b/wasmx/x/wasmx/keeper/precompiles.go @@ -155,6 +155,8 @@ func (k *Keeper) ActivateSystemContract( var err error k.SetSystemContract(ctx, contract) + k.Logger(ctx).Info("activating system contract", "label", contract.Label, "hex_address", contract.Address, "code_id", codeID, "role", contract.Role) + if contract.Pinned { if err := k.pinCodeWithEvent(ctx, codeID, codeInfo.CodeHash, compiledFolderPath, contract.MeteringOff); err != nil { return sdkerr.Wrap(err, "pin system contract: "+contract.Label) diff --git a/wasmx/x/wasmx/types/system_contract.go b/wasmx/x/wasmx/types/system_contract.go index d50cae65..643b6996 100644 --- a/wasmx/x/wasmx/types/system_contract.go +++ b/wasmx/x/wasmx/types/system_contract.go @@ -83,6 +83,9 @@ var ADDR_EMAIL_HANDLER = "0x0000000000000000000000000000000000000063" var ADDR_ONDEMAND_SINGLE_LIBRARY = "0x0000000000000000000000000000000000000064" var ADDR_ONDEMAND_SINGLE = "0x0000000000000000000000000000000000000065" +var ADDR_CONSENSUS_KAYROSP2P_LIBRARY = "0x0000000000000000000000000000000000000071" +var ADDR_CONSENSUS_KAYROSP2P = "0x0000000000000000000000000000000000000072" + var ADDR_SYS_PROXY = "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" func StarterPrecompiles() SystemContracts { @@ -598,6 +601,12 @@ func ConsensusPrecompiles(minValidatorCount int32, enableEIDCheck bool, currentL panic("ConsensusPrecompiles: cannot marshal level0OnDemandInitMsg message") } + // genesis uuid is a valid time-based uuid that should not exist in the kayros database - for a new chain + kayrosP2PInitMsg, err := json.Marshal(WasmxExecutionMessage{Data: []byte(`{"instantiate":{"context":[{"key":"blockTimeout","value":"timeoutCommit"},{"key":"max_tx_bytes","value":"65536"},{"key":"timeoutCommit","value":"4000"},{"key":"max_block_gas","value":"20000000"},{"key":"timeoutMissingTxs","value":"4000"},{"key":"kayros_base_url","value":"https://kayros.provable.dev"},{"key":"kayros_user_key","value":"0x73db4aa00c2519ec5c060af0be9751e2f5f920413db68aa5ca2501b0df9c972e"},{"key":"threshold_commit","value":"51"},{"key":"threshold_finalize","value":"75"},{"key":"genesis_uuid","value":""},{"key":"data_type_id","value":""}],"initialState":"uninitialized"}}`)}) + if err != nil { + panic("ConsensusPrecompiles: cannot marshal kayrosP2PInitMsg message") + } + return []SystemContract{ { Address: ADDR_CONSENSUS_RAFT_LIBRARY, @@ -800,6 +809,25 @@ func ConsensusPrecompiles(minValidatorCount int32, enableEIDCheck bool, currentL StorageType: ContractStorageType_SingleConsensus, Deps: []string{INTERPRETER_FSM, BuildDep(ADDR_LEVEL0_ONDEMAND_LIBRARY, ROLE_LIBRARY)}, }, + { + Address: ADDR_CONSENSUS_KAYROSP2P_LIBRARY, + Label: CONSENSUS_KAYROSP2P_LIBRARY, + InitMessage: initMsg, + Pinned: true, + MeteringOff: true, + Role: &SystemContractRole{Role: ROLE_LIBRARY, Label: CONSENSUS_KAYROSP2P_LIBRARY}, + StorageType: ContractStorageType_SingleConsensus, + Deps: []string{}, + }, + { + Address: ADDR_CONSENSUS_KAYROSP2P, + Label: CONSENSUS_KAYROSP2P, + InitMessage: kayrosP2PInitMsg, + Pinned: false, + Role: &SystemContractRole{Role: ROLE_CONSENSUS, Label: CONSENSUS_KAYROSP2P}, + StorageType: ContractStorageType_SingleConsensus, + Deps: []string{INTERPRETER_FSM, BuildDep(ADDR_CONSENSUS_KAYROSP2P_LIBRARY, ROLE_LIBRARY)}, + }, } } @@ -911,7 +939,8 @@ func DefaultSystemContracts(accBech32Codec mcodec.AccBech32Codec, feeCollectorBe consensusPrecompiles := ConsensusPrecompiles(minValidatorCount, enableEIDCheck, 0, initialPortValues, erc20CodeId, derc20CodeId) for i, val := range consensusPrecompiles { - if val.Label == CONSENSUS_TENDERMINTP2P { + // if val.Label == CONSENSUS_TENDERMINTP2P { + if val.Label == CONSENSUS_KAYROSP2P { consensusPrecompiles[i].Role.Primary = true } } @@ -1072,6 +1101,49 @@ func DefaultOnDemandSingleContracts(accBech32Codec mcodec.AccBech32Codec, feeCol return precompiles } +func DefaultKayrosP2PContracts(accBech32Codec mcodec.AccBech32Codec, feeCollectorBech32 string, mintBech32 string, minValidatorCount int32, enableEIDCheck bool, initialPortValues string, bondBaseDenom string) SystemContracts { + + precompiles := StarterPrecompiles() + precompiles = append(precompiles, SimplePrecompiles()...) + precompiles = append(precompiles, InterpreterPrecompiles()...) + precompiles = append(precompiles, BasePrecompiles()...) + precompiles = append(precompiles, EIDPrecompiles()...) + precompiles = append(precompiles, HookPrecompiles()...) + precompiles = append(precompiles, CosmosPrecompiles(feeCollectorBech32, mintBech32, bondBaseDenom)...) + + erc20CodeId := int32(0) + derc20CodeId := int32(0) + for i, p := range precompiles { + if p.Label == ERC20_v001 { + erc20CodeId = int32(i + 1) + } + } + for i, p := range precompiles { + if p.Label == DERC20_v001 { + derc20CodeId = int32(i + 1) + } + } + if erc20CodeId == int32(0) || derc20CodeId == int32(0) { + panic(fmt.Sprintf("erc20 or derc20 contracts not found: erc20CodeId %d, derc20CodeId %d", erc20CodeId, derc20CodeId)) + } + + consensusPrecompiles := ConsensusPrecompiles(minValidatorCount, enableEIDCheck, 0, initialPortValues, erc20CodeId, derc20CodeId) + for i, val := range consensusPrecompiles { + if val.Label == CONSENSUS_KAYROSP2P { + consensusPrecompiles[i].Role.Primary = true + } + } + precompiles = append(precompiles, consensusPrecompiles...) + precompiles = append(precompiles, MultiChainPrecompiles(minValidatorCount, enableEIDCheck, erc20CodeId, derc20CodeId)...) + precompiles = append(precompiles, ChatPrecompiles()...) + + precompiles, err := FillRoles(precompiles, accBech32Codec, feeCollectorBech32) + if err != nil { + panic(err) + } + return precompiles +} + func (p SystemContract) Validate() error { if err := validateString(p.Label); err != nil { return err diff --git a/wasmx/x/wasmx/types/vm.go b/wasmx/x/wasmx/types/vm.go index 715f3a6b..6f85c170 100644 --- a/wasmx/x/wasmx/types/vm.go +++ b/wasmx/x/wasmx/types/vm.go @@ -331,6 +331,9 @@ var CONSENSUS_TENDERMINTP2P_LIBRARY = "tendermintp2p_library" var CONSENSUS_AVA_SNOWMAN = "consensus_ava_snowman_0.0.1" var CONSENSUS_AVA_SNOWMAN_LIBRARY = "ava_snowman_library" +var CONSENSUS_KAYROSP2P = "consensus_kayrosp2p_0.0.1" +var CONSENSUS_KAYROSP2P_LIBRARY = "kayrosp2p_library" + var CONSENSUS_LEVEL_LIBRARY = "level0_library" var LEVEL0_v001 = "level0_0.0.1" var LEVEL0_ONDEMAND_v001 = "level0_ondemand_0.0.1" diff --git a/wasmx/x/wasmx/vm/ops_wasi_rust_wasmx.go b/wasmx/x/wasmx/vm/ops_wasi_rust_wasmx.go index 9cf214a0..f0413cdf 100644 --- a/wasmx/x/wasmx/vm/ops_wasi_rust_wasmx.go +++ b/wasmx/x/wasmx/vm/ops_wasi_rust_wasmx.go @@ -681,6 +681,7 @@ func BuildWasmxEnvRusti64(context *Context, rnh memc.RuntimeHandler) (interface{ func ExecuteWasiCommand(context *Context, contractVm memc.IVm, funcName string, args []interface{}, interpreted bool) ([]int32, error) { var res []int32 var err error + fmt.Println("--ExecuteWasiCommand--", funcName) // wasi command style has only one entry point `_start`, // so we just pass our entry point as an ENV variable diff --git a/wasmx/x/wasmx/vm/precompiles/28.finite_state_machine.wasm b/wasmx/x/wasmx/vm/precompiles/28.finite_state_machine.wasm index 445a918103ccbb04f7223bedb9dae5bbba01ae06..4be6ebd94a59e55a66131ae1fbb2c4529df75e27 100644 GIT binary patch delta 79511 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 delta 79298 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ßH@w>x5 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

q4+l>@u8 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≻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%0A+r}^pcxSXy1*Buv$l^#+ZlGMNo*!h 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 LDsvNWcewu-(61N| literal 0 HcmV?d00001 diff --git a/wasmx/x/wasmx/vm/precompiles/fsm.go b/wasmx/x/wasmx/vm/precompiles/fsm.go index 6f8b2076..842906ab 100644 --- a/wasmx/x/wasmx/vm/precompiles/fsm.go +++ b/wasmx/x/wasmx/vm/precompiles/fsm.go @@ -39,3 +39,7 @@ var Level0OnDemand001 = func(libAddressBech32 string) string { var OnDemandSingle = func(libAddressBech32 string) string { return fmt.Sprintf(`{"library":"%s","id":"Levels-OnDemand-Single","initial":"uninitialized","states":[{"name":"uninitialized","after":[],"always":[],"on":[{"name":"initialize","transitions":[{"target":"#OnDemand-Single.initialized","guard":null,"actions":[],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"initialized","after":[],"always":[],"on":[],"entry":[],"exit":[],"initial":"unstarted","states":[{"name":"unstarted","after":[],"always":[],"on":[{"name":"start","transitions":[{"target":"#OnDemand-Single.initialized.started","guard":null,"actions":[{"type":"StartNode","params":[]}],"meta":[]}]},{"name":"setup","transitions":[{"target":"#OnDemand-Single.initialized.unstarted","guard":null,"actions":[{"type":"setup","params":[]}],"meta":[]}]},{"name":"prestart","transitions":[{"target":"#OnDemand-Single.initialized.prestart","guard":null,"actions":[],"meta":[]}]},{"name":"setupNode","transitions":[{"target":"#OnDemand-Single.initialized.unstarted","guard":null,"actions":[{"type":"setupNode","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"started","after":[],"always":[],"on":[{"name":"start","transitions":[{"target":"#OnDemand-Single.initialized.started","guard":null,"actions":[{"type":"StartNode","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"active","states":[{"name":"active","after":[],"always":[],"on":[{"name":"newTransaction","transitions":[{"target":"#OnDemand-Single.initialized.started.proposer","guard":{"type":"ifNewTransaction","params":[]},"actions":[{"type":"addToMempool","params":[]},{"type":"sendNewTransactionResponse","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"proposer","after":[],"always":[{"name":"always","transitions":[{"target":"#OnDemand-Single.initialized.started.active","actions":[{"type":"newBlock","params":[]}],"guard":null,"meta":[]}]}],"on":[],"entry":[],"exit":[],"initial":"","states":[]}]},{"name":"prestart","after":[{"name":"500","transitions":[{"target":"#OnDemand-Single.initialized.started","guard":null,"actions":[],"meta":[]}]}],"always":[],"on":[],"entry":[],"exit":[],"initial":"","states":[]}]}]}`, libAddressBech32) } + +var KayrosP2P = func(libAddressBech32 string) string { + return fmt.Sprintf(`{"library":"%s","id":"Kayros-P2P-1","initial":"uninitialized","states":[{"name":"uninitialized","after":[],"always":[],"on":[{"name":"initialize","transitions":[{"target":"#Kayros-P2P-1.initialized","guard":null,"actions":[],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"initialized","after":[],"always":[],"on":[],"entry":[],"exit":[],"initial":"unstarted","states":[{"name":"unstarted","after":[],"always":[],"on":[{"name":"setupNode","transitions":[{"target":"#Kayros-P2P-1.initialized.unstarted","guard":null,"actions":[{"type":"setupNode","params":[]}],"meta":[]}]},{"name":"prestart","transitions":[{"target":"#Kayros-P2P-1.initialized.prestart","guard":null,"actions":[],"meta":[]}]},{"name":"setup","transitions":[{"target":"#Kayros-P2P-1.initialized.unstarted","guard":null,"actions":[{"type":"setup","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"#Kayros-P2P-1.initialized.started","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"prestart","after":[{"name":"500","transitions":[{"target":"#Kayros-P2P-1.initialized.started","guard":null,"actions":[],"meta":[]}]}],"always":[],"on":[],"entry":[],"exit":[],"initial":"","states":[]},{"name":"started","after":[],"always":[],"on":[{"name":"newTransaction","transitions":[{"target":"","guard":{"type":"ifNewTransaction","params":[]},"actions":[{"type":"addToMempool","params":[]},{"type":"registerWithKayros","params":[]},{"type":"sendNewTransactionResponse","params":[]},{"type":"forwardMsgToChat","params":[{"key":"protocolId","value":"mempool"}]}],"meta":[]}]},{"name":"receiveStateSyncRequest","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncRequest","params":[]}],"meta":[]}]},{"name":"updateNode","transitions":[{"target":"","guard":null,"actions":[{"type":"updateNodeAndReturn","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"Node","states":[{"name":"Node","after":[],"always":[{"name":"always","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator","actions":[{"type":"registerValidatorWithNetwork","params":[]}],"guard":{"type":"ifNodeIsValidator","params":[]},"meta":[]}]}],"on":[{"name":"becomeValidator","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator","guard":null,"actions":[{"type":"registerValidatorWithNetwork","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveStateSyncResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncResponse","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveCommit","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveCommit","params":[]}],"meta":[]}]},{"name":"receiveUpdateNodeResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeResponse","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"Validator","after":[],"always":[],"on":[{"name":"stop","transitions":[{"target":"#Kayros-P2P-1.stopped","guard":null,"actions":[],"meta":[]}]},{"name":"receiveUpdateNodeResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeResponse","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"registerValidatorWithNetwork","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveCommit","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveCommit","params":[]}],"meta":[]}]},{"name":"receiveUpdateNodeRequest","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeRequest","params":[]}],"meta":[]}]},{"name":"receiveStateSyncResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncResponse","params":[]},{"type":"requestValidatorNodeInfoIfSynced","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"active","states":[{"name":"active","after":[{"name":"timeoutMissingTxs","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.propose","guard":null,"actions":[],"meta":[]}]}],"always":[{"name":"always","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.propose","guard":{"type":"ifAllTransactions","params":[]},"actions":[],"meta":[]}]}],"on":[{"name":"receiveMissingTransactions","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.active","guard":null,"actions":[{"type":"receiveMissingTransactions","params":[]}],"meta":[]}]}],"entry":[{"type":"getKayrosTxs","params":[]},{"type":"cancelActiveIntervals","params":[{"key":"after","value":"timeoutMissingTxs"}]}],"exit":[],"initial":"","states":[]},{"name":"propose","after":[{"name":"timeoutCommit","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.active","guard":null,"actions":[],"meta":[]}]}],"always":[],"on":[],"entry":[{"type":"commitBlock","params":[]},{"type":"sendCommit","params":[]},{"type":"cancelActiveIntervals","params":[{"key":"after","value":"timeoutCommit"}]}],"exit":[],"initial":"","states":[]}]}]}]},{"name":"stopped","after":[],"always":[],"on":[{"name":"restart","transitions":[{"target":"#Kayros-P2P-1.initialized.unstarted","guard":null,"actions":[],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]}]}`, libAddressBech32) +} diff --git a/wasmx/x/wasmx/vm/precompiles/precompiles.go b/wasmx/x/wasmx/vm/precompiles/precompiles.go index c24b5083..8ea336ea 100644 --- a/wasmx/x/wasmx/vm/precompiles/precompiles.go +++ b/wasmx/x/wasmx/vm/precompiles/precompiles.go @@ -162,6 +162,9 @@ var ( //go:embed 65.wasmx_ondemand_single_library.wasm ondemand_single_library []byte + //go:embed 71.kayrosp2p_library.wasm + kayrosp2p_library []byte + //go:embed ff.sys_proxy.wasm sys_proxy []byte ) @@ -307,6 +310,15 @@ func GetPrecompileByLabel(addrCodec address.Codec, label string) []byte { panic(err) } wasmbin = []byte(OnDemandSingle(libaddrstr)) + case types.CONSENSUS_KAYROSP2P_LIBRARY: + wasmbin = kayrosp2p_library + case types.CONSENSUS_KAYROSP2P: + libaddr := types.AccAddressFromHex(types.ADDR_CONSENSUS_KAYROSP2P_LIBRARY) + libaddrstr, err := addrCodec.BytesToString(libaddr) + if err != nil { + panic(err) + } + wasmbin = []byte(KayrosP2P(libaddrstr)) case types.MULTICHAIN_REGISTRY_v001: wasmbin = multichain_registry case types.MULTICHAIN_REGISTRY_LOCAL_v001: From 57907cfbf702438e284dd055b614b4986e0d9e15 Mon Sep 17 00:00:00 2001 From: Loredana Cirstea Date: Mon, 29 Dec 2025 23:06:17 +0100 Subject: [PATCH 03/10] kayros consensus fixes - max txs/block variable. for now, hardcode proposer to first active validator. later, it should be registered with kayros. --- .../wasmx-kayrosp2p-lib/diagram/def.json | 2 +- .../tinygo/wasmx-kayrosp2p-lib/diagram/def.ts | 1 + .../tinygo/wasmx-kayrosp2p-lib/lib/actions.go | 65 ++++++++++++++---- .../tinygo/wasmx-kayrosp2p-lib/lib/block.go | 62 ++++++++--------- .../tinygo/wasmx-kayrosp2p-lib/lib/types.go | 1 + wasmx/x/wasmx/types/system_contract.go | 2 +- .../vm/precompiles/71.kayrosp2p_library.wasm | Bin 491053 -> 490894 bytes 7 files changed, 85 insertions(+), 48 deletions(-) diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.json b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.json index b31e62ee..2018851d 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.json +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.json @@ -1 +1 @@ -{"context":[{"key":"blockTimeout","value":"timeoutCommit"},{"key":"max_tx_bytes","value":65536},{"key":"timeoutCommit","value":4000},{"key":"max_block_gas","value":"20000000"},{"key":"timeoutMissingTxs","value":4000},{"key":"kayros_base_url","value":"https://kayros.provable.dev"},{"key":"kayros_user_key","value":""},{"key":"threshold_commit","value":51},{"key":"threshold_finalize","value":75},{"key":"genesis_uuid","value":""},{"key":"data_type_id","value":""}],"id":"Kayros-P2P-1","initial":"uninitialized","states":[{"name":"uninitialized","after":[],"always":[],"on":[{"name":"initialize","transitions":[{"target":"#Kayros-P2P-1.initialized","guard":null,"actions":[],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"initialized","after":[],"always":[],"on":[],"entry":[],"exit":[],"initial":"unstarted","states":[{"name":"unstarted","after":[],"always":[],"on":[{"name":"setupNode","transitions":[{"target":"#Kayros-P2P-1.initialized.unstarted","guard":null,"actions":[{"type":"setupNode","params":[]}],"meta":[]}]},{"name":"prestart","transitions":[{"target":"#Kayros-P2P-1.initialized.prestart","guard":null,"actions":[],"meta":[]}]},{"name":"setup","transitions":[{"target":"#Kayros-P2P-1.initialized.unstarted","guard":null,"actions":[{"type":"setup","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"#Kayros-P2P-1.initialized.started","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"prestart","after":[{"name":"500","transitions":[{"target":"#Kayros-P2P-1.initialized.started","guard":null,"actions":[],"meta":[]}]}],"always":[],"on":[],"entry":[],"exit":[],"initial":"","states":[]},{"name":"started","after":[],"always":[],"on":[{"name":"newTransaction","transitions":[{"target":"","guard":{"type":"ifNewTransaction","params":[]},"actions":[{"type":"addToMempool","params":[]},{"type":"registerWithKayros","params":[]},{"type":"sendNewTransactionResponse","params":[]},{"type":"forwardMsgToChat","params":[{"key":"protocolId","value":"mempool"}]}],"meta":[]}]},{"name":"receiveStateSyncRequest","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncRequest","params":[]}],"meta":[]}]},{"name":"updateNode","transitions":[{"target":"","guard":null,"actions":[{"type":"updateNodeAndReturn","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"Node","states":[{"name":"Node","after":[],"always":[{"name":"always","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator","actions":[{"type":"registerValidatorWithNetwork","params":[]}],"guard":{"type":"ifNodeIsValidator","params":[]},"meta":[]}]}],"on":[{"name":"becomeValidator","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator","guard":null,"actions":[{"type":"registerValidatorWithNetwork","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveStateSyncResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncResponse","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveCommit","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveCommit","params":[]}],"meta":[]}]},{"name":"receiveUpdateNodeResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeResponse","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"Validator","after":[],"always":[],"on":[{"name":"stop","transitions":[{"target":"#Kayros-P2P-1.stopped","guard":null,"actions":[],"meta":[]}]},{"name":"receiveUpdateNodeResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeResponse","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"registerValidatorWithNetwork","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveCommit","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveCommit","params":[]}],"meta":[]}]},{"name":"receiveUpdateNodeRequest","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeRequest","params":[]}],"meta":[]}]},{"name":"receiveStateSyncResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncResponse","params":[]},{"type":"requestValidatorNodeInfoIfSynced","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"active","states":[{"name":"active","after":[{"name":"timeoutMissingTxs","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.propose","guard":null,"actions":[],"meta":[]}]}],"always":[{"name":"always","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.propose","guard":{"type":"ifAllTransactions","params":[]},"actions":[],"meta":[]}]}],"on":[{"name":"receiveMissingTransactions","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.active","guard":null,"actions":[{"type":"receiveMissingTransactions","params":[]}],"meta":[]}]}],"entry":[{"type":"getKayrosTxs","params":[]},{"type":"cancelActiveIntervals","params":[{"key":"after","value":"timeoutMissingTxs"}]}],"exit":[],"initial":"","states":[]},{"name":"propose","after":[{"name":"timeoutCommit","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.active","guard":null,"actions":[],"meta":[]}]}],"always":[],"on":[],"entry":[{"type":"commitBlock","params":[]},{"type":"sendCommit","params":[]},{"type":"cancelActiveIntervals","params":[{"key":"after","value":"timeoutCommit"}]}],"exit":[],"initial":"","states":[]}]}]}]},{"name":"stopped","after":[],"always":[],"on":[{"name":"restart","transitions":[{"target":"#Kayros-P2P-1.initialized.unstarted","guard":null,"actions":[],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]}]} +{"context":[{"key":"blockTimeout","value":"timeoutCommit"},{"key":"max_tx_bytes","value":65536},{"key":"timeoutCommit","value":4000},{"key":"max_block_gas","value":"20000000"},{"key":"timeoutMissingTxs","value":4000},{"key":"kayros_base_url","value":"https://kayros.provable.dev"},{"key":"kayros_user_key","value":""},{"key":"threshold_commit","value":51},{"key":"threshold_finalize","value":75},{"key":"genesis_uuid","value":""},{"key":"data_type_id","value":""},{"key":"max_block_tx","value":"30"}],"id":"Kayros-P2P-1","initial":"uninitialized","states":[{"name":"uninitialized","after":[],"always":[],"on":[{"name":"initialize","transitions":[{"target":"#Kayros-P2P-1.initialized","guard":null,"actions":[],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"initialized","after":[],"always":[],"on":[],"entry":[],"exit":[],"initial":"unstarted","states":[{"name":"unstarted","after":[],"always":[],"on":[{"name":"setupNode","transitions":[{"target":"#Kayros-P2P-1.initialized.unstarted","guard":null,"actions":[{"type":"setupNode","params":[]}],"meta":[]}]},{"name":"prestart","transitions":[{"target":"#Kayros-P2P-1.initialized.prestart","guard":null,"actions":[],"meta":[]}]},{"name":"setup","transitions":[{"target":"#Kayros-P2P-1.initialized.unstarted","guard":null,"actions":[{"type":"setup","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"#Kayros-P2P-1.initialized.started","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"prestart","after":[{"name":"500","transitions":[{"target":"#Kayros-P2P-1.initialized.started","guard":null,"actions":[],"meta":[]}]}],"always":[],"on":[],"entry":[],"exit":[],"initial":"","states":[]},{"name":"started","after":[],"always":[],"on":[{"name":"newTransaction","transitions":[{"target":"","guard":{"type":"ifNewTransaction","params":[]},"actions":[{"type":"addToMempool","params":[]},{"type":"registerWithKayros","params":[]},{"type":"sendNewTransactionResponse","params":[]},{"type":"forwardMsgToChat","params":[{"key":"protocolId","value":"mempool"}]}],"meta":[]}]},{"name":"receiveStateSyncRequest","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncRequest","params":[]}],"meta":[]}]},{"name":"updateNode","transitions":[{"target":"","guard":null,"actions":[{"type":"updateNodeAndReturn","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"Node","states":[{"name":"Node","after":[],"always":[{"name":"always","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator","actions":[{"type":"registerValidatorWithNetwork","params":[]}],"guard":{"type":"ifNodeIsValidator","params":[]},"meta":[]}]}],"on":[{"name":"becomeValidator","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator","guard":null,"actions":[{"type":"registerValidatorWithNetwork","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveStateSyncResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncResponse","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveCommit","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveCommit","params":[]}],"meta":[]}]},{"name":"receiveUpdateNodeResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeResponse","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"Validator","after":[],"always":[],"on":[{"name":"stop","transitions":[{"target":"#Kayros-P2P-1.stopped","guard":null,"actions":[],"meta":[]}]},{"name":"receiveUpdateNodeResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeResponse","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"registerValidatorWithNetwork","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveCommit","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveCommit","params":[]}],"meta":[]}]},{"name":"receiveUpdateNodeRequest","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeRequest","params":[]}],"meta":[]}]},{"name":"receiveStateSyncResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncResponse","params":[]},{"type":"requestValidatorNodeInfoIfSynced","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"active","states":[{"name":"active","after":[{"name":"timeoutMissingTxs","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.propose","guard":null,"actions":[],"meta":[]}]}],"always":[{"name":"always","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.propose","guard":{"type":"ifAllTransactions","params":[]},"actions":[],"meta":[]}]}],"on":[{"name":"receiveMissingTransactions","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.active","guard":null,"actions":[{"type":"receiveMissingTransactions","params":[]}],"meta":[]}]}],"entry":[{"type":"getKayrosTxs","params":[]},{"type":"cancelActiveIntervals","params":[{"key":"after","value":"timeoutMissingTxs"}]}],"exit":[],"initial":"","states":[]},{"name":"propose","after":[{"name":"timeoutCommit","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.active","guard":null,"actions":[],"meta":[]}]}],"always":[],"on":[],"entry":[{"type":"commitBlock","params":[]},{"type":"sendCommit","params":[]},{"type":"cancelActiveIntervals","params":[{"key":"after","value":"timeoutCommit"}]}],"exit":[],"initial":"","states":[]}]}]}]},{"name":"stopped","after":[],"always":[],"on":[{"name":"restart","transitions":[{"target":"#Kayros-P2P-1.initialized.unstarted","guard":null,"actions":[],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]}]} diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.ts b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.ts index 02075526..e4feed71 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.ts +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.ts @@ -14,6 +14,7 @@ export const machine = createMachine({ threshold_finalize: 75, genesis_uuid: "", data_type_id: "", + max_block_tx: "", }, id: "Kayros-P2P-1", initial: "uninitialized", diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go index 8bbda079..db391717 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go @@ -11,10 +11,11 @@ import ( raftlib "github.com/loredanacirstea/wasmx-raft-lib/lib" ) -// Chat room topics (parity with AS config) +// Chat room topics (must match raftp2p for message propagation) const ( - CHAT_ROOM_PROTOCOL = "kayros_p2p_protocol" + CHAT_ROOM_PROTOCOL = "chat_room_protocol" // Same as raftp2p for compatibility CHAT_ROOM_MEMPOOL = CHAT_ROOM_PROTOCOL + CHAT_ROOM_NODE = "chat_room_node" // For commit messages STORAGE_KEY_KAYROS_CONFIG = "kayros_config" STORAGE_KEY_LAST_UUID = "kayros_last_uuid" STORAGE_KEY_CONSENSUS_CONFIG = "consensus_config" @@ -22,7 +23,6 @@ const ( STORAGE_KEY_PENDING_TXS = "pending_txs" // Transactions needed for current block STORAGE_KEY_KAYROS_TX_META = "kayros_tx_meta_" // Prefix for Kayros tx metadata STORAGE_KEY_BLOCK_KAYROS = "block_kayros_" // Prefix for block Kayros metadata - MAX_TXS_PER_BLOCK = 100 // Default max transactions to fetch from Kayros per block CTX_KAYROS_BASE_URL = "kayros_base_url" CTX_KAYROS_USER_KEY = "kayros_user_key" @@ -30,6 +30,7 @@ const ( CTX_THRESHOLD_COMMIT = "threshold_commit" CTX_THRESHOLD_FINALIZE = "threshold_finalize" CTX_GENESIS_UUID = "genesis_uuid" + CTX_MAX_BLOCK_TX = "max_block_tx" ) // GetKayrosClient retrieves the Kayros client, initializing if needed @@ -79,6 +80,17 @@ func GetConsensusConfig() (*ConsensusConfig, error) { return &config, nil } +// GetMaxBlockTx retrieves the maximum number of transactions per block from context +func GetMaxBlockTx() int { + maxTxStr := sGet(CTX_MAX_BLOCK_TX) + if maxTxStr != "" { + if val, err := fsm.ParseInt32(maxTxStr); err == nil && val > 0 { + return int(val) + } + } + return 20 +} + // GetBlockCommitMapping retrieves the commit mapping for a specific block func GetBlockCommitMapping(blockNumber int64) (*BlockCommitMapping, error) { key := fmt.Sprintf("%s%d", STORAGE_KEY_BLOCK_COMMITS, blockNumber) @@ -297,7 +309,8 @@ func GetKayrosTxs(params []fsm.ActionParam, event fsm.EventObject) error { } // Fetch records from Kayros starting from the last UUID - limit := MAX_TXS_PER_BLOCK + // Use configured max or default + limit := GetMaxBlockTx() records, err := client.GetRecordsFromPrev(lastUUID, limit) if err != nil { LoggerError("failed to fetch records from Kayros", []string{"error", err.Error(), "lastUUID", lastUUID}) @@ -563,29 +576,47 @@ func CheckConsensusThresholds(mapping *BlockCommitMapping) error { "majorityHash", maxHash, }) - // Rollback to the block before the disagreement - // Using raft.Rollback which handles multiple blocks - rollbackHeight := mapping.BlockNumber - 1 - err := raftlib.Rollback([]fsm.ActionParam{ - {Key: "height", Value: fmt.Sprintf("%d", rollbackHeight)}, - }, fsm.EventObject{}) + // Get current height to determine how many blocks to rollback + currentHeight, err := raftlib.GetLastLogIndex() if err != nil { - LoggerError("rollback failed", []string{"error", err.Error()}) return err } + // Target height is the block before the disagreement + targetHeight := mapping.BlockNumber - 1 + + // Rollback one block at a time from current height down to target height + // raft.Rollback expects the height to rollback TO (not FROM) + for height := currentHeight; height > targetHeight; height-- { + LoggerDebug("rolling back block", []string{ + "height", fmt.Sprintf("%d", height), + "targetHeight", fmt.Sprintf("%d", targetHeight), + }) + + err := raftlib.Rollback([]fsm.ActionParam{ + {Key: "height", Value: fmt.Sprintf("%d", height)}, + }, fsm.EventObject{}) + if err != nil { + LoggerError("rollback failed", []string{"height", fmt.Sprintf("%d", height), "error", err.Error()}) + return err + } + } + // Clear pending txs and reset Kayros UUID to re-fetch SetPendingTxHashes([]string{}) // Reset LastKayrosUUID to the UUID from the last good block // This will cause GetKayrosTxs to re-fetch from that point - lastGoodBlockMeta, err := GetBlockKayrosMetadata(rollbackHeight) + lastGoodBlockMeta, err := GetBlockKayrosMetadata(targetHeight) if err == nil && lastGoodBlockMeta != nil && lastGoodBlockMeta.LastUUID != "" { SetLastKayrosUUID(lastGoodBlockMeta.LastUUID) LoggerInfo("reset Kayros UUID after rollback", []string{"uuid", lastGoodBlockMeta.LastUUID}) } - LoggerInfo("rollback completed", []string{"toHeight", fmt.Sprintf("%d", rollbackHeight)}) + LoggerInfo("rollback completed", []string{ + "fromHeight", fmt.Sprintf("%d", currentHeight), + "toHeight", fmt.Sprintf("%d", targetHeight), + }) } } @@ -674,11 +705,13 @@ func RequestMissingTransactions(txHashes []string) error { } contract := wasmx.GetAddress() + chainId := wasmx.GetChainId() + protocolId := fmt.Sprintf("%s_%s", PROTOCOL_ID, chainId) _, err = p2p.SendMessageToPeers(p2p.SendMessageToPeersRequest{ Contract: contract, Sender: contract, Msg: msg, - ProtocolId: PROTOCOL_ID, + ProtocolId: protocolId, Peers: peers, }) @@ -801,11 +834,13 @@ func ReceiveMissingTransactionsRequest(params []fsm.ActionParam, event fsm.Event // Send response to the requesting peer contract := wasmx.GetAddress() + chainId := wasmx.GetChainId() + protocolId := fmt.Sprintf("%s_%s", PROTOCOL_ID, chainId) _, err = p2p.SendMessageToPeers(p2p.SendMessageToPeersRequest{ Contract: contract, Sender: contract, Msg: msg, - ProtocolId: PROTOCOL_ID, + ProtocolId: protocolId, Peers: []string{sender}, }) diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/block.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/block.go index 44cf2fd9..c50032cf 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/block.go +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/block.go @@ -116,6 +116,17 @@ func buildKayrosBlockProposal(txs [][]byte, txHashes []string, optimisticExecuti validatorInfos := consutils.SortTendermintValidators(activeInfos) validatorSet := typestnd.TendermintValidators{Validators: validatorInfos} + // Use the first validator as proposer for deterministic block hash across all validators + var proposerAddress wasmx.HexString + var proposerBech32 wasmx.Bech32String + if len(validatorInfos) > 0 { + proposerAddress = validatorInfos[0].HexAddress + proposerBech32 = validatorInfos[0].OperatorAddress + } else { + proposerAddress = wasmx.HexString("") + proposerBech32 = wasmx.Bech32String("") + } + lastBlockCommit := getLastBlockCommitInternal(st) // Get previous block validators for the last block commit signatures @@ -173,7 +184,7 @@ func buildKayrosBlockProposal(txs [][]byte, txHashes []string, optimisticExecuti Height: height, Time: timeISO, NextValidatorsHash: nextValsHash, - ProposerAddress: st.ValidatorAddress, + ProposerAddress: proposerAddress, // First validator for deterministic hash } prepareResp, err := consensuswrap.PrepareProposal(prepareReq) if err != nil { @@ -195,6 +206,8 @@ func buildKayrosBlockProposal(txs [][]byte, txHashes []string, optimisticExecuti lastCommitHashHex := wasmx.HexString(strings.ToUpper(hex.EncodeToString(consutils.GetCommitHash(sortedBlockCommits)))) + // In Kayros consensus, all validators build blocks independently + // ProposerAddress must be deterministic to ensure same block hash across all validators header := typestnd.Header{ Version: typestnd.VersionConsensus{Block: typestnd.BlockProtocol, App: st.Version.Consensus.App}, ChainID: st.ChainID, @@ -209,7 +222,7 @@ func buildKayrosBlockProposal(txs [][]byte, txHashes []string, optimisticExecuti AppHash: wasmx.HexString(strings.ToUpper(hex.EncodeToString(st.AppHash))), LastResultsHash: wasmx.HexString(strings.ToUpper(hex.EncodeToString(st.LastResultsHash))), EvidenceHash: wasmx.HexString(strings.ToUpper(hex.EncodeToString(consutils.GetEvidenceHash(evidence)))), - ProposerAddress: st.ValidatorAddress, + ProposerAddress: proposerAddress, // First validator for deterministic hash } hhash, err := consensuswrap.HeaderHash(header) if err != nil { @@ -229,7 +242,7 @@ func buildKayrosBlockProposal(txs [][]byte, txHashes []string, optimisticExecuti Height: prepareReq.Height, Time: prepareReq.Time, NextValidatorsHash: prepareReq.NextValidatorsHash, - ProposerAddress: prepareReq.ProposerAddress, + ProposerAddress: proposerAddress, // First validator for deterministic hash } processResp, err := consensuswrap.ProcessProposal(processReq) if err != nil { @@ -270,7 +283,7 @@ func buildKayrosBlockProposal(txs [][]byte, txHashes []string, optimisticExecuti st.NextHash = hhash raftlib.SetCurrentState(st) - err = appendLogWithKayrosMeta(processReq, header, sortedBlockCommits, optimisticExecution, metainfo, validatorSet) + err = appendLogWithKayrosMeta(processReq, header, sortedBlockCommits, optimisticExecution, metainfo, validatorSet, proposerBech32) if err != nil { return err } @@ -296,7 +309,7 @@ func buildKayrosBlockProposal(txs [][]byte, txHashes []string, optimisticExecuti } // appendLogWithKayrosMeta creates a BlockEntry and LogEntryAggregate with Kayros metadata -func appendLogWithKayrosMeta(processReq typestnd.RequestProcessProposal, header typestnd.Header, blockCommit typestnd.BlockCommit, optimisticExecution bool, meta map[string][]byte, validatorSet typestnd.TendermintValidators) error { +func appendLogWithKayrosMeta(processReq typestnd.RequestProcessProposal, header typestnd.Header, blockCommit typestnd.BlockCommit, optimisticExecution bool, meta map[string][]byte, validatorSet typestnd.TendermintValidators, proposerBech32 wasmx.Bech32String) error { if meta == nil { meta = make(map[string][]byte) } @@ -328,11 +341,6 @@ func appendLogWithKayrosMeta(processReq typestnd.RequestProcessProposal, header return fmt.Errorf("failed to get current node ID: %v", err) } - validator, err := getValidatorByHexAddrInternal(wasmx.HexString(processReq.ProposerAddress)) - if err != nil { - return fmt.Errorf("failed to get validator: %v", err) - } - contractAddress := wasmx.GetAddressBz() validatorSetBytes, err := json.Marshal(&validatorSet) @@ -340,14 +348,14 @@ func appendLogWithKayrosMeta(processReq typestnd.RequestProcessProposal, header return fmt.Errorf("failed to marshal validator set: %v", err) } - // Create BlockEntry + // Create BlockEntry with deterministic proposer address to ensure same block hash blockEntry := blocks.BlockEntry{ Index: processReq.Height, ReaderContract: contractAddress, WriterContract: contractAddress, Data: blockData, Header: blockHeader, - ProposerAddress: validator.OperatorAddress, + ProposerAddress: proposerBech32, // First validator for deterministic hash LastCommit: commit, Evidence: []byte(`{"evidence":[]}`), Result: []byte{}, @@ -434,37 +442,29 @@ func SendCommit(params []fsm.ActionParam, event fsm.EventObject) error { } msg, _ := json.Marshal(&payload) - // Send to all peers - peers := make([]string, 0, len(nodes)-1) - for i := range nodes { - if int32(i) != ourId && raftlib.IsNodeActive(nodes[i]) { - peers = append(peers, nodes[i].Node.IP) - } - } - - if len(peers) == 0 { - LoggerDebug("no peers to send commit to", nil) - return nil - } - + // Broadcast to chat room instead of sending to individual peers contract := wasmx.GetAddress() - _, err = p2p.SendMessageToPeers(p2p.SendMessageToPeersRequest{ + chainId := wasmx.GetChainId() + protocolId := fmt.Sprintf("%s_%s", PROTOCOL_ID, chainId) + topic := fmt.Sprintf("%s_%s", CHAT_ROOM_PROTOCOL, chainId) + + _, err = p2p.SendMessageToChatRoom(p2p.SendMessageToChatRoomRequest{ Contract: contract, Sender: contract, Msg: msg, - ProtocolId: PROTOCOL_ID, - Peers: peers, + ProtocolId: protocolId, + Topic: topic, }) if err != nil { - LoggerError("failed to send commit", []string{"error", err.Error()}) + LoggerError("failed to send commit to chat room", []string{"error", err.Error(), "topic", topic}) return err } - LoggerInfo("sent commit", []string{ + LoggerInfo("sent commit to chat room", []string{ "blockNumber", fmt.Sprintf("%d", commit.BlockNumber), "blockHash", commit.BlockHash, - "peerCount", fmt.Sprintf("%d", len(peers)), + "topic", topic, }) return nil diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/types.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/types.go index ee97a1b1..05e18915 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/types.go +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/types.go @@ -39,6 +39,7 @@ type InstantiateMsg struct { GenesisUUID string `json:"genesis_uuid"` // First UUID to start from on genesis ThresholdCommit int `json:"threshold_commit"` // Percentage threshold for commit (e.g., 51) - determines when to rollback ThresholdFinalize int `json:"threshold_finalize"` // Percentage threshold for finalization (e.g., 75) - determines when block is finalized + MaxBlockTx int `json:"max_block_tx"` // Maximum transactions per block (default: 100) } // KayrosRecord represents a record in the Kayros database diff --git a/wasmx/x/wasmx/types/system_contract.go b/wasmx/x/wasmx/types/system_contract.go index 643b6996..54b04d1d 100644 --- a/wasmx/x/wasmx/types/system_contract.go +++ b/wasmx/x/wasmx/types/system_contract.go @@ -602,7 +602,7 @@ func ConsensusPrecompiles(minValidatorCount int32, enableEIDCheck bool, currentL } // genesis uuid is a valid time-based uuid that should not exist in the kayros database - for a new chain - kayrosP2PInitMsg, err := json.Marshal(WasmxExecutionMessage{Data: []byte(`{"instantiate":{"context":[{"key":"blockTimeout","value":"timeoutCommit"},{"key":"max_tx_bytes","value":"65536"},{"key":"timeoutCommit","value":"4000"},{"key":"max_block_gas","value":"20000000"},{"key":"timeoutMissingTxs","value":"4000"},{"key":"kayros_base_url","value":"https://kayros.provable.dev"},{"key":"kayros_user_key","value":"0x73db4aa00c2519ec5c060af0be9751e2f5f920413db68aa5ca2501b0df9c972e"},{"key":"threshold_commit","value":"51"},{"key":"threshold_finalize","value":"75"},{"key":"genesis_uuid","value":""},{"key":"data_type_id","value":""}],"initialState":"uninitialized"}}`)}) + kayrosP2PInitMsg, err := json.Marshal(WasmxExecutionMessage{Data: []byte(`{"instantiate":{"context":[{"key":"blockTimeout","value":"timeoutCommit"},{"key":"max_tx_bytes","value":"65536"},{"key":"timeoutCommit","value":"4000"},{"key":"max_block_gas","value":"20000000"},{"key":"timeoutMissingTxs","value":"4000"},{"key":"kayros_base_url","value":"https://kayros.provable.dev"},{"key":"kayros_user_key","value":"0x73db4aa00c2519ec5c060af0be9751e2f5f920413db68aa5ca2501b0df9c972e"},{"key":"threshold_commit","value":"51"},{"key":"threshold_finalize","value":"75"},{"key":"genesis_uuid","value":""},{"key":"data_type_id","value":""},{"key":"max_block_tx","value":"30"}],"initialState":"uninitialized"}}`)}) if err != nil { panic("ConsensusPrecompiles: cannot marshal kayrosP2PInitMsg message") } diff --git a/wasmx/x/wasmx/vm/precompiles/71.kayrosp2p_library.wasm b/wasmx/x/wasmx/vm/precompiles/71.kayrosp2p_library.wasm index bdcb57113e73f1b31eda3f634eeb6d7a2f346757..4ce69277b8051231c84f2beb6db0058f97f936e0 100644 GIT binary patch delta 97744 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

?e=+RR0-rIj?s`z%Qo{ zK&~$qMnFbUlfC5ylSU2qykIgf>FJ7@WRNR<;48}Sd_5`o`;i4iWMm+8wcB?oi;CoS zA7h0N?fd|11Kbg$JrKm6Z8z!ZP5+jZJpKg~%A7wyHOn{Genxtfzh201Oo;hjYHAzx zqL~tRSq{e@a+cO2{o~I+`RkKnCs=Q2QRkaU$#ILBAL6xMe#^hZB_6-b*Y14D9E>Zq zi+_)SjdlZw?0LlA^LsNqa`+MZEAiAL_GK8?%YLX_IdVNT zkJ?|s==o=OY2EpDQu3{F=N`3hAj-e9BUplVI{p;O)So*(3N>7xap})H`72OkC0~hU3&^@0DlHG6#BCO%YPv!6W34(SwMU^@!=ejYtt6S zZ$hp-y7gWB7q4Ycn>s8^%Q$e#vK{Y4ttsp+e#eeP6pWt&(_10rwiihcs zJ9(HM#^c<-KfCk~U;=tRJ{4E*E9^p`CyZ{F;S(1R4T)fo3S8g}OLXxl)V5eg>0b(Q z`8gO&EGNXJS9$a=ow$a(WcoMat@@xq92#QJ(%=7lIw|>N9IL(_2DH1;?pM^ojHn}5 zQRi5q$BSt37#kIFzmvDp1jSQadYE5NDU$1bGpzqyp?*?A3EC%$I&jp#W4{Wf2&sOr zN!HmzrcVv@ue*mVD2YGXz9_5mhmX?4gJ+VGXQ$s4JXF}fzG9|c@cMJe_q=bXo-kwU z3!W!(?){|X`27m)I-8W75w1w#g7Wgc!AJ=1LHS3?6QB5k$`Pt-;?5+O-vQNaEl_tV z>-ZDL`yKZ}Ef#H}X2fp@sGol4_>$vE$2T4S1T~Tmyhzo}A0#EuZ(^pYsum~>KXm+= zlkatW(($*B?T-K2Q6Cg+e+iY{sC*!9H1kpOC)e>sx>mL36W4s2&4xiA_gv%BComti z3fw?kqw$~{&85Uut_muBi%V~S>czX@0QSY+{RE`=mr(wD%<)O6uKgVf)yQk8SU0Dq zT>h+M*nIR{Qu24=UUWq|pho-O921%IiuZw1{T0UvPM-Jgv|oKU(444u3Q)DS7CBm*uRoG=9urYdk?{ kFQK>MKF@3izh<5s(s1yLF)wc)VFG5uQ*H0RW@g;?AN$r`9smFU delta 98289 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 From f4e8ecac24034f7acc003c9106a46e4da8fe4dbd Mon Sep 17 00:00:00 2001 From: Loredana Cirstea Date: Tue, 30 Dec 2025 17:53:42 +0100 Subject: [PATCH 04/10] kayros consensus fixes - introduce block hash registration --- .../wasmx-env-consensus/lib/consensus_wrap.go | 1 + .../tinygo/wasmx-kayrosp2p-lib/cmd/main.go | 2 +- .../tinygo/wasmx-kayrosp2p-lib/lib/actions.go | 88 ++++++-- .../tinygo/wasmx-kayrosp2p-lib/lib/block.go | 163 ++++++++++----- .../tinygo/wasmx-kayrosp2p-lib/lib/kayros.go | 188 +++++++++++++++--- .../tinygo/wasmx-kayrosp2p-lib/lib/types.go | 69 ++++--- .../tinygo/wasmx-kayrosp2p-lib/lib/utils.go | 48 +++++ tests/utils/utils.go | 2 +- wasmx/EXAMPLES.md | 2 +- .../vm/precompiles/71.kayrosp2p_library.wasm | Bin 490894 -> 496299 bytes 10 files changed, 441 insertions(+), 122 deletions(-) diff --git a/tests/testdata/tinygo/wasmx-env-consensus/lib/consensus_wrap.go b/tests/testdata/tinygo/wasmx-env-consensus/lib/consensus_wrap.go index 9c703b85..04775417 100644 --- a/tests/testdata/tinygo/wasmx-env-consensus/lib/consensus_wrap.go +++ b/tests/testdata/tinygo/wasmx-env-consensus/lib/consensus_wrap.go @@ -165,6 +165,7 @@ func HeaderHash(header Header) ([]byte, error) { if err != nil { return nil, err } + fmt.Println("--HeaderHash.bz---", string(bz)) out := utils.PackedPtrToBytes(HeaderHash_(utils.BytesToPackedPtr(bz))) return out, nil } diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/cmd/main.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/cmd/main.go index ea860646..1012f3e8 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/cmd/main.go +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/cmd/main.go @@ -120,7 +120,7 @@ func main() { return } case "registerWithKayros": - err := lib.RegisterWithKayros(calld.Params, calld.Event) + _, err := lib.RegisterWithKayros(calld.Params, calld.Event) if err != nil { raftp2p.Revert(err.Error()) return diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go index db391717..f9e1877e 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go @@ -5,6 +5,8 @@ import ( "encoding/json" "fmt" + consensuswrap "github.com/loredanacirstea/wasmx-env-consensus/lib" + typestnd "github.com/loredanacirstea/wasmx-env-consensus/lib" p2p "github.com/loredanacirstea/wasmx-env-p2p/lib" wasmx "github.com/loredanacirstea/wasmx-env/lib" fsm "github.com/loredanacirstea/wasmx-fsm/lib" @@ -233,7 +235,7 @@ func BuildBlockKayrosMetadata(blockNumber int64) (*KayrosBlockMetadata, error) { // RegisterWithKayros registers a transaction with Kayros via POST /api/grpc/single-hash // This action is called when a new transaction is received -func RegisterWithKayros(params []fsm.ActionParam, event fsm.EventObject) error { +func RegisterWithKayros(params []fsm.ActionParam, event fsm.EventObject) (*KayrosRegistrationResponse, error) { // Extract transaction from event params txB64 := "" for _, p := range event.Params { @@ -243,13 +245,13 @@ func RegisterWithKayros(params []fsm.ActionParam, event fsm.EventObject) error { } } if txB64 == "" { - return fmt.Errorf("no transaction found in event") + return nil, fmt.Errorf("no transaction found in event") } // Decode transaction txBytes, err := base64.StdEncoding.DecodeString(txB64) if err != nil { - return err + return nil, err } // Compute transaction hash (hex encoded for Kayros) @@ -261,7 +263,7 @@ func RegisterWithKayros(params []fsm.ActionParam, event fsm.EventObject) error { if err != nil { LoggerError("failed to get Kayros client", []string{"error", err.Error()}) // Don't fail the transaction if Kayros is unavailable - return nil + return nil, nil } // Register transaction with Kayros via POST /api/grpc/single-hash @@ -269,20 +271,20 @@ func RegisterWithKayros(params []fsm.ActionParam, event fsm.EventObject) error { if err != nil { LoggerError("failed to register transaction with Kayros", []string{"txHash", txHash, "error", err.Error()}) // Don't fail the transaction if Kayros registration fails - return nil + return nil, nil } if !resp.Success { LoggerDebug("Kayros registration returned failure", []string{"txHash", txHash, "message", resp.Message}) - return nil + return nil, nil } LoggerInfo("transaction registered with Kayros", []string{ "txHash", txHash, - "uuid", resp.UUID, + "uuid", string(resp.TimeUUID), }) - return nil + return resp, nil } // GetKayrosTxs fetches transactions from Kayros for block production @@ -328,6 +330,31 @@ func GetKayrosTxs(params []fsm.ActionParam, event fsm.EventObject) error { return nil } + // Deduplicate records by transaction hash, keeping the oldest (smallest UUID) for each + // This handles cases where the same transaction was registered multiple times + deduplicatedRecords := make(map[string]KayrosRecord) + for _, record := range records { + txHash := record.DataItemHex + if existing, exists := deduplicatedRecords[txHash]; exists { + // Keep the one with smaller UUID (older timestamp) + if record.UuidHex < existing.UuidHex { + deduplicatedRecords[txHash] = record + LoggerDebug("found duplicate tx, keeping older registration", []string{ + "txHash", txHash, + "oldUUID", existing.UuidHex, + "newUUID", record.UuidHex, + }) + } + } else { + deduplicatedRecords[txHash] = record + } + } + + LoggerInfo("deduplicated Kayros records", []string{ + "original", fmt.Sprintf("%d", len(records)), + "deduplicated", fmt.Sprintf("%d", len(deduplicatedRecords)), + }) + // Get mempool to check which transactions we already have mp, err := raftlib.GetMempool() if err != nil { @@ -338,8 +365,7 @@ func GetKayrosTxs(params []fsm.ActionParam, event fsm.EventObject) error { missingTxHashes := []string{} allTxHashes := []string{} - for _, record := range records { - txHash := record.DataItemHex + for txHash, record := range deduplicatedRecords { allTxHashes = append(allTxHashes, txHash) // Store Kayros metadata for this transaction @@ -559,14 +585,49 @@ func CheckConsensusThresholds(mapping *BlockCommitMapping) error { "blockNumber", fmt.Sprintf("%d", mapping.BlockNumber), "uniqueHashes", fmt.Sprintf("%d", len(hashCounts)), "commitPercentage", fmt.Sprintf("%d", commitPercentage), + "hashPercentage", fmt.Sprintf("%d", hashPercentage), }) - // Get our block hash to compare - st, err := raftlib.GetCurrentState() + // CRITICAL: Only rollback if the leading hash has >= ThresholdCommit percentage + // Otherwise, with a 2-way split (e.g., 33% vs 33%), we'd arbitrarily pick one + if hashPercentage < config.ThresholdCommit { + LoggerInfo("no clear majority yet, waiting for more commits", []string{ + "blockNumber", fmt.Sprintf("%d", mapping.BlockNumber), + "hashPercentage", fmt.Sprintf("%d", hashPercentage), + "requiredPercentage", fmt.Sprintf("%d", config.ThresholdCommit), + }) + return nil + } + + // Get the hash of the specific block we're checking (not NextHash which is for the next block) + blockEntry, err := raftlib.GetLogEntryAggregate(mapping.BlockNumber) + if err != nil { + LoggerError("failed to get block entry for consensus check", []string{ + "blockNumber", fmt.Sprintf("%d", mapping.BlockNumber), + "error", err.Error(), + }) + return err + } + if blockEntry == nil { + // We don't have this block yet, can't compare + LoggerDebug("we don't have this block yet, skipping consensus check", []string{ + "blockNumber", fmt.Sprintf("%d", mapping.BlockNumber), + }) + return nil + } + + // Get the hash from the block header + var header typestnd.Header + if err := json.Unmarshal(blockEntry.Data.Header, &header); err != nil { + LoggerError("failed to unmarshal block header", []string{"error", err.Error()}) + return err + } + blockHash, err := consensuswrap.HeaderHash(header) if err != nil { + LoggerError("failed to compute header hash", []string{"error", err.Error()}) return err } - ourHash := base64.StdEncoding.EncodeToString(st.NextHash) + ourHash := base64.StdEncoding.EncodeToString(blockHash) // If our hash doesn't match the majority hash, we need to rollback if ourHash != maxHash { @@ -574,6 +635,7 @@ func CheckConsensusThresholds(mapping *BlockCommitMapping) error { "blockNumber", fmt.Sprintf("%d", mapping.BlockNumber), "ourHash", ourHash, "majorityHash", maxHash, + "majorityPercentage", fmt.Sprintf("%d", hashPercentage), }) // Get current height to determine how many blocks to rollback diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/block.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/block.go index c50032cf..64d84f2c 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/block.go +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/block.go @@ -117,6 +117,7 @@ func buildKayrosBlockProposal(txs [][]byte, txHashes []string, optimisticExecuti validatorSet := typestnd.TendermintValidators{Validators: validatorInfos} // Use the first validator as proposer for deterministic block hash across all validators + // TODO we need to change Kayros to accept some additional data, like the proposerAddress var proposerAddress wasmx.HexString var proposerBech32 wasmx.Bech32String if len(validatorInfos) > 0 { @@ -127,7 +128,7 @@ func buildKayrosBlockProposal(txs [][]byte, txHashes []string, optimisticExecuti proposerBech32 = wasmx.Bech32String("") } - lastBlockCommit := getLastBlockCommitInternal(st) + // lastBlockCommit := getLastBlockCommitInternal(st) // Get previous block validators for the last block commit signatures previousBlock, err := raftlib.GetLogEntryAggregate(height - 1) @@ -138,51 +139,113 @@ func buildKayrosBlockProposal(txs [][]byte, txHashes []string, optimisticExecuti previousValidatorSet = validatorSet } - signatures := consutils.FilterAndSortCommitSignatures(lastBlockCommit.Signatures, previousValidatorSet.Validators) - if len(signatures) != len(previousValidatorSet.Validators) && height > (raftlib.LOG_START+1) { - raftlib.Revert(fmt.Sprintf(`last block validator set length mismatch with signature list: expected %d, got %d`, len(signatures), len(previousValidatorSet.Validators))) - } + // signatures := consutils.FilterAndSortCommitSignatures(lastBlockCommit.Signatures, previousValidatorSet.Validators) + // if len(signatures) != len(previousValidatorSet.Validators) && height > (raftlib.LOG_START+1) { + // raftlib.Revert(fmt.Sprintf(`last block validator set length mismatch with signature list: expected %d, got %d`, len(signatures), len(previousValidatorSet.Validators))) + // } lastCommit := typestnd.CommitInfo{Round: 0, Votes: []typestnd.VoteInfo{}} localLastCommit := typestnd.ExtendedCommitInfo{Round: 0, Votes: []typestnd.ExtendedVoteInfo{}} - for i := 0; i < len(signatures); i++ { - commitSig := signatures[i] - val := previousValidatorSet.Validators[i] - - vaddress := wasmx.AddrCanonicalize(string(val.OperatorAddress)) - validator := typestnd.Validator{Address: vaddress, Power: val.VotingPower} - voteInfo := typestnd.VoteInfo{Validator: validator, BlockIDFlag: commitSig.BlockIDFlag} - lastCommit.Votes = append(lastCommit.Votes, voteInfo) - - extendedVoteInfo := typestnd.ExtendedVoteInfo{ - Validator: validator, - VoteExtension: []byte{}, - ExtensionSignature: []byte{}, - BlockIDFlag: commitSig.BlockIDFlag, - } - localLastCommit.Votes = append(localLastCommit.Votes, extendedVoteInfo) - } + // for i := 0; i < len(signatures); i++ { + // commitSig := signatures[i] + // val := previousValidatorSet.Validators[i] + + // vaddress := wasmx.AddrCanonicalize(string(val.OperatorAddress)) + // validator := typestnd.Validator{Address: vaddress, Power: val.VotingPower} + // voteInfo := typestnd.VoteInfo{Validator: validator, BlockIDFlag: commitSig.BlockIDFlag} + // lastCommit.Votes = append(lastCommit.Votes, voteInfo) + + // extendedVoteInfo := typestnd.ExtendedVoteInfo{ + // Validator: validator, + // VoteExtension: []byte{}, + // ExtensionSignature: []byte{}, + // BlockIDFlag: commitSig.BlockIDFlag, + // } + // localLastCommit.Votes = append(localLastCommit.Votes, extendedVoteInfo) + // } nextValsHash, err := consensuswrap.ValidatorsHash(validatorInfos) if err != nil { return err } misbehavior := []typestnd.Misbehavior{} - timeNow := time.Now() - timeISO := timeNow.UTC().Format(time.RFC3339Nano) - t, _ := time.Parse(time.RFC3339Nano, st.LastTime) - if t.UnixMilli() >= timeNow.UnixMilli() { - raftlib.Revert(fmt.Sprintf(`last block time %s higher than current time %s, revert and skip round`, st.LastTime, timeISO)) + // STEP 1: Get block data for temporary header (without calling PrepareProposal yet) + // sortedBlockCommits := lastBlockCommit + // if height > (raftlib.LOG_START + 1) { + // sortedBlockCommits, err = consutils.GetSortedBlockCommits(lastBlockCommit, previousValidatorSet.Validators) + // sortedBlockCommits = consutils.CleanAbsentCommits(sortedBlockCommits) + // } + // empty, we dont need to keep signatures from validators + // TODO revisit this if we extend kayros to receive signatures and blob data from nodes + sortedBlockCommits := typestnd.BlockCommit{ + Height: height, + Round: height, + BlockID: st.LastBlockID, + } + evidence := typestnd.Evidence{} + consHash := []byte{} + if params, err := raftlib.GetConsensusParams(height); err == nil && params != nil { + if h, err2 := consutils.GetConsensusParamsHash(*params); err2 == nil { + consHash = h + } + } + + lastCommitHashHex := wasmx.HexString(strings.ToUpper(hex.EncodeToString(consutils.GetCommitHash(sortedBlockCommits)))) + + // STEP 2: Create temporary header with zero timestamp to calculate hash for Kayros + // Use a valid zero timestamp in RFC3339Nano format + zeroTime := "0001-01-01T00:00:00.000000000Z" + + tempHeader := typestnd.Header{ + Version: typestnd.VersionConsensus{Block: typestnd.BlockProtocol, App: st.Version.Consensus.App}, + ChainID: st.ChainID, + Height: height, + Time: zeroTime, // Valid zero timestamp for initial hash + LastBlockID: st.LastBlockID, + LastCommitHash: lastCommitHashHex, + DataHash: wasmx.HexString(strings.ToUpper(hex.EncodeToString(consutils.GetTxsHash(txs)))), + ValidatorsHash: wasmx.HexString(strings.ToUpper(hex.EncodeToString(nextValsHash))), + NextValidatorsHash: wasmx.HexString(strings.ToUpper(hex.EncodeToString(nextValsHash))), + ConsensusHash: wasmx.HexString(strings.ToUpper(hex.EncodeToString(consHash))), + AppHash: wasmx.HexString(strings.ToUpper(hex.EncodeToString(st.AppHash))), + LastResultsHash: wasmx.HexString(strings.ToUpper(hex.EncodeToString(st.LastResultsHash))), + EvidenceHash: wasmx.HexString(strings.ToUpper(hex.EncodeToString(consutils.GetEvidenceHash(evidence)))), + ProposerAddress: proposerAddress, // First validator for deterministic hash } + // STEP 3: Calculate hash of header with empty timestamp + tempHash, err := consensuswrap.HeaderHash(tempHeader) + if err != nil { + return err + } + tempHashHex := hex.EncodeToString(tempHash) + + // STEP 4: Get deterministic timestamp from Kayros + kayrosClient, err := GetKayrosClient() + if err != nil { + return fmt.Errorf("failed to get Kayros client: %w", err) + } + + kayrosTimestamp, err := kayrosClient.GetBlockTimestamp(wasmx.HexString(tempHashHex)) + if err != nil { + return fmt.Errorf("failed to get block timestamp from Kayros: %w", err) + } + + LoggerInfo("got Kayros timestamp for block", []string{ + "height", raftlib.Int64ToString(height), + "tempHash", tempHashHex, + "kayrosTimestamp", kayrosTimestamp, + }) + + // STEP 5: Now call PrepareProposal with the Kayros timestamp prepareReq := typestnd.RequestPrepareProposal{ MaxTxBytes: maxDataBytes, Txs: txs, LocalLastCommit: localLastCommit, Misbehavior: misbehavior, Height: height, - Time: timeISO, + Time: kayrosTimestamp, // Use Kayros timestamp NextValidatorsHash: nextValsHash, ProposerAddress: proposerAddress, // First validator for deterministic hash } @@ -191,28 +254,12 @@ func buildKayrosBlockProposal(txs [][]byte, txHashes []string, optimisticExecuti return err } - sortedBlockCommits := lastBlockCommit - if height > (raftlib.LOG_START + 1) { - sortedBlockCommits, err = consutils.GetSortedBlockCommits(lastBlockCommit, previousValidatorSet.Validators) - sortedBlockCommits = consutils.CleanAbsentCommits(sortedBlockCommits) - } - evidence := typestnd.Evidence{} - consHash := []byte{} - if params, err := raftlib.GetConsensusParams(height); err == nil && params != nil { - if h, err2 := consutils.GetConsensusParamsHash(*params); err2 == nil { - consHash = h - } - } - - lastCommitHashHex := wasmx.HexString(strings.ToUpper(hex.EncodeToString(consutils.GetCommitHash(sortedBlockCommits)))) - - // In Kayros consensus, all validators build blocks independently - // ProposerAddress must be deterministic to ensure same block hash across all validators + // STEP 6: Build final header with Kayros timestamp header := typestnd.Header{ Version: typestnd.VersionConsensus{Block: typestnd.BlockProtocol, App: st.Version.Consensus.App}, ChainID: st.ChainID, Height: height, - Time: prepareReq.Time, + Time: kayrosTimestamp, // Use Kayros timestamp LastBlockID: st.LastBlockID, LastCommitHash: lastCommitHashHex, DataHash: wasmx.HexString(strings.ToUpper(hex.EncodeToString(consutils.GetTxsHash(prepareResp.Txs)))), @@ -224,13 +271,17 @@ func buildKayrosBlockProposal(txs [][]byte, txHashes []string, optimisticExecuti EvidenceHash: wasmx.HexString(strings.ToUpper(hex.EncodeToString(consutils.GetEvidenceHash(evidence)))), ProposerAddress: proposerAddress, // First validator for deterministic hash } + + // STEP 7: Calculate final hash with Kayros timestamp hhash, err := consensuswrap.HeaderHash(header) if err != nil { return err } - LoggerInfo("Kayros block proposal", []string{ + + LoggerInfo("Kayros block proposal with deterministic timestamp", []string{ "height", raftlib.Int64ToString(height), "hash", base64.StdEncoding.EncodeToString(hhash), + "timestamp", kayrosTimestamp, "txCount", fmt.Sprintf("%d", len(txs)), }) @@ -240,7 +291,7 @@ func buildKayrosBlockProposal(txs [][]byte, txHashes []string, optimisticExecuti Misbehavior: prepareReq.Misbehavior, Hash: hhash, Height: prepareReq.Height, - Time: prepareReq.Time, + Time: kayrosTimestamp, // Use Kayros timestamp NextValidatorsHash: prepareReq.NextValidatorsHash, ProposerAddress: proposerAddress, // First validator for deterministic hash } @@ -420,6 +471,22 @@ func SendCommit(params []fsm.ActionParam, event fsm.EventObject) error { commitBytes, _ = json.Marshal(commit) + // Store our own commit in the mapping before broadcasting + mapping, err := GetBlockCommitMapping(lastIndex) + if err != nil { + LoggerError("failed to get block commit mapping", []string{"error", err.Error()}) + } else { + mapping.Commits[ourAddress] = commit + if err := SetBlockCommitMapping(mapping); err != nil { + LoggerError("failed to save our own commit", []string{"error", err.Error()}) + } else { + LoggerDebug("stored our own commit", []string{ + "blockNumber", fmt.Sprintf("%d", lastIndex), + "blockHash", commit.BlockHash, + }) + } + } + // Build P2P message payload payload := struct { Run struct { diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/kayros.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/kayros.go index e3fe37f1..d5a170f8 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/kayros.go +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/kayros.go @@ -24,9 +24,9 @@ func NewKayrosClient(config KayrosConfig) *KayrosClient { // getDataType returns the formatted data_type for Kayros API // Format: "wasmx_[_]" converted to hex and right-padded to 32 bytes -func (kc *KayrosClient) getDataType() string { +func (kc *KayrosClient) getDataType() wasmx.HexString { chainId := wasmx.GetChainId() - dataType := fmt.Sprintf("wasmx_%s", chainId) + dataType := fmt.Sprintf("wasmx_tx_%s", chainId) // Append data_type_id if provided dataTypeId := sGet(CTX_DATA_TYPE_ID) @@ -39,7 +39,27 @@ func (kc *KayrosClient) getDataType() string { copy(dataTypeBytes, []byte(dataType)) // Return as hex string - return hex.EncodeToString(dataTypeBytes) + return wasmx.HexString(hex.EncodeToString(dataTypeBytes)) +} + +// getBlockDataType returns the data_type for block timestamp synchronization +// Format: "wasmx_[_]_blocks" converted to hex and right-padded to 32 bytes +func (kc *KayrosClient) getBlockDataType() wasmx.HexString { + chainId := wasmx.GetChainId() + dataType := fmt.Sprintf("wasmx_b_%s", chainId) + + // Append data_type_id if provided + dataTypeId := sGet(CTX_DATA_TYPE_ID) + if dataTypeId != "" { + dataType = fmt.Sprintf("%s_%s", dataType, dataTypeId) + } + + // Convert to bytes and right-pad to 32 bytes + dataTypeBytes := make([]byte, 32) + copy(dataTypeBytes, []byte(dataType)) + + // Return as hex string + return wasmx.HexString(hex.EncodeToString(dataTypeBytes)) } // makeRequest performs an HTTP GET request to the Kayros API @@ -75,26 +95,8 @@ func (kc *KayrosClient) makeRequest(endpoint string) ([]byte, error) { } // GetRecordByDataItem retrieves a Kayros record by data_type and data_item (transaction hash) -// GET /api/database/record?data_type=&data_item= -func (kc *KayrosClient) GetRecordByDataItem(txHash string) (*KayrosRecord, error) { - endpoint := fmt.Sprintf("/api/database/record?data_type=%s&data_item=%s", - kc.getDataType(), txHash) - - respData, err := kc.makeRequest(endpoint) - if err != nil { - return nil, err - } - - var kayrosResp KayrosRecordResponse - if err := json.Unmarshal(respData, &kayrosResp); err != nil { - return nil, fmt.Errorf("failed to unmarshal Kayros response: %w", err) - } - - if !kayrosResp.Success { - return nil, fmt.Errorf("Kayros API error: %s", kayrosResp.Message) - } - - return &kayrosResp.Data, nil +func (kc *KayrosClient) GetRecordByDataItem(txHash wasmx.HexString) (*KayrosRecord, error) { + return kc.GetRecord(kc.getDataType(), txHash) } // GetRecordByHash retrieves a Kayros record by hash_item (Kayros unique ID) @@ -198,19 +200,143 @@ func (kc *KayrosClient) makePostRequest(endpoint string, body []byte) ([]byte, e if resp.Data.StatusCode != 200 && resp.Data.StatusCode != 201 { return nil, fmt.Errorf("HTTP POST request returned status %d: %s", resp.Data.StatusCode, resp.Data.Status) } + LoggerDebug("http request", []string{"url", url, "method", "POST", "response", string(resp.Data.Data)}) return resp.Data.Data, nil } +// GetBlockTimestamp retrieves or registers a block hash with Kayros to get a deterministic timestamp +// This ensures all validators use the same timestamp for the same block +// Returns the Kayros timestamp for the block in RFC3339Nano format +func (kc *KayrosClient) GetBlockTimestamp(blockHashHex wasmx.HexString) (string, error) { + // First, try to get the existing record + record, err := kc.GetBlockRecord(blockHashHex) + if err == nil && record != nil { + // Record exists, extract timestamp from TimeUUID for RFC3339Nano format + timestamp, err := TimeuuidHexToTimestamp(record.UuidHex) + if err != nil { + return "", fmt.Errorf("failed to extract timestamp from existing record UUID: %w: %s", err, record.UuidHex) + } + LoggerDebug("block hash already registered with Kayros", []string{ + "blockHash", string(blockHashHex), + "timestamp", timestamp, + }) + return timestamp, nil + } + + // Record doesn't exist, register it + LoggerDebug("registering block hash with Kayros", []string{"blockHash", string(blockHashHex)}) + _, err = kc.RegisterBlockHash(blockHashHex) + if err != nil { + return "", fmt.Errorf("failed to register block hash: %w", err) + } + + // IMPORTANT: Query separately to get the earliest record (not registration response) + // This handles race conditions when multiple nodes register the same hash simultaneously + // The Kayros API returns the earliest registration (limit 1) when querying by data_type + data_item + record, err = kc.GetBlockRecord(blockHashHex) + if err != nil { + return "", fmt.Errorf("failed to query block record after registration: %w", err) + } + if record == nil { + return "", fmt.Errorf("block record not found after registration") + } + + // Extract timestamp from the earliest registration's TimeUUID + timestamp, err := TimeuuidHexToTimestamp(record.UuidHex) + if err != nil { + return "", fmt.Errorf("failed to extract timestamp from UUID: %w: %s", err, record.UuidHex) + } + + LoggerInfo("block hash registered and queried from Kayros", []string{ + "blockHash", string(blockHashHex), + "timeUUID", record.UuidHex, + "timestamp", timestamp, + "hashItem", record.HashItemHex, + }) + + return timestamp, nil +} + +// GetBlockRecord retrieves a block record from Kayros by block hash +func (kc *KayrosClient) GetBlockRecord(blockHashHex wasmx.HexString) (*KayrosRecord, error) { + return kc.GetRecord(kc.getBlockDataType(), blockHashHex) +} + +// GetBlockRecord retrieves a block record from Kayros by block hash +// GET /api/database/record?data_type=&data_item= +func (kc *KayrosClient) GetRecord(dataType wasmx.HexString, dataItem wasmx.HexString) (*KayrosRecord, error) { + endpoint := fmt.Sprintf("/api/database/record?data_type=%s&data_item=%s&limit=1", + dataType, dataItem) + + respData, err := kc.makeRequest(endpoint) + if err != nil { + return nil, err + } + + var kayrosResp KayrosRecordsResponse + if err := json.Unmarshal(respData, &kayrosResp); err != nil { + return nil, fmt.Errorf("failed to unmarshal Kayros response: %w", err) + } + + if !kayrosResp.Success { + // Record not found or other error + return nil, fmt.Errorf("Kayros API error: %s", kayrosResp.Message) + } + + if len(kayrosResp.Data.Records) < 1 { + // Record not found or other error + return nil, fmt.Errorf("Kayros API record not found: %s", kayrosResp.Message) + } + + return &kayrosResp.Data.Records[0], nil +} + +// GetBlockRecordByHashItem retrieves a block record from Kayros by hash_item (Kayros computed hash) +// GET /api/database/record-by-hash?hash_item= +func (kc *KayrosClient) GetBlockRecordByHashItem(hashItem string) (*KayrosRecord, error) { + endpoint := fmt.Sprintf("/api/database/record-by-hash?hash_item=%s", hashItem) + + respData, err := kc.makeRequest(endpoint) + if err != nil { + return nil, err + } + + var kayrosResp KayrosRecordResponse + if err := json.Unmarshal(respData, &kayrosResp); err != nil { + return nil, fmt.Errorf("failed to unmarshal Kayros response: %w", err) + } + + if !kayrosResp.Success { + // Record not found or other error + return nil, fmt.Errorf("Kayros API error: %s", kayrosResp.Message) + } + + return &kayrosResp.Data, nil +} + +// RegisterBlockHash registers a block hash with Kayros for timestamp synchronization +// POST /api/grpc/single-hash with blocks data type +func (kc *KayrosClient) RegisterBlockHash(blockHashHex wasmx.HexString) (*KayrosRegistrationResponse, error) { + reqBody := KayrosRegistrationRequest{ + DataType: kc.getBlockDataType(), + DataItem: blockHashHex, + } + return kc.RegisterData(reqBody) +} + // RegisterTransaction registers a transaction with Kayros via POST /api/grpc/single-hash func (kc *KayrosClient) RegisterTransaction(txHash string) (*KayrosRegistrationResponse, error) { - endpoint := "/api/grpc/single-hash" - reqBody := KayrosRegistrationRequest{ DataType: kc.getDataType(), - DataItem: txHash, + DataItem: wasmx.HexString(txHash), } + return kc.RegisterData(reqBody) +} +// RegisterData registers data with Kayros via POST /api/grpc/single-hash +func (kc *KayrosClient) RegisterData(reqBody KayrosRegistrationRequest) (*KayrosRegistrationResponse, error) { + endpoint := "/api/grpc/single-hash" bodyBytes, err := json.Marshal(reqBody) if err != nil { return nil, fmt.Errorf("failed to marshal registration request: %w", err) @@ -220,11 +346,15 @@ func (kc *KayrosClient) RegisterTransaction(txHash string) (*KayrosRegistrationR if err != nil { return nil, err } + fmt.Println("--RegisterData.resp--", string(respData)) - var kayrosResp KayrosRegistrationResponse + var kayrosResp KayrosRegistrationResponseWrap if err := json.Unmarshal(respData, &kayrosResp); err != nil { return nil, fmt.Errorf("failed to unmarshal Kayros registration response: %w", err) } - - return &kayrosResp, nil + if !kayrosResp.Success { + return nil, fmt.Errorf("Failed Kayros registration: %s", kayrosResp.Message) + } + fmt.Println("--RegisterData.resp2--", kayrosResp.Data) + return &kayrosResp.Data, nil } diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/types.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/types.go index 05e18915..a4395213 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/types.go +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/types.go @@ -1,6 +1,7 @@ package lib import ( + wasmx "github.com/loredanacirstea/wasmx-env/lib" raftlib "github.com/loredanacirstea/wasmx-raft-lib/lib" ) @@ -12,20 +13,20 @@ const ( // StateSyncRequest mirrors the AS request with start index type StateSyncRequest struct { - StartIndex int64 `json:"start_index"` - PeerAddress string `json:"peer_address"` + StartIndex int64 `json:"start_index"` + PeerAddress string `json:"peer_address"` } // StateSyncResponse mirrors the AS response with batch indexes and entries type StateSyncResponse struct { - StartBatchIndex int64 `json:"start_batch_index"` - LastBatchIndex int64 `json:"last_batch_index"` - LastLogIndex int64 `json:"last_log_index"` - TrustedLogIndex int64 `json:"trusted_log_index"` - TrustedLogHash []byte `json:"trusted_log_hash"` - TermID int32 `json:"termId"` - PeerAddress string `json:"peer_address"` - Entries []raftlib.LogEntryAggregate `json:"entries"` + StartBatchIndex int64 `json:"start_batch_index"` + LastBatchIndex int64 `json:"last_batch_index"` + LastLogIndex int64 `json:"last_log_index"` + TrustedLogIndex int64 `json:"trusted_log_index"` + TrustedLogHash []byte `json:"trusted_log_hash"` + TermID int32 `json:"termId"` + PeerAddress string `json:"peer_address"` + Entries []raftlib.LogEntryAggregate `json:"entries"` } // KayrosConfig holds the configuration for Kayros API client @@ -35,11 +36,11 @@ type KayrosConfig struct { // InstantiateMsg is the message passed during contract instantiation type InstantiateMsg struct { - KayrosApiUrl string `json:"kayros_api_url"` // e.g., "https://kayros.provable.dev" - GenesisUUID string `json:"genesis_uuid"` // First UUID to start from on genesis - ThresholdCommit int `json:"threshold_commit"` // Percentage threshold for commit (e.g., 51) - determines when to rollback - ThresholdFinalize int `json:"threshold_finalize"` // Percentage threshold for finalization (e.g., 75) - determines when block is finalized - MaxBlockTx int `json:"max_block_tx"` // Maximum transactions per block (default: 100) + KayrosApiUrl string `json:"kayros_api_url"` // e.g., "https://kayros.provable.dev" + GenesisUUID string `json:"genesis_uuid"` // First UUID to start from on genesis + ThresholdCommit int `json:"threshold_commit"` // Percentage threshold for commit (e.g., 51) - determines when to rollback + ThresholdFinalize int `json:"threshold_finalize"` // Percentage threshold for finalization (e.g., 75) - determines when block is finalized + MaxBlockTx int `json:"max_block_tx"` // Maximum transactions per block (default: 100) } // KayrosRecord represents a record in the Kayros database @@ -48,7 +49,7 @@ type KayrosRecord struct { DataTypeHex string `json:"data_type_hex"` DataItemHex string `json:"data_item_hex"` UuidHex string `json:"uuid_hex"` - HashItemHex string `json:"hash_item_hex"` // Kayros unique ID + HashItemHex string `json:"hash_item_hex"` // Kayros unique ID PrevHashHex string `json:"prev_hash_hex,omitempty"` // Optional - may not be in all responses HashType string `json:"hash_type"` Timestamp string `json:"timestamp"` @@ -118,31 +119,41 @@ type MissingTransactionsResponse struct { // KayrosRegistrationRequest is the request body for POST /api/grpc/single-hash type KayrosRegistrationRequest struct { - DataType string `json:"data_type"` - DataItem string `json:"data_item"` // Transaction hash + DataType wasmx.HexString `json:"data_type"` + DataItem wasmx.HexString `json:"data_item"` // Transaction hash } // KayrosRegistrationResponse is the response from the registration API type KayrosRegistrationResponse struct { - Success bool `json:"success"` - Message string `json:"message"` - UUID string `json:"uuid,omitempty"` + Success bool `json:"success"` + Message string `json:"message"` + DataType string `json:"data_type"` + DataItem string `json:"data_item"` + ComputedHash wasmx.HexString `json:"computed_hash_hex"` + TimeUUID wasmx.HexString `json:"timeuuid_hex"` + DataTypeHex wasmx.HexString `json:"data_type_hex"` + DataItemHex wasmx.HexString `json:"data_item_hex"` +} + +type KayrosRegistrationResponseWrap struct { + KayrosApiResponse + Data KayrosRegistrationResponse `json:"data"` } // KayrosTxMetadata stores Kayros ordering information for a transaction // This metadata is included in the block's Metainfo field type KayrosTxMetadata struct { - TxHash string `json:"tx_hash"` // Transaction hash (data_item) - UUID string `json:"uuid"` // Kayros UUID for ordering - HashItem string `json:"hash_item"` // Kayros unique ID (hash_item_hex) - Timestamp string `json:"timestamp"` // Kayros timestamp - PrevHash string `json:"prev_hash"` // Previous hash in the ordering chain - BlockNumber int64 `json:"block_number"` // Block this tx is included in + TxHash string `json:"tx_hash"` // Transaction hash (data_item) + UUID string `json:"uuid"` // Kayros UUID for ordering + HashItem string `json:"hash_item"` // Kayros unique ID (hash_item_hex) + Timestamp string `json:"timestamp"` // Kayros timestamp + PrevHash string `json:"prev_hash"` // Previous hash in the ordering chain + BlockNumber int64 `json:"block_number"` // Block this tx is included in } // KayrosBlockMetadata contains all Kayros metadata for transactions in a block type KayrosBlockMetadata struct { Transactions []KayrosTxMetadata `json:"transactions"` - FirstUUID string `json:"first_uuid"` // First UUID in this block - LastUUID string `json:"last_uuid"` // Last UUID in this block + FirstUUID string `json:"first_uuid"` // First UUID in this block + LastUUID string `json:"last_uuid"` // Last UUID in this block } diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/utils.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/utils.go index 5afed66d..5aa1476f 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/utils.go +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/utils.go @@ -3,6 +3,8 @@ package lib import ( "encoding/base64" "encoding/hex" + "fmt" + "time" wasmx "github.com/loredanacirstea/wasmx-env/lib" ) @@ -36,3 +38,49 @@ func HexHashToBase64(hexHash string) (string, error) { } return base64.StdEncoding.EncodeToString(hashBytes), nil } + +// TimeuuidHexToTimestamp extracts timestamp from a Kayros TimeUUID hex string +// TimeUUID format (version 1): time-low(4) time-mid(2) time-high-and-version(2) clock-seq(2) node(6) +// Returns RFC3339Nano formatted timestamp string +func TimeuuidHexToTimestamp(timeuuidHex string) (string, error) { + // Decode hex string to bytes + uuidBytes, err := hex.DecodeString(timeuuidHex) + if err != nil { + return "", fmt.Errorf("invalid hex: %w", err) + } + + if len(uuidBytes) != 16 { + return "", fmt.Errorf("UUIDs must be exactly 16 bytes long") + } + + // Extract timestamp from TimeUUID (version 1) + // UUIDs are stored in big-endian (network byte order) + // The timestamp is split across time_low (bytes 0-3), time_mid (bytes 4-5), + // and time_hi_and_version (bytes 6-7) + + // Read time_low (32 bits, big-endian) + timeLow := uint64(uuidBytes[0])<<24 | uint64(uuidBytes[1])<<16 | + uint64(uuidBytes[2])<<8 | uint64(uuidBytes[3]) + + // Read time_mid (16 bits, big-endian) + timeMid := uint64(uuidBytes[4])<<8 | uint64(uuidBytes[5]) + + // Read time_hi_and_version (16 bits, big-endian), mask out version bits (top 4 bits) + timeHi := (uint64(uuidBytes[6])<<8 | uint64(uuidBytes[7])) & 0x0FFF + + // Reconstruct the 60-bit timestamp + // timestamp = time_low + (time_mid << 32) + (time_hi << 48) + timestamp := timeLow | (timeMid << 32) | (timeHi << 48) + + // UUID timestamp is in 100-nanosecond intervals since UUID epoch (1582-10-15) + // Convert to Unix time (nanoseconds since 1970-01-01) + const gregorianEpoch = 122192928000000000 // 100-ns intervals between UUID epoch and Unix epoch + + unixNanos := int64((timestamp - gregorianEpoch) * 100) + + // Convert to time.Time + t := time.Unix(0, unixNanos) + + // Format as RFC3339Nano + return t.UTC().Format(time.RFC3339Nano), nil +} diff --git a/tests/utils/utils.go b/tests/utils/utils.go index b9562e04..62fcae34 100644 --- a/tests/utils/utils.go +++ b/tests/utils/utils.go @@ -55,7 +55,7 @@ func SystemContractsModify(wasmRuntime string) func([]wasmxtypes.SystemContract) json.Unmarshal(contracts[i].InitMessage, execmsg) msg := string(execmsg.Data) - msg = strings.Replace(msg, `{"key":"data_type_id","value":""}`, fmt.Sprintf(`{"key":"data_type_id","value":"%d"}`, time.Now().UnixMilli()), 1) + msg = strings.Replace(msg, `{"key":"data_type_id","value":""}`, fmt.Sprintf(`{"key":"data_type_id","value":"%d"}`, time.Now().Unix()), 1) execmsg.Data = []byte(msg) execmsgbz, _ := json.Marshal(execmsg) diff --git a/wasmx/EXAMPLES.md b/wasmx/EXAMPLES.md index 1140663a..a899a6f5 100644 --- a/wasmx/EXAMPLES.md +++ b/wasmx/EXAMPLES.md @@ -39,7 +39,7 @@ mythosd tx wasmx store ./tests/testdata/wasmx/simple_storage.wasm --chain-id=myt # mythosd query tx # search code_id -mythosd tx wasmx instantiate 57 '{"crosschain_contract":"metaregistry"}' --label "simple_storage" --chain-id=mythos_7000-14 --from=node0 --keyring-backend=test --home=./testnet/node0/mythosd --fees=90000000000amyt --gas=10000000 --node tcp://localhost:26657 --yes +mythosd tx wasmx instantiate 61 '{"crosschain_contract":"metaregistry"}' --label "simple_storage" --chain-id=mythos_7000-14 --from=node0 --keyring-backend=test --home=./testnet/node0/mythosd --fees=90000000000amyt --gas=10000000 --node tcp://localhost:26657 --yes # mythosd query tx # search contract_address diff --git a/wasmx/x/wasmx/vm/precompiles/71.kayrosp2p_library.wasm b/wasmx/x/wasmx/vm/precompiles/71.kayrosp2p_library.wasm index 4ce69277b8051231c84f2beb6db0058f97f936e0..ec631d5ec412492b82a435d6099705dd3483f76e 100644 GIT binary patch delta 140896 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 delta 134880 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 From 29e0e2aab7d10a3dd91f49c83ca91eae34d2c02e Mon Sep 17 00:00:00 2001 From: Loredana Cirstea Date: Tue, 30 Dec 2025 20:12:43 +0100 Subject: [PATCH 05/10] kayros consensus working with multiple validators --- .../tinygo/wasmx-kayrosp2p-lib/lib/actions.go | 50 +++++++----------- .../wasmx-raft-lib/lib/types_blockchain.go | 19 +++++++ .../vm/precompiles/71.kayrosp2p_library.wasm | Bin 496299 -> 498899 bytes 3 files changed, 37 insertions(+), 32 deletions(-) diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go index f9e1877e..81230395 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go @@ -366,6 +366,20 @@ func GetKayrosTxs(params []fsm.ActionParam, event fsm.EventObject) error { allTxHashes := []string{} for txHash, record := range deduplicatedRecords { + // Convert hex hash to base64 for mempool check (mempool uses base64 format) + txHashBase64, err := HexHashToBase64(txHash) + if err != nil { + LoggerError("failed to decode tx hash from Kayros", []string{"txHash", txHash, "error", err.Error()}) + continue + } + + // Check if we have already processed this transaction before + // and skip it if yes + if mp.IsRecentlyProcessed(txHashBase64) { + LoggerDebug("transaction already processed", []string{"hash", txHash, "kayrosId", record.HashItemHex}) + continue + } + allTxHashes = append(allTxHashes, txHash) // Store Kayros metadata for this transaction @@ -380,15 +394,8 @@ func GetKayrosTxs(params []fsm.ActionParam, event fsm.EventObject) error { LoggerError("failed to store Kayros tx metadata", []string{"txHash", txHash, "error", err.Error()}) } - // Convert hex hash to base64 for mempool check (mempool uses base64 format) - txHashBase64, err := HexHashToBase64(txHash) - if err != nil { - LoggerError("failed to decode tx hash from Kayros", []string{"txHash", txHash, "error", err.Error()}) - continue - } - // Check if we have this transaction in our mempool - if mp.HasSeen(txHashBase64) { + if mp.IsInMempool(txHashBase64) { LoggerDebug("transaction in mempool", []string{"txHash", txHash, "kayrosId", record.HashItemHex}) continue } @@ -954,35 +961,14 @@ func ReceiveMissingTransactions(params []fsm.ActionParam, event fsm.EventObject) "txCount", fmt.Sprintf("%d", len(response.Transactions)), }) - // Add transactions to mempool - mp, err := raftlib.GetMempool() - if err != nil { - return err - } - addedCount := 0 - chainId := wasmx.GetChainId() - for i, tx := range response.Transactions { - txHash := response.TxHashes[i] - if !mp.HasSeen(txHash) { - // Add to mempool with default gas (0) and our chain as leader - mp.Add(txHash, tx, 0, chainId) - addedCount++ - } + for _, tx := range response.Transactions { + raftlib.AddTransactionToMempool(tx) } - - // Save the updated mempool - if addedCount > 0 { - if err := raftlib.SetMempool(mp); err != nil { - LoggerError("failed to save mempool", []string{"error", err.Error()}) - } - } - LoggerInfo("added missing transactions to mempool", []string{ "addedCount", fmt.Sprintf("%d", addedCount), "fromPeer", sender, }) - return nil } @@ -1019,7 +1005,7 @@ func IfAllTransactions(params []fsm.ActionParam, event fsm.EventObject) bool { continue } - if !mp.HasSeen(txHashBase64) { + if !mp.IsInMempool(txHashBase64) { missingCount++ } } diff --git a/tests/testdata/tinygo/wasmx-raft-lib/lib/types_blockchain.go b/tests/testdata/tinygo/wasmx-raft-lib/lib/types_blockchain.go index 6fad3c56..11a6df2a 100644 --- a/tests/testdata/tinygo/wasmx-raft-lib/lib/types_blockchain.go +++ b/tests/testdata/tinygo/wasmx-raft-lib/lib/types_blockchain.go @@ -91,6 +91,25 @@ func (m *Mempool) HasSeen(txhash string) bool { return ok } +func (m *Mempool) IsRecentlyProcessed(txhash string) bool { + if m == nil { + return false + } + _, ok := m.Map[txhash] + if m.Temp[txhash] && !ok { + return true + } + return false +} + +func (m *Mempool) IsInMempool(txhash string) bool { + if m == nil { + return false + } + _, ok := m.Map[txhash] + return ok +} + func (m *Mempool) Seen(txhash string) { if m == nil { return diff --git a/wasmx/x/wasmx/vm/precompiles/71.kayrosp2p_library.wasm b/wasmx/x/wasmx/vm/precompiles/71.kayrosp2p_library.wasm index ec631d5ec412492b82a435d6099705dd3483f76e..ce2eaa2ac32de8ed67a28114dbe298726713e7bb 100644 GIT binary patch delta 90551 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 delta 87729 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 Date: Wed, 31 Dec 2025 13:33:06 +0100 Subject: [PATCH 06/10] kayros consensus on-demand --- Makefile | 3 +- .../wasmx-kayrosp2p-ondemand-lib/README.md | 24 + .../wasmx-kayrosp2p-ondemand-lib/cmd/main.go | 294 +++++++++++ .../diagram/def.json | 1 + .../diagram/def.ts | 498 ++++++++++++++++++ .../wasmx-kayrosp2p-ondemand-lib/go.mod | 69 +++ .../wasmx-kayrosp2p-ondemand-lib/go.sum | 12 + .../lib/actions.go | 105 ++++ .../wasmx-kayrosp2p-ondemand-lib/lib/types.go | 7 + .../wasmx-kayrosp2p-ondemand-lib/lib/utils.go | 25 + wasmx/x/wasmx/types/system_contract.go | 31 +- wasmx/x/wasmx/types/vm.go | 2 + .../72.kayrosp2p_ondemand_library.wasm | Bin 0 -> 500456 bytes wasmx/x/wasmx/vm/precompiles/fsm.go | 4 + wasmx/x/wasmx/vm/precompiles/precompiles.go | 12 + 15 files changed, 1085 insertions(+), 2 deletions(-) create mode 100644 tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/README.md create mode 100644 tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/cmd/main.go create mode 100644 tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/diagram/def.json create mode 100644 tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/diagram/def.ts create mode 100644 tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/go.mod create mode 100644 tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/go.sum create mode 100644 tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/lib/actions.go create mode 100644 tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/lib/types.go create mode 100644 tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/lib/utils.go create mode 100644 wasmx/x/wasmx/vm/precompiles/72.kayrosp2p_ondemand_library.wasm diff --git a/Makefile b/Makefile index 5da7a125..dba1b49f 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,8 @@ TINYGO_TARGETS := \ wasmx-raft-lib:2a.raft_library.wasm \ wasmx-raftp2p-lib:36.raftp2p_library.wasm \ wasmx-ondemand-single-lib:65.wasmx_ondemand_single_library.wasm \ - wasmx-kayrosp2p-lib:71.kayrosp2p_library.wasm + wasmx-kayrosp2p-lib:71.kayrosp2p_library.wasm \ + wasmx-kayrosp2p-ondemand-lib:72.kayrosp2p_ondemand_library.wasm # wasmx-gov:35.gov_0.0.1.wasm \ # wasmx-gov-continuous:37.gov_cont_0.0.1.wasm \ diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/README.md b/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/README.md new file mode 100644 index 00000000..94114b5b --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/README.md @@ -0,0 +1,24 @@ +# Kayros Consensus + +A new type of consensus based on our Kayros indexer. Each node will be initialized with a Kayros gateway url. The Kayros indexer is the one who orders transactions and gives them a timestamp. So, the node/validator sends the user transaction to Kayros and gets a Kayros record that is should also include in the block. And will use this Kayros order to order the transactions in a block. + +Nodes therefore produce blocks continuously (they finalized blocks continuously). There is no Leader, because Kayros is the only source of truth. We will only check that nodes are in sync by propagating the block hashes and then comparing them per block. If a node sees > x% (e.g. 50%) of nodes having a different block hash, it will revert its blocks and take them from the validators with the majority. And then continue the protocol. + +## Protocol + +User sends the transaction to the node. The node adds the transaction to the mempool, registers it with Kayros if it was not registered. And forwards it to other nodes. + +Block production: +- get max `x` records with data_type `wasmx_` since the previous record hash +- match records with mempool transactions +- if a record does not have a transaction, ask the other validators for the missing txs +- if tx does not appear in x time, produce block without it +- after block is produced, the block hash and txhash list is sent to the other nodes + +Block check: +- block hashes are coming in our KAYROS_BLOCKHASH_CHATROOM and we keep them in a mapping block_number => []BlockHash , with hash and validator address; when we have > 50% we check if the hash matches our hash, if not, we rollback the blocks until that block and ask the validators with correct hash for the block. +- only after this check do we consider the block as stable (cannot be rolled back), even though the probability of producing a bad block is low (only when txs don't arrive in the mempool due to a bad actor) + +## agents info + +FinalizeBlock is part of the process to commit a block. we run this as part of block production. so we run this automatically, for every block, regardless of other nodes/validators. but in parallel, we take messages from the other nodes/validators who send their block hashes and check if those block hashes match ours; this is where our thresholds come in. if we see other validators sending a different blockhash (the message needs to be signed by the validator and we need to verify the signature), then if > CTX_THRESHOLD_COMMIT, we will rollback all the blocks until the offending block (including it) and ask validators with the correct hash for the blocks; these receiveCommit messages, with block hashes keep comming, so when we get a > CTX_THRESHOLD_FINALIZE it just means that the block for sure will not rollback, so we will no longer be concerned with receiveCommit messages about that block; but FinalizeBlock has been already called when the block was produced in the first place. it is different from RAFT, because RAFT and tendermint have an entire voting process and usually split block preparation, dissemination and finalization into multiple phases. but here, we fully produce and finalize the block locally, without voting. and we correct any issues post-block finalization, because they should be very rare. it is fast consensus, because ordering is done by kayros. diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/cmd/main.go b/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/cmd/main.go new file mode 100644 index 00000000..09075be2 --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/cmd/main.go @@ -0,0 +1,294 @@ +package main + +import ( + "encoding/json" + + wasmx "github.com/loredanacirstea/wasmx-env/lib" + fsm "github.com/loredanacirstea/wasmx-fsm/lib" + kayrosp2p "github.com/loredanacirstea/wasmx-kayrosp2p-lib/lib" + lib "github.com/loredanacirstea/wasmx-kayrosp2p-ondemand-lib/lib" + raft "github.com/loredanacirstea/wasmx-raft-lib/lib" + raftp2p "github.com/loredanacirstea/wasmx-raftp2p-lib/lib" +) + +//go:wasm-module wasmx +//export memory_ptrlen_i64_1 +func Memory_ptrlen_i64_1() {} + +//go:wasm-module wasmx +//export wasmx_env_i64_2 +func Wasmx_env_i64_2() {} + +//go:wasm-module consensus +//export wasmx_consensus_json_i64_1 +func Wasmx_consensus_json_i64_1() {} + +//go:wasm-module wasmxcore +//export wasmx_env_core_i64_1 +func Wasmx_env_core_i64_1() {} + +//go:wasm-module crosschain +//export wasmx_crosschain_json_i64_1 +func Wasmx_crosschain_json_i64_1() {} + +//go:wasm-module multichain +//export wasmx_multichain_json_i64_1 +func Wasmx_multichain_json_i64_1() {} + +//go:wasm-module p2p +//export wasmx_p2p_json_i64_1 +func Wasmx_p2p_json_i64_1() {} + +//go:wasm-module httpclient +//export wasmx_httpclient_i64_1 +func Wasmx_httpclient_i64_1() {} + +//go:wasm-module wasmxcore +//export wasmx_nondeterministic_1 +func Wasmx_nondeterministic_1() {} + +//go:wasm-module wasmx-raftp2p +//export instantiate +func Instantiate() {} + +// note, we cannot instantiate with storage this library +// because it will read from the main consensus contract + +func main() { + // Only internal + wasmx.OnlyInternal(raftp2p.MODULE_NAME, "") + + databz := wasmx.GetCallData() + var calld fsm.ExternalActionCallData + if err := json.Unmarshal(databz, &calld); err != nil { + raftp2p.Revert("invalid call data: " + err.Error() + ": " + string(databz)) + return + } + + // Helper to read params from event + get := func(key string) string { + for _, p := range calld.Event.Params { + if p.Key == key { + return p.Value + } + } + for _, p := range calld.Params { + if p.Key == key { + return p.Value + } + } + return "" + } + + // Route methods + switch calld.Method { + case "ifNodeIsValidator": + ok, err := raftp2p.IfNodeIsValidator(calld.Params, calld.Event) + if err != nil { + raftp2p.Revert(err.Error()) + return + } + res := raft.WrapGuard(ok) + wasmx.Finish(res) + return + case "ifNewTransaction": + ok, err := raftp2p.IfNewTransaction(calld.Params, calld.Event) + if err != nil { + raftp2p.Revert(err.Error()) + return + } + res := raft.WrapGuard(ok) + wasmx.Finish(res) + return + case "ifMempoolNotEmpty": + ok, err := lib.IfMempoolNotEmpty(calld.Params, calld.Event) + if err != nil { + raftp2p.Revert(err.Error()) + return + } + res := raft.WrapGuard(ok) + wasmx.Finish(res) + return + case "ifOldTransaction": + ok, err := lib.IfOldTransaction(calld.Params, calld.Event) + if err != nil { + raftp2p.Revert(err.Error()) + return + } + res := raft.WrapGuard(ok) + wasmx.Finish(res) + return + case "ifMempoolEmpty": + ok, err := lib.IfMempoolEmpty(calld.Params, calld.Event) + if err != nil { + raftp2p.Revert(err.Error()) + return + } + res := raft.WrapGuard(ok) + wasmx.Finish(res) + return + case "ifMempoolFull": + ok, err := lib.IfMempoolFull(calld.Params, calld.Event) + if err != nil { + raftp2p.Revert(err.Error()) + return + } + res := raft.WrapGuard(ok) + wasmx.Finish(res) + return + case "setupNode": + if err := raftp2p.SetupNode(calld.Params, calld.Event); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "connectPeers": + st, err := raft.GetCurrentState() + if err != nil { + raftp2p.Revert(err.Error()) + return + } + if err := raftp2p.ConnectPeersInternal(raftp2p.GetProtocolIdFromState(st)); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "connectRooms": + if err := raftp2p.ConnectRooms(); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "registerWithKayros": + _, err := kayrosp2p.RegisterWithKayros(calld.Params, calld.Event) + if err != nil { + raftp2p.Revert(err.Error()) + return + } + case "getKayrosTxs": + err := kayrosp2p.GetKayrosTxs(calld.Params, calld.Event) + if err != nil { + raftp2p.Revert(err.Error()) + return + } + case "forwardMsgToChat": + if err := raftp2p.ForwardMsgToChat(calld.Params, calld.Event); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "requestBlockSync": + if err := raftp2p.RequestBlockSync(); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "receiveStateSyncRequest": + entry := get("entry") + sig := get("signature") + sender := get("sender") + if err := raftp2p.ReceiveStateSyncRequest(entry, sig, wasmx.Bech32String(sender)); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "receiveStateSyncResponse": + entry := get("entry") + sender := get("sender") + if err := raftp2p.ReceiveStateSyncResponse(entry, sender); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "receiveUpdateNodeResponse": + entry := get("entry") + sig := get("signature") + sender := get("sender") + if err := raftp2p.ReceiveUpdateNodeResponse(entry, sig, wasmx.Bech32String(sender)); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "receiveCommit": + if err := kayrosp2p.ReceiveCommit(calld.Params, calld.Event); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "receiveMissingTransactions": + if err := kayrosp2p.ReceiveMissingTransactions(calld.Params, calld.Event); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "receiveMissingTransactionsRequest": + if err := kayrosp2p.ReceiveMissingTransactionsRequest(calld.Params, calld.Event); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "ifAllTransactions": + ok := kayrosp2p.IfAllTransactions(nil, calld.Event) + res := raft.WrapGuard(ok) + wasmx.Finish(res) + return + case "sendNewTransactionResponse": + if err := raft.SendNewTransactionResponse(nil, fsm.EventObject{}); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "addToMempool": + if err := raftp2p.AddToMempool(calld.Params, calld.Event); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "updateNodeAndReturn": + if err := raftp2p.UpdateNodeAndReturn(calld.Params, calld.Event); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "registerValidatorWithNetwork": + if err := raftp2p.RegisterValidatorWithNetwork(nil, fsm.EventObject{}); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "setup": + if err := raft.Setup(calld.Params, calld.Event); err != nil { + raftp2p.Revert(err.Error()) + return + } + case "bootstrapAfterStateSync": + if err := raft.BootstrapAfterStateSync(calld.Params, calld.Event); err != nil { + raftp2p.Revert("bootstrapAfterStateSync failed: " + err.Error()) + return + } + case "commitAfterStateSync": + if err := raft.CommitAfterStateSync(calld.Params, calld.Event); err != nil { + raftp2p.Revert("commitAfterStateSync failed: " + err.Error()) + return + } + case "VerifyCommitLight": + if err := kayrosp2p.VerifyCommitLight(calld.Params, calld.Event); err != nil { + raftp2p.Revert("VerifyCommitLight failed: " + err.Error()) + return + } + case "rollback": + if err := raft.Rollback(calld.Params, calld.Event); err != nil { + raftp2p.Revert("Rollback failed: " + err.Error()) + return + } + case "commitBlock": + if err := kayrosp2p.CommitBlock(calld.Params, calld.Event); err != nil { + raftp2p.Revert("commitBlock failed: " + err.Error()) + return + } + case "sendCommit": + if err := kayrosp2p.SendCommit(calld.Params, calld.Event); err != nil { + raftp2p.Revert("sendCommit failed: " + err.Error()) + return + } + case "cancelActiveIntervals": + // Cancel active intervals - this is handled by the FSM runtime + // Just acknowledge the action + kayrosp2p.LoggerDebug("cancelActiveIntervals called", nil) + case "requestValidatorNodeInfoIfSynced": + // Request validator node info after state sync - stub for now + kayrosp2p.LoggerDebug("requestValidatorNodeInfoIfSynced called", nil) + case "receiveUpdateNodeRequest": + raftp2p.Revert("receiveUpdateNodeRequest not implemented") + return + default: + wasmx.Revert(append([]byte("invalid function call data: "), databz...)) + return + } + wasmx.Finish(wasmx.GetFinishData()) +} diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/diagram/def.json b/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/diagram/def.json new file mode 100644 index 00000000..6f6b97b3 --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/diagram/def.json @@ -0,0 +1 @@ +{"context":[{"key":"blockTimeout","value":"timeoutCommit"},{"key":"data_type_id","value":""},{"key":"genesis_uuid","value":""},{"key":"max_tx_bytes","value":65536},{"key":"max_block_gas","value":"20000000"},{"key":"timeoutCommit","value":4000},{"key":"kayros_base_url","value":"https://kayros.provable.dev"},{"key":"kayros_user_key","value":""},{"key":"threshold_commit","value":51},{"key":"timeoutMissingTxs","value":4000},{"key":"threshold_finalize","value":75},{"key":"batchTimeout","value":1000}],"id":"Kayros-P2P-OnDemand-1","initial":"uninitialized","states":[{"name":"uninitialized","after":[],"always":[],"on":[{"name":"initialize","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized","guard":null,"actions":[],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"initialized","after":[],"always":[],"on":[],"entry":[],"exit":[],"initial":"unstarted","states":[{"name":"unstarted","after":[],"always":[],"on":[{"name":"setupNode","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.unstarted","guard":null,"actions":[{"type":"setupNode","params":[]}],"meta":[]}]},{"name":"prestart","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.prestart","guard":null,"actions":[],"meta":[]}]},{"name":"setup","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.unstarted","guard":null,"actions":[{"type":"setup","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"prestart","after":[{"name":"500","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started","guard":null,"actions":[],"meta":[]}]}],"always":[],"on":[],"entry":[],"exit":[],"initial":"","states":[]},{"name":"started","after":[],"always":[],"on":[{"name":"newTransaction","transitions":[{"target":"","guard":{"type":"ifNewTransaction","params":[]},"actions":[{"type":"addToMempool","params":[]},{"type":"registerWithKayros","params":[]},{"type":"sendNewTransactionResponse","params":[]},{"type":"forwardMsgToChat","params":[{"key":"protocolId","value":"mempool"}]}],"meta":[]}]},{"name":"receiveStateSyncRequest","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncRequest","params":[]}],"meta":[]}]},{"name":"updateNode","transitions":[{"target":"","guard":null,"actions":[{"type":"updateNodeAndReturn","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"Node","states":[{"name":"Node","after":[],"always":[{"name":"always","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.Validator","actions":[{"type":"registerValidatorWithNetwork","params":[]}],"guard":{"type":"ifNodeIsValidator","params":[]},"meta":[]}]}],"on":[{"name":"becomeValidator","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.Validator","guard":null,"actions":[{"type":"registerValidatorWithNetwork","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveStateSyncResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncResponse","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveCommit","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveCommit","params":[]}],"meta":[]}]},{"name":"receiveUpdateNodeResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeResponse","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"Validator","after":[],"always":[],"on":[{"name":"stop","transitions":[{"target":"#Kayros-P2P-OnDemand-1.stopped","guard":null,"actions":[],"meta":[]}]},{"name":"receiveUpdateNodeResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeResponse","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.Validator","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"registerValidatorWithNetwork","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveCommit","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveCommit","params":[]}],"meta":[]}]},{"name":"receiveUpdateNodeRequest","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeRequest","params":[]}],"meta":[]}]},{"name":"receiveStateSyncResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncResponse","params":[]},{"type":"requestValidatorNodeInfoIfSynced","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"active","states":[{"name":"active","after":[{"name":"timeoutMissingTxs","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.Validator.propose","guard":null,"actions":[],"meta":[]}]}],"always":[{"name":"always","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.Validator.propose","guard":{"type":"ifAllTransactions","params":[]},"actions":[],"meta":[]}]}],"on":[{"name":"receiveMissingTransactions","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.Validator.active","guard":null,"actions":[{"type":"receiveMissingTransactions","params":[]}],"meta":[]}]}],"entry":[{"type":"getKayrosTxs","params":[]},{"type":"cancelActiveIntervals","params":[{"key":"after","value":"timeoutMissingTxs"}]}],"exit":[],"initial":"","states":[]},{"name":"propose","after":[{"name":"timeoutCommit","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.waiting","guard":null,"actions":[],"meta":[]}]}],"always":[],"on":[],"entry":[{"type":"commitBlock","params":[]},{"type":"sendCommit","params":[]},{"type":"cancelActiveIntervals","params":[{"key":"after","value":"timeoutCommit"}]}],"exit":[],"initial":"","states":[]}]},{"name":"waiting","after":[{"name":"batchTimeout","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.Validator.active","guard":{"type":"ifMempoolNotEmpty","params":[]},"actions":[],"meta":[]}]}],"always":[],"on":[{"name":"newTransaction","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.waiting","guard":{"type":"ifOldTransaction","params":[]},"actions":[],"meta":[]},{"target":"#Kayros-P2P-OnDemand-1.initialized.started.waiting","guard":{"type":"ifMempoolEmpty","params":[]},"actions":[{"type":"addToMempool","params":[]},{"type":"registerWithKayros","params":[]},{"type":"sendNewTransactionResponse","params":[]},{"type":"forwardMsgToChat","params":[{"key":"protocolId","value":"mempool"}]}],"meta":[]},{"target":"#Kayros-P2P-OnDemand-1.initialized.started.waiting","guard":{"type":"ifMempoolFull","params":[]},"actions":[{"type":"addToMempool","params":[]},{"type":"registerWithKayros","params":[]},{"type":"sendNewTransactionResponse","params":[]},{"type":"forwardMsgToChat","params":[{"key":"protocolId","value":"mempool"}]},{"type":"cancelActiveIntervals","params":[{"key":"after","value":"batchTimeout"}]}],"meta":[]},{"target":"#Kayros-P2P-OnDemand-1.initialized.started.waiting","guard":null,"actions":[{"type":"addToMempool","params":[]},{"type":"registerWithKayros","params":[]},{"type":"sendNewTransactionResponse","params":[{"key":"protocolId","value":"mempool"}]},{"type":"forwardMsgToChat","params":[{"key":"protocolId","value":"mempool"}]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]}]}]},{"name":"stopped","after":[],"always":[],"on":[{"name":"restart","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.unstarted","guard":null,"actions":[],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]}]} diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/diagram/def.ts b/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/diagram/def.ts new file mode 100644 index 00000000..9c993864 --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/diagram/def.ts @@ -0,0 +1,498 @@ +// @ts-nocheck +import { createMachine } from "xstate"; + +export const machine = createMachine({ + context: { + blockTimeout: "timeoutCommit", + data_type_id: "", + genesis_uuid: "", + max_tx_bytes: 65536, + max_block_gas: "20000000", + timeoutCommit: 4000, + kayros_base_url: "https://kayros.provable.dev", + kayros_user_key: "", + threshold_commit: 51, + timeoutMissingTxs: 4000, + threshold_finalize: 75, + batchTimeout: 1000, + }, + id: "Kayros-P2P-OnDemand-1", + initial: "uninitialized", + states: { + uninitialized: { + on: { + initialize: { + target: "initialized", + }, + }, + }, + initialized: { + initial: "unstarted", + states: { + unstarted: { + on: { + setupNode: { + target: "unstarted", + actions: { + type: "setupNode", + }, + }, + prestart: { + target: "prestart", + }, + setup: { + target: "unstarted", + actions: { + type: "setup", + }, + }, + start: { + target: "started", + actions: [ + { + type: "connectPeers", + }, + { + type: "connectRooms", + }, + { + type: "requestBlockSync", + }, + ], + }, + }, + }, + prestart: { + after: { + "500": { + target: "started", + }, + }, + }, + started: { + initial: "Node", + on: { + newTransaction: { + actions: [ + { + type: "addToMempool", + }, + { + type: "registerWithKayros", + }, + { + type: "sendNewTransactionResponse", + }, + { + type: "forwardMsgToChat", + params: { + protocolId: "mempool", + }, + }, + ], + guard: { + type: "ifNewTransaction", + }, + }, + receiveStateSyncRequest: { + actions: { + type: "receiveStateSyncRequest", + }, + }, + updateNode: { + actions: { + type: "updateNodeAndReturn", + }, + }, + }, + states: { + Node: { + on: { + becomeValidator: { + target: "Validator", + actions: [ + { + type: "registerValidatorWithNetwork", + }, + { + type: "requestBlockSync", + }, + ], + }, + receiveStateSyncResponse: { + actions: { + type: "receiveStateSyncResponse", + }, + }, + start: { + actions: [ + { + type: "connectPeers", + }, + { + type: "connectRooms", + }, + { + type: "requestBlockSync", + }, + ], + }, + receiveCommit: { + actions: { + type: "receiveCommit", + }, + }, + receiveUpdateNodeResponse: { + actions: { + type: "receiveUpdateNodeResponse", + }, + }, + }, + always: { + target: "Validator", + actions: { + type: "registerValidatorWithNetwork", + }, + guard: { + type: "ifNodeIsValidator", + }, + }, + }, + Validator: { + initial: "active", + on: { + stop: { + target: "#Kayros-P2P-OnDemand-1.stopped", + }, + receiveUpdateNodeResponse: { + actions: { + type: "receiveUpdateNodeResponse", + }, + }, + start: { + target: "Validator", + actions: [ + { + type: "connectPeers", + }, + { + type: "connectRooms", + }, + { + type: "registerValidatorWithNetwork", + }, + { + type: "requestBlockSync", + }, + ], + }, + receiveCommit: { + actions: { + type: "receiveCommit", + }, + description: + "Receive the block hashes from other validators and finalize the block. Rollback if 2/3 with another hash.", + }, + receiveUpdateNodeRequest: { + actions: { + type: "receiveUpdateNodeRequest", + }, + }, + receiveStateSyncResponse: { + actions: [ + { + type: "receiveStateSyncResponse", + }, + { + type: "requestValidatorNodeInfoIfSynced", + }, + ], + }, + }, + states: { + active: { + on: { + receiveMissingTransactions: { + target: "active", + actions: { + type: "receiveMissingTransactions", + }, + }, + }, + after: { + timeoutMissingTxs: { + target: "propose", + }, + }, + always: { + target: "propose", + guard: { + type: "ifAllTransactions", + }, + }, + entry: [ + { + type: "getKayrosTxs", + }, + { + type: "cancelActiveIntervals", + params: { + after: "timeoutMissingTxs", + }, + }, + ], + }, + propose: { + after: { + timeoutCommit: { + target: + "#Kayros-P2P-OnDemand-1.initialized.started.waiting", + }, + }, + entry: [ + { + type: "commitBlock", + }, + { + type: "sendCommit", + }, + { + type: "cancelActiveIntervals", + params: { + after: "timeoutCommit", + }, + }, + ], + }, + }, + }, + waiting: { + on: { + newTransaction: [ + { + target: "waiting", + guard: { + type: "ifOldTransaction", + }, + }, + { + target: "waiting", + actions: [ + { + type: "addToMempool", + }, + { + type: "registerWithKayros", + }, + { + type: "sendNewTransactionResponse", + }, + { + type: "forwardMsgToChat", + params: { + protocolId: "mempool", + }, + }, + ], + guard: { + type: "ifMempoolEmpty", + }, + }, + { + target: "waiting", + actions: [ + { + type: "addToMempool", + }, + { + type: "registerWithKayros", + }, + { + type: "sendNewTransactionResponse", + }, + { + type: "forwardMsgToChat", + params: { + protocolId: "mempool", + }, + }, + { + type: "cancelActiveIntervals", + params: { + after: "batchTimeout", + }, + }, + ], + guard: { + type: "ifMempoolFull", + }, + }, + { + target: "waiting", + actions: [ + { + type: "addToMempool", + }, + { + type: "registerWithKayros", + }, + { + type: "sendNewTransactionResponse", + params: { + protocolId: "mempool", + }, + }, + { + type: "forwardMsgToChat", + params: { + protocolId: "mempool", + }, + }, + ], + }, + ], + }, + after: { + batchTimeout: { + target: + "#Kayros-P2P-OnDemand-1.initialized.started.Validator.active", + guard: { + type: "ifMempoolNotEmpty", + }, + }, + }, + }, + }, + }, + }, + }, + stopped: { + on: { + restart: { + target: "#Kayros-P2P-OnDemand-1.initialized.unstarted", + }, + }, + }, + }, +}).withConfig({ + actions: { + getKayrosTxs: function (context, event) { + // Add your action code here + // ... + }, + cancelActiveIntervals: function (context, event) { + // Add your action code here + // ... + }, + commitBlock: function (context, event) { + // Add your action code here + // ... + }, + sendCommit: function (context, event) { + // Add your action code here + // ... + }, + setupNode: function (context, event) { + // Add your action code here + // ... + }, + addToMempool: function (context, event) { + // Add your action code here + // ... + }, + registerWithKayros: function (context, event) { + // Add your action code here + // ... + }, + sendNewTransactionResponse: function (context, event) { + // Add your action code here + // ... + }, + forwardMsgToChat: function (context, event) { + // Add your action code here + // ... + }, + setup: function (context, event) { + // Add your action code here + // ... + }, + receiveUpdateNodeResponse: function (context, event) { + // Add your action code here + // ... + }, + receiveStateSyncRequest: function (context, event) { + // Add your action code here + // ... + }, + updateNodeAndReturn: function (context, event) { + // Add your action code here + // ... + }, + registerValidatorWithNetwork: function (context, event) { + // Add your action code here + // ... + }, + requestBlockSync: function (context, event) { + // Add your action code here + // ... + }, + receiveStateSyncResponse: function (context, event) { + // Add your action code here + // ... + }, + connectPeers: function (context, event) { + // Add your action code here + // ... + }, + connectRooms: function (context, event) { + // Add your action code here + // ... + }, + receiveCommit: function (context, event) { + // Add your action code here + // ... + }, + receiveUpdateNodeRequest: function (context, event) { + // Add your action code here + // ... + }, + requestValidatorNodeInfoIfSynced: function (context, event) { + // Add your action code here + // ... + }, + receiveMissingTransactions: function (context, event) { + // Add your action code here + // ... + }, + }, + guards: { + ifNewTransaction: function (context, event) { + // Add your guard condition here + return true; + }, + ifNodeIsValidator: function (context, event) { + // Add your guard condition here + return true; + }, + ifAllTransactions: function (context, event) { + // Add your guard condition here + return true; + }, + ifOldTransaction: function (context, event) { + // Add your guard condition here + return true; + }, + ifMempoolEmpty: function (context, event) { + // Add your guard condition here + return true; + }, + ifMempoolFull: function (context, event) { + // Add your guard condition here + return true; + }, + ifMempoolNotEmpty: function (context, event) { + // Add your guard condition here + return true; + }, + }, +}); diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/go.mod b/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/go.mod new file mode 100644 index 00000000..00f669ae --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/go.mod @@ -0,0 +1,69 @@ +module github.com/loredanacirstea/wasmx-kayrosp2p-ondemand-lib + +go 1.24 + +toolchain go1.24.4 + +require github.com/loredanacirstea/wasmx-env v0.0.0 + +require github.com/loredanacirstea/wasmx-fsm v0.0.0 + +require github.com/loredanacirstea/wasmx-env-core v0.0.0 // indirect + +require github.com/loredanacirstea/wasmx-env-consensus v0.0.0 // indirect + +require github.com/loredanacirstea/wasmx-env-crosschain v0.0.0 // indirect + +require github.com/loredanacirstea/wasmx-staking v0.0.0 // indirect + +require github.com/loredanacirstea/wasmx-consensus-utils v0.0.0 // indirect + +require github.com/loredanacirstea/wasmx-blocks v0.0.0 // indirect + +require github.com/loredanacirstea/wasmx-env-multichain v0.0.0 // indirect + +require github.com/loredanacirstea/wasmx-raft-lib v0.0.0 + +require github.com/loredanacirstea/wasmx-raftp2p-lib v0.0.0 + +require github.com/loredanacirstea/wasmx-kayrosp2p-lib v0.0.0 + +require ( + cosmossdk.io/math v1.5.3 // indirect + github.com/loredanacirstea/wasmx-env-httpclient v0.0.0 // indirect + github.com/loredanacirstea/wasmx-env-p2p v0.0.0 // indirect + github.com/loredanacirstea/wasmx-env-utils v0.0.0 // indirect + github.com/loredanacirstea/wasmx-utils v0.0.0 // indirect +) + +replace github.com/loredanacirstea/wasmx-env v0.0.0 => ../wasmx-env + +replace github.com/loredanacirstea/wasmx-env-utils v0.0.0 => ../wasmx-env-utils + +replace github.com/loredanacirstea/wasmx-utils v0.0.0 => ../wasmx-utils + +replace github.com/loredanacirstea/wasmx-fsm v0.0.0 => ../wasmx-fsm + +replace github.com/loredanacirstea/wasmx-env-core v0.0.0 => ../wasmx-env-core + +replace github.com/loredanacirstea/wasmx-env-crosschain v0.0.0 => ../wasmx-env-crosschain + +replace github.com/loredanacirstea/wasmx-env-consensus v0.0.0 => ../wasmx-env-consensus + +replace github.com/loredanacirstea/wasmx-staking v0.0.0 => ../wasmx-staking + +replace github.com/loredanacirstea/wasmx-consensus-utils v0.0.0 => ../wasmx-consensus-utils + +replace github.com/loredanacirstea/wasmx-blocks v0.0.0 => ../wasmx-blocks + +replace github.com/loredanacirstea/wasmx-env-multichain v0.0.0 => ../wasmx-env-multichain + +replace github.com/loredanacirstea/wasmx-raft-lib v0.0.0 => ../wasmx-raft-lib + +replace github.com/loredanacirstea/wasmx-raftp2p-lib v0.0.0 => ../wasmx-raftp2p-lib + +replace github.com/loredanacirstea/wasmx-env-p2p v0.0.0 => ../wasmx-env-p2p + +replace github.com/loredanacirstea/wasmx-env-httpclient v0.0.0 => ../wasmx-env-httpclient + +replace github.com/loredanacirstea/wasmx-kayrosp2p-lib v0.0.0 => ../wasmx-kayrosp2p-lib diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/go.sum b/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/go.sum new file mode 100644 index 00000000..18cf05fc --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/go.sum @@ -0,0 +1,12 @@ +cosmossdk.io/math v1.5.3 h1:WH6tu6Z3AUCeHbeOSHg2mt9rnoiUWVWaQ2t6Gkll96U= +cosmossdk.io/math v1.5.3/go.mod h1:uqcZv7vexnhMFJF+6zh9EWdm/+Ylyln34IvPnBauPCQ= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/lib/actions.go b/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/lib/actions.go new file mode 100644 index 00000000..7746f56c --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/lib/actions.go @@ -0,0 +1,105 @@ +package lib + +import ( + "encoding/base64" + "fmt" + + wasmx "github.com/loredanacirstea/wasmx-env/lib" + fsm "github.com/loredanacirstea/wasmx-fsm/lib" + raftlib "github.com/loredanacirstea/wasmx-raft-lib/lib" +) + +// IfMempoolEmpty checks if the mempool has no transactions +func IfMempoolEmpty(params []fsm.ActionParam, event fsm.EventObject) (bool, error) { + mempool, err := raftlib.GetMempool() + if err != nil { + return false, err + } + return len(mempool.Map) == 0, nil +} + +// IfMempoolNotEmpty checks if the mempool has at least one transaction +func IfMempoolNotEmpty(params []fsm.ActionParam, event fsm.EventObject) (bool, error) { + isEmpty, err := IfMempoolEmpty(params, event) + if err != nil { + return false, err + } + return !isEmpty, nil +} + +// IfNewTransaction checks if a transaction is new (not already in mempool) +func IfNewTransaction(params []fsm.ActionParam, event fsm.EventObject) (bool, error) { + // Extract base64 transaction + txB64 := "" + if len(event.Params) > 0 { + for _, p := range event.Params { + if p.Key == "transaction" { + txB64 = p.Value + break + } + } + } + if txB64 == "" { + for _, p := range params { + if p.Key == "transaction" { + txB64 = p.Value + break + } + } + } + if txB64 == "" { + return false, fmt.Errorf("no transaction found") + } + + // Decode transaction from base64 and compute hash + txBytes, err := base64.StdEncoding.DecodeString(txB64) + if err != nil { + return false, err + } + txhash := base64.StdEncoding.EncodeToString(wasmx.Sha256(txBytes)) + + // Get mempool + mp, err := raftlib.GetMempool() + if err != nil { + return false, err + } + + // Check if transaction has been seen + existent := mp.HasSeen(txhash) + if existent { + LoggerDebug("mempool: transaction already added or seen", []string{"txhash", txhash}) + } + + return !existent, nil +} + +// IfOldTransaction checks if a transaction is already known (not new) +func IfOldTransaction(params []fsm.ActionParam, event fsm.EventObject) (bool, error) { + isNew, err := IfNewTransaction(params, event) + if err != nil { + return false, err + } + return !isNew, nil +} + +// IfMempoolFull checks if the mempool batch is full based on max_gas and max_bytes +func IfMempoolFull(params []fsm.ActionParam, event fsm.EventObject) (bool, error) { + mempool, err := raftlib.GetMempool() + if err != nil { + return false, err + } + + // Get consensus params to determine max gas and max bytes + consensusParams, err := raftlib.GetConsensusParams(0) + if err != nil { + return false, err + } + + maxBytes := consensusParams.Block.MaxBytes + if maxBytes == -1 { + maxBytes = raftlib.MaxBlockSizeBytes + } + + // Check if mempool batch is full + return mempool.IsBatchFull(consensusParams.Block.MaxGas, maxBytes), nil +} diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/lib/types.go b/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/lib/types.go new file mode 100644 index 00000000..265a7775 --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/lib/types.go @@ -0,0 +1,7 @@ +package lib + +// Module identification and protocol constants +const ( + MODULE_NAME = "kayrosp2p_ondemand" + PROTOCOL_ID = "kayrosp2p_ondemand_1" +) diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/lib/utils.go b/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/lib/utils.go new file mode 100644 index 00000000..284f4899 --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/lib/utils.go @@ -0,0 +1,25 @@ +package lib + +import ( + wasmx "github.com/loredanacirstea/wasmx-env/lib" +) + +func LoggerInfo(msg string, parts []string) { + wasmx.LoggerInfo(MODULE_NAME, msg, parts) +} + +func LoggerError(msg string, parts []string) { + wasmx.LoggerError(MODULE_NAME, msg, parts) +} + +func LoggerDebug(msg string, parts []string) { + wasmx.LoggerDebug(MODULE_NAME, msg, parts) +} + +func LoggerDebugExtended(msg string, parts []string) { + wasmx.LoggerDebugExtended(MODULE_NAME, msg, parts) +} + +func Revert(message string) { + wasmx.RevertWithModule(MODULE_NAME, message) +} diff --git a/wasmx/x/wasmx/types/system_contract.go b/wasmx/x/wasmx/types/system_contract.go index 54b04d1d..21fbd7e9 100644 --- a/wasmx/x/wasmx/types/system_contract.go +++ b/wasmx/x/wasmx/types/system_contract.go @@ -86,6 +86,9 @@ var ADDR_ONDEMAND_SINGLE = "0x0000000000000000000000000000000000000065" var ADDR_CONSENSUS_KAYROSP2P_LIBRARY = "0x0000000000000000000000000000000000000071" var ADDR_CONSENSUS_KAYROSP2P = "0x0000000000000000000000000000000000000072" +var ADDR_CONSENSUS_KAYROSP2P_ONDEMAND_LIBRARY = "0x0000000000000000000000000000000000000073" +var ADDR_CONSENSUS_KAYROSP2P_ONDEMAND = "0x0000000000000000000000000000000000000074" + var ADDR_SYS_PROXY = "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" func StarterPrecompiles() SystemContracts { @@ -607,6 +610,13 @@ func ConsensusPrecompiles(minValidatorCount int32, enableEIDCheck bool, currentL panic("ConsensusPrecompiles: cannot marshal kayrosP2PInitMsg message") } + // genesis uuid is a valid time-based uuid that should not exist in the kayros database - for a new chain + kayrosP2POnDemandInitMsg, err := json.Marshal(WasmxExecutionMessage{Data: []byte(`{"instantiate":{"context":[{"key":"blockTimeout","value":"timeoutCommit"},{"key":"max_tx_bytes","value":"65536"},{"key":"timeoutCommit","value":"100"},{"key":"max_block_gas","value":"20000000"},{"key":"timeoutMissingTxs","value":"4000"},{"key":"kayros_base_url","value":"https://kayros.provable.dev"},{"key":"kayros_user_key","value":"0x73db4aa00c2519ec5c060af0be9751e2f5f920413db68aa5ca2501b0df9c972e"},{"key":"threshold_commit","value":"51"},{"key":"threshold_finalize","value":"75"},{"key":"genesis_uuid","value":""},{"key":"data_type_id","value":""},{"key":"max_block_tx","value":"30"},{"key":"batchTimeout","value":"1000"}],"initialState":"uninitialized"}}`)}) + + if err != nil { + panic("ConsensusPrecompiles: cannot marshal kayrosP2PInitMsg message") + } + return []SystemContract{ { Address: ADDR_CONSENSUS_RAFT_LIBRARY, @@ -828,6 +838,25 @@ func ConsensusPrecompiles(minValidatorCount int32, enableEIDCheck bool, currentL StorageType: ContractStorageType_SingleConsensus, Deps: []string{INTERPRETER_FSM, BuildDep(ADDR_CONSENSUS_KAYROSP2P_LIBRARY, ROLE_LIBRARY)}, }, + { + Address: ADDR_CONSENSUS_KAYROSP2P_ONDEMAND_LIBRARY, + Label: CONSENSUS_KAYROSP2P_ONDEMAND_LIBRARY, + InitMessage: initMsg, + Pinned: true, + MeteringOff: true, + Role: &SystemContractRole{Role: ROLE_LIBRARY, Label: CONSENSUS_KAYROSP2P_ONDEMAND_LIBRARY}, + StorageType: ContractStorageType_SingleConsensus, + Deps: []string{}, + }, + { + Address: ADDR_CONSENSUS_KAYROSP2P_ONDEMAND, + Label: CONSENSUS_KAYROSP2P_ONDEMAND, + InitMessage: kayrosP2POnDemandInitMsg, + Pinned: false, + Role: &SystemContractRole{Role: ROLE_CONSENSUS, Label: CONSENSUS_KAYROSP2P_ONDEMAND}, + StorageType: ContractStorageType_SingleConsensus, + Deps: []string{INTERPRETER_FSM, BuildDep(ADDR_CONSENSUS_KAYROSP2P_ONDEMAND_LIBRARY, ROLE_LIBRARY)}, + }, } } @@ -940,7 +969,7 @@ func DefaultSystemContracts(accBech32Codec mcodec.AccBech32Codec, feeCollectorBe consensusPrecompiles := ConsensusPrecompiles(minValidatorCount, enableEIDCheck, 0, initialPortValues, erc20CodeId, derc20CodeId) for i, val := range consensusPrecompiles { // if val.Label == CONSENSUS_TENDERMINTP2P { - if val.Label == CONSENSUS_KAYROSP2P { + if val.Label == CONSENSUS_KAYROSP2P_ONDEMAND { consensusPrecompiles[i].Role.Primary = true } } diff --git a/wasmx/x/wasmx/types/vm.go b/wasmx/x/wasmx/types/vm.go index 6f85c170..77579307 100644 --- a/wasmx/x/wasmx/types/vm.go +++ b/wasmx/x/wasmx/types/vm.go @@ -333,6 +333,8 @@ var CONSENSUS_AVA_SNOWMAN_LIBRARY = "ava_snowman_library" var CONSENSUS_KAYROSP2P = "consensus_kayrosp2p_0.0.1" var CONSENSUS_KAYROSP2P_LIBRARY = "kayrosp2p_library" +var CONSENSUS_KAYROSP2P_ONDEMAND = "consensus_kayrosp2p_ondemand_0.0.1" +var CONSENSUS_KAYROSP2P_ONDEMAND_LIBRARY = "kayrosp2p_ondemand_library" var CONSENSUS_LEVEL_LIBRARY = "level0_library" var LEVEL0_v001 = "level0_0.0.1" diff --git a/wasmx/x/wasmx/vm/precompiles/72.kayrosp2p_ondemand_library.wasm b/wasmx/x/wasmx/vm/precompiles/72.kayrosp2p_ondemand_library.wasm new file mode 100644 index 0000000000000000000000000000000000000000..826b4e4dbeb0353bde0738daf22de1d4f7c8bce3 GIT binary patch literal 500456 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

eYCS(kL|Y?xI~uCj8NM=C{I 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

3R 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

TV_`FWE9z(FTFau>vlk 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 z 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 Date: Sun, 18 Jan 2026 13:47:35 +0100 Subject: [PATCH 07/10] update testing setup for kayros --- .../wasmx-env-consensus/lib/consensus_wrap.go | 1 - .../tinygo/wasmx-kayrosp2p-lib/lib/actions.go | 1 + .../tinygo/wasmx-kayrosp2p-lib/lib/kayros.go | 13 ++++++++++--- tests/utils/utils.go | 2 +- wasmx/multichain/helper.go | 4 ++-- wasmx/x/wasmx/vm/ops_wasi_rust_wasmx.go | 1 - .../vm/precompiles/71.kayrosp2p_library.wasm | Bin 498899 -> 498827 bytes .../72.kayrosp2p_ondemand_library.wasm | Bin 500456 -> 500384 bytes 8 files changed, 14 insertions(+), 8 deletions(-) diff --git a/tests/testdata/tinygo/wasmx-env-consensus/lib/consensus_wrap.go b/tests/testdata/tinygo/wasmx-env-consensus/lib/consensus_wrap.go index 04775417..9c703b85 100644 --- a/tests/testdata/tinygo/wasmx-env-consensus/lib/consensus_wrap.go +++ b/tests/testdata/tinygo/wasmx-env-consensus/lib/consensus_wrap.go @@ -165,7 +165,6 @@ func HeaderHash(header Header) ([]byte, error) { if err != nil { return nil, err } - fmt.Println("--HeaderHash.bz---", string(bz)) out := utils.PackedPtrToBytes(HeaderHash_(utils.BytesToPackedPtr(bz))) return out, nil } diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go index 81230395..bd23b248 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go @@ -282,6 +282,7 @@ func RegisterWithKayros(params []fsm.ActionParam, event fsm.EventObject) (*Kayro LoggerInfo("transaction registered with Kayros", []string{ "txHash", txHash, "uuid", string(resp.TimeUUID), + "kayros_hash", string(resp.ComputedHash), }) return resp, nil diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/kayros.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/kayros.go index d5a170f8..ba5584ce 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/kayros.go +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/kayros.go @@ -5,6 +5,7 @@ import ( "encoding/json" "fmt" "net/http" + "strconv" httpclient "github.com/loredanacirstea/wasmx-env-httpclient" wasmx "github.com/loredanacirstea/wasmx-env/lib" @@ -342,19 +343,25 @@ func (kc *KayrosClient) RegisterData(reqBody KayrosRegistrationRequest) (*Kayros return nil, fmt.Errorf("failed to marshal registration request: %w", err) } + LoggerDebugExtended(`Kayros registration`, []string{"endpoint", endpoint}) + respData, err := kc.makePostRequest(endpoint, bodyBytes) if err != nil { return nil, err } - fmt.Println("--RegisterData.resp--", string(respData)) var kayrosResp KayrosRegistrationResponseWrap if err := json.Unmarshal(respData, &kayrosResp); err != nil { return nil, fmt.Errorf("failed to unmarshal Kayros registration response: %w", err) } + + LoggerDebugExtended(`Kayros registration`, []string{"endpoint", endpoint, "success", strconv.FormatBool(kayrosResp.Success), "kayros_hash", string(kayrosResp.Data.ComputedHash), "timeuuid", string(kayrosResp.Data.TimeUUID)}) + if !kayrosResp.Success { - return nil, fmt.Errorf("Failed Kayros registration: %s", kayrosResp.Message) + return nil, fmt.Errorf("Failed Kayros registration request: %s", kayrosResp.Message) + } + if !kayrosResp.Data.Success { + return nil, fmt.Errorf("Failed Kayros registration: %s; %s", kayrosResp.Message, kayrosResp.Data.Message) } - fmt.Println("--RegisterData.resp2--", kayrosResp.Data) return &kayrosResp.Data, nil } diff --git a/tests/utils/utils.go b/tests/utils/utils.go index 62fcae34..8767ca02 100644 --- a/tests/utils/utils.go +++ b/tests/utils/utils.go @@ -50,7 +50,7 @@ func SystemContractsModify(wasmRuntime string) func([]wasmxtypes.SystemContract) } } for i := range contracts { - if contracts[i].Label == wasmxtypes.CONSENSUS_KAYROSP2P { + if strings.Contains(contracts[i].Label, "kayrosp2p") { execmsg := &wasmxtypes.WasmxExecutionMessage{} json.Unmarshal(contracts[i].InitMessage, execmsg) diff --git a/wasmx/multichain/helper.go b/wasmx/multichain/helper.go index 86b7e7c5..56a96491 100644 --- a/wasmx/multichain/helper.go +++ b/wasmx/multichain/helper.go @@ -65,8 +65,8 @@ func (*MockApiCtx) StartChainApis( } func CreateMockAppCreator(wasmVmMeta memc.IWasmVmMeta, appCreatorFactory NewAppCreator, homeDir string, getDB func(dbpath string) dbm.DB) (*mcfg.MultiChainApp, func(chainId string, chainCfg *menc.ChainConfig) mcfg.MythosApp) { - level := "x/wasmx:debug,*:info" - // level := "error" + // level := "x/wasmx:debug,*:info" + level := "error" filter, _ := ParseLogLevel(level) logger := log.NewLogger( os.Stderr, diff --git a/wasmx/x/wasmx/vm/ops_wasi_rust_wasmx.go b/wasmx/x/wasmx/vm/ops_wasi_rust_wasmx.go index f0413cdf..9cf214a0 100644 --- a/wasmx/x/wasmx/vm/ops_wasi_rust_wasmx.go +++ b/wasmx/x/wasmx/vm/ops_wasi_rust_wasmx.go @@ -681,7 +681,6 @@ func BuildWasmxEnvRusti64(context *Context, rnh memc.RuntimeHandler) (interface{ func ExecuteWasiCommand(context *Context, contractVm memc.IVm, funcName string, args []interface{}, interpreted bool) ([]int32, error) { var res []int32 var err error - fmt.Println("--ExecuteWasiCommand--", funcName) // wasi command style has only one entry point `_start`, // so we just pass our entry point as an ENV variable diff --git a/wasmx/x/wasmx/vm/precompiles/71.kayrosp2p_library.wasm b/wasmx/x/wasmx/vm/precompiles/71.kayrosp2p_library.wasm index ce2eaa2ac32de8ed67a28114dbe298726713e7bb..5813e8c86964bf8f21dffdfd5c251e0641827f9a 100644 GIT binary patch delta 81983 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

VW36|p&aSOHiU_7Hs=dXFaD~&f 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 M8MXhh6T2n<4;%JEApigX delta 82619 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 ?w>f}DJa%zc8 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 z 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 From 47fcd17064b10b178d2bb0130f0319f2eea48c07 Mon Sep 17 00:00:00 2001 From: Loredana Cirstea Date: Mon, 19 Jan 2026 00:56:47 +0100 Subject: [PATCH 08/10] make kayros env configurable, add flag for consensus when running tests --- tests/testdata/tinygo/wasmx-fsm/cmd/main.go | 31 ++++++++-- .../wasmx-kayrosp2p-lib/diagram/def.json | 2 +- .../tinygo/wasmx-kayrosp2p-lib/diagram/def.ts | 2 +- .../tinygo/wasmx-kayrosp2p-lib/lib/types.go | 4 +- .../diagram/def.json | 2 +- .../diagram/def.ts | 2 +- wasmx/server/config/config.go | 1 + wasmx/server/start.go | 6 +- wasmx/testutil/wasmx/chain.go | 57 +++++++++++++++--- wasmx/x/network/server/config/config.go | 6 +- wasmx/x/network/server/config/toml.go | 4 ++ wasmx/x/network/server/utils.go | 36 ++++++++++- wasmx/x/network/vmmc/init_app.go | 6 +- wasmx/x/network/vmp2p/tnd_state_store.go | 5 +- wasmx/x/wasmx/types/system_contract.go | 7 +-- .../precompiles/28.finite_state_machine.wasm | Bin 287490 -> 288240 bytes 16 files changed, 143 insertions(+), 28 deletions(-) diff --git a/tests/testdata/tinygo/wasmx-fsm/cmd/main.go b/tests/testdata/tinygo/wasmx-fsm/cmd/main.go index 67fbf9e8..c718dffd 100644 --- a/tests/testdata/tinygo/wasmx-fsm/cmd/main.go +++ b/tests/testdata/tinygo/wasmx-fsm/cmd/main.go @@ -1,7 +1,9 @@ package main import ( + "encoding/base64" "encoding/json" + "fmt" "os" wasmx "github.com/loredanacirstea/wasmx-env/lib" @@ -90,7 +92,7 @@ func main() { result = []byte{} case calldata.StartNode != nil: - startNodeInternal(config) + startNodeInternal(config, calldata.StartNode.Data) result = []byte{} case calldata.SetupNode != nil: @@ -139,7 +141,7 @@ func eventual() { } func StartNode() { - configBz, _, err := lib.GetInterpreterCalldata() + configBz, calldBz, err := lib.GetInterpreterCalldata() if err != nil { lib.Revert("failed to get interpreter calldata: " + err.Error()) return @@ -151,7 +153,8 @@ func StartNode() { return } - startNodeInternal(config) + envData := string(calldBz) + startNodeInternal(config, envData) // Handle finish data result := wasmx.GetFinishData() @@ -236,8 +239,28 @@ func setupNodeInternal(config lib.MachineExternal, data string) { lib.RunInternal(config, event) } -func startNodeInternal(config lib.MachineExternal) { +func startNodeInternal(config lib.MachineExternal, envData string) { lib.LoggerInfo("emit start event", []string{"module", lib.MODULE_NAME}) + + // Parse and store env variables in context + if envData != "" { + envBz, err := base64.StdEncoding.DecodeString(envData) + if err == nil { + var env map[string]string + if err := json.Unmarshal(envBz, &env); err == nil { + lib.LoggerInfo("storing env variables in context", []string{"count", fmt.Sprintf("%d", len(env))}) + for key, value := range env { + lib.SetContextValue(key, value) + lib.LoggerDebug("set env variable in context", []string{"key", key}) + } + } else { + lib.LoggerError("failed to unmarshal env data", []string{"error", err.Error()}) + } + } else { + lib.LoggerError("failed to decode env data", []string{"error", err.Error()}) + } + } + event := lib.EventObject{ Type: "start", Params: []lib.ActionParam{}, diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.json b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.json index 2018851d..1bcf41d5 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.json +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.json @@ -1 +1 @@ -{"context":[{"key":"blockTimeout","value":"timeoutCommit"},{"key":"max_tx_bytes","value":65536},{"key":"timeoutCommit","value":4000},{"key":"max_block_gas","value":"20000000"},{"key":"timeoutMissingTxs","value":4000},{"key":"kayros_base_url","value":"https://kayros.provable.dev"},{"key":"kayros_user_key","value":""},{"key":"threshold_commit","value":51},{"key":"threshold_finalize","value":75},{"key":"genesis_uuid","value":""},{"key":"data_type_id","value":""},{"key":"max_block_tx","value":"30"}],"id":"Kayros-P2P-1","initial":"uninitialized","states":[{"name":"uninitialized","after":[],"always":[],"on":[{"name":"initialize","transitions":[{"target":"#Kayros-P2P-1.initialized","guard":null,"actions":[],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"initialized","after":[],"always":[],"on":[],"entry":[],"exit":[],"initial":"unstarted","states":[{"name":"unstarted","after":[],"always":[],"on":[{"name":"setupNode","transitions":[{"target":"#Kayros-P2P-1.initialized.unstarted","guard":null,"actions":[{"type":"setupNode","params":[]}],"meta":[]}]},{"name":"prestart","transitions":[{"target":"#Kayros-P2P-1.initialized.prestart","guard":null,"actions":[],"meta":[]}]},{"name":"setup","transitions":[{"target":"#Kayros-P2P-1.initialized.unstarted","guard":null,"actions":[{"type":"setup","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"#Kayros-P2P-1.initialized.started","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"prestart","after":[{"name":"500","transitions":[{"target":"#Kayros-P2P-1.initialized.started","guard":null,"actions":[],"meta":[]}]}],"always":[],"on":[],"entry":[],"exit":[],"initial":"","states":[]},{"name":"started","after":[],"always":[],"on":[{"name":"newTransaction","transitions":[{"target":"","guard":{"type":"ifNewTransaction","params":[]},"actions":[{"type":"addToMempool","params":[]},{"type":"registerWithKayros","params":[]},{"type":"sendNewTransactionResponse","params":[]},{"type":"forwardMsgToChat","params":[{"key":"protocolId","value":"mempool"}]}],"meta":[]}]},{"name":"receiveStateSyncRequest","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncRequest","params":[]}],"meta":[]}]},{"name":"updateNode","transitions":[{"target":"","guard":null,"actions":[{"type":"updateNodeAndReturn","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"Node","states":[{"name":"Node","after":[],"always":[{"name":"always","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator","actions":[{"type":"registerValidatorWithNetwork","params":[]}],"guard":{"type":"ifNodeIsValidator","params":[]},"meta":[]}]}],"on":[{"name":"becomeValidator","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator","guard":null,"actions":[{"type":"registerValidatorWithNetwork","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveStateSyncResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncResponse","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveCommit","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveCommit","params":[]}],"meta":[]}]},{"name":"receiveUpdateNodeResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeResponse","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"Validator","after":[],"always":[],"on":[{"name":"stop","transitions":[{"target":"#Kayros-P2P-1.stopped","guard":null,"actions":[],"meta":[]}]},{"name":"receiveUpdateNodeResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeResponse","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"registerValidatorWithNetwork","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveCommit","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveCommit","params":[]}],"meta":[]}]},{"name":"receiveUpdateNodeRequest","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeRequest","params":[]}],"meta":[]}]},{"name":"receiveStateSyncResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncResponse","params":[]},{"type":"requestValidatorNodeInfoIfSynced","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"active","states":[{"name":"active","after":[{"name":"timeoutMissingTxs","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.propose","guard":null,"actions":[],"meta":[]}]}],"always":[{"name":"always","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.propose","guard":{"type":"ifAllTransactions","params":[]},"actions":[],"meta":[]}]}],"on":[{"name":"receiveMissingTransactions","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.active","guard":null,"actions":[{"type":"receiveMissingTransactions","params":[]}],"meta":[]}]}],"entry":[{"type":"getKayrosTxs","params":[]},{"type":"cancelActiveIntervals","params":[{"key":"after","value":"timeoutMissingTxs"}]}],"exit":[],"initial":"","states":[]},{"name":"propose","after":[{"name":"timeoutCommit","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.active","guard":null,"actions":[],"meta":[]}]}],"always":[],"on":[],"entry":[{"type":"commitBlock","params":[]},{"type":"sendCommit","params":[]},{"type":"cancelActiveIntervals","params":[{"key":"after","value":"timeoutCommit"}]}],"exit":[],"initial":"","states":[]}]}]}]},{"name":"stopped","after":[],"always":[],"on":[{"name":"restart","transitions":[{"target":"#Kayros-P2P-1.initialized.unstarted","guard":null,"actions":[],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]}]} +{"context":[{"key":"blockTimeout","value":"timeoutCommit"},{"key":"max_tx_bytes","value":65536},{"key":"timeoutCommit","value":4000},{"key":"max_block_gas","value":"20000000"},{"key":"timeoutMissingTxs","value":4000},{"key":"kayros_base_url","value":""},{"key":"kayros_user_key","value":""},{"key":"threshold_commit","value":51},{"key":"threshold_finalize","value":75},{"key":"genesis_uuid","value":""},{"key":"data_type_id","value":""},{"key":"max_block_tx","value":"30"}],"id":"Kayros-P2P-1","initial":"uninitialized","states":[{"name":"uninitialized","after":[],"always":[],"on":[{"name":"initialize","transitions":[{"target":"#Kayros-P2P-1.initialized","guard":null,"actions":[],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"initialized","after":[],"always":[],"on":[],"entry":[],"exit":[],"initial":"unstarted","states":[{"name":"unstarted","after":[],"always":[],"on":[{"name":"setupNode","transitions":[{"target":"#Kayros-P2P-1.initialized.unstarted","guard":null,"actions":[{"type":"setupNode","params":[]}],"meta":[]}]},{"name":"prestart","transitions":[{"target":"#Kayros-P2P-1.initialized.prestart","guard":null,"actions":[],"meta":[]}]},{"name":"setup","transitions":[{"target":"#Kayros-P2P-1.initialized.unstarted","guard":null,"actions":[{"type":"setup","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"#Kayros-P2P-1.initialized.started","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"prestart","after":[{"name":"500","transitions":[{"target":"#Kayros-P2P-1.initialized.started","guard":null,"actions":[],"meta":[]}]}],"always":[],"on":[],"entry":[],"exit":[],"initial":"","states":[]},{"name":"started","after":[],"always":[],"on":[{"name":"newTransaction","transitions":[{"target":"","guard":{"type":"ifNewTransaction","params":[]},"actions":[{"type":"addToMempool","params":[]},{"type":"registerWithKayros","params":[]},{"type":"sendNewTransactionResponse","params":[]},{"type":"forwardMsgToChat","params":[{"key":"protocolId","value":"mempool"}]}],"meta":[]}]},{"name":"receiveStateSyncRequest","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncRequest","params":[]}],"meta":[]}]},{"name":"updateNode","transitions":[{"target":"","guard":null,"actions":[{"type":"updateNodeAndReturn","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"Node","states":[{"name":"Node","after":[],"always":[{"name":"always","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator","actions":[{"type":"registerValidatorWithNetwork","params":[]}],"guard":{"type":"ifNodeIsValidator","params":[]},"meta":[]}]}],"on":[{"name":"becomeValidator","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator","guard":null,"actions":[{"type":"registerValidatorWithNetwork","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveStateSyncResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncResponse","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveCommit","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveCommit","params":[]}],"meta":[]}]},{"name":"receiveUpdateNodeResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeResponse","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"Validator","after":[],"always":[],"on":[{"name":"stop","transitions":[{"target":"#Kayros-P2P-1.stopped","guard":null,"actions":[],"meta":[]}]},{"name":"receiveUpdateNodeResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeResponse","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"registerValidatorWithNetwork","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveCommit","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveCommit","params":[]}],"meta":[]}]},{"name":"receiveUpdateNodeRequest","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeRequest","params":[]}],"meta":[]}]},{"name":"receiveStateSyncResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncResponse","params":[]},{"type":"requestValidatorNodeInfoIfSynced","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"active","states":[{"name":"active","after":[{"name":"timeoutMissingTxs","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.propose","guard":null,"actions":[],"meta":[]}]}],"always":[{"name":"always","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.propose","guard":{"type":"ifAllTransactions","params":[]},"actions":[],"meta":[]}]}],"on":[{"name":"receiveMissingTransactions","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.active","guard":null,"actions":[{"type":"receiveMissingTransactions","params":[]}],"meta":[]}]}],"entry":[{"type":"getKayrosTxs","params":[]},{"type":"cancelActiveIntervals","params":[{"key":"after","value":"timeoutMissingTxs"}]}],"exit":[],"initial":"","states":[]},{"name":"propose","after":[{"name":"timeoutCommit","transitions":[{"target":"#Kayros-P2P-1.initialized.started.Validator.active","guard":null,"actions":[],"meta":[]}]}],"always":[],"on":[],"entry":[{"type":"commitBlock","params":[]},{"type":"sendCommit","params":[]},{"type":"cancelActiveIntervals","params":[{"key":"after","value":"timeoutCommit"}]}],"exit":[],"initial":"","states":[]}]}]}]},{"name":"stopped","after":[],"always":[],"on":[{"name":"restart","transitions":[{"target":"#Kayros-P2P-1.initialized.unstarted","guard":null,"actions":[],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]}]} diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.ts b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.ts index e4feed71..3141e24a 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.ts +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/diagram/def.ts @@ -8,7 +8,7 @@ export const machine = createMachine({ timeoutCommit: 4000, max_block_gas: "20000000", timeoutMissingTxs: 4000, - kayros_base_url: "https://kayros.provable.dev", + kayros_base_url: "", kayros_user_key: "", threshold_commit: 51, threshold_finalize: 75, diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/types.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/types.go index a4395213..9a15d205 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/types.go +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/types.go @@ -31,12 +31,12 @@ type StateSyncResponse struct { // KayrosConfig holds the configuration for Kayros API client type KayrosConfig struct { - ApiBaseUrl string `json:"api_base_url"` // e.g., "https://kayros.provable.dev" + ApiBaseUrl string `json:"api_base_url"` } // InstantiateMsg is the message passed during contract instantiation type InstantiateMsg struct { - KayrosApiUrl string `json:"kayros_api_url"` // e.g., "https://kayros.provable.dev" + KayrosApiUrl string `json:"kayros_api_url"` GenesisUUID string `json:"genesis_uuid"` // First UUID to start from on genesis ThresholdCommit int `json:"threshold_commit"` // Percentage threshold for commit (e.g., 51) - determines when to rollback ThresholdFinalize int `json:"threshold_finalize"` // Percentage threshold for finalization (e.g., 75) - determines when block is finalized diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/diagram/def.json b/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/diagram/def.json index 6f6b97b3..f0357a14 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/diagram/def.json +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/diagram/def.json @@ -1 +1 @@ -{"context":[{"key":"blockTimeout","value":"timeoutCommit"},{"key":"data_type_id","value":""},{"key":"genesis_uuid","value":""},{"key":"max_tx_bytes","value":65536},{"key":"max_block_gas","value":"20000000"},{"key":"timeoutCommit","value":4000},{"key":"kayros_base_url","value":"https://kayros.provable.dev"},{"key":"kayros_user_key","value":""},{"key":"threshold_commit","value":51},{"key":"timeoutMissingTxs","value":4000},{"key":"threshold_finalize","value":75},{"key":"batchTimeout","value":1000}],"id":"Kayros-P2P-OnDemand-1","initial":"uninitialized","states":[{"name":"uninitialized","after":[],"always":[],"on":[{"name":"initialize","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized","guard":null,"actions":[],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"initialized","after":[],"always":[],"on":[],"entry":[],"exit":[],"initial":"unstarted","states":[{"name":"unstarted","after":[],"always":[],"on":[{"name":"setupNode","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.unstarted","guard":null,"actions":[{"type":"setupNode","params":[]}],"meta":[]}]},{"name":"prestart","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.prestart","guard":null,"actions":[],"meta":[]}]},{"name":"setup","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.unstarted","guard":null,"actions":[{"type":"setup","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"prestart","after":[{"name":"500","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started","guard":null,"actions":[],"meta":[]}]}],"always":[],"on":[],"entry":[],"exit":[],"initial":"","states":[]},{"name":"started","after":[],"always":[],"on":[{"name":"newTransaction","transitions":[{"target":"","guard":{"type":"ifNewTransaction","params":[]},"actions":[{"type":"addToMempool","params":[]},{"type":"registerWithKayros","params":[]},{"type":"sendNewTransactionResponse","params":[]},{"type":"forwardMsgToChat","params":[{"key":"protocolId","value":"mempool"}]}],"meta":[]}]},{"name":"receiveStateSyncRequest","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncRequest","params":[]}],"meta":[]}]},{"name":"updateNode","transitions":[{"target":"","guard":null,"actions":[{"type":"updateNodeAndReturn","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"Node","states":[{"name":"Node","after":[],"always":[{"name":"always","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.Validator","actions":[{"type":"registerValidatorWithNetwork","params":[]}],"guard":{"type":"ifNodeIsValidator","params":[]},"meta":[]}]}],"on":[{"name":"becomeValidator","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.Validator","guard":null,"actions":[{"type":"registerValidatorWithNetwork","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveStateSyncResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncResponse","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveCommit","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveCommit","params":[]}],"meta":[]}]},{"name":"receiveUpdateNodeResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeResponse","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"Validator","after":[],"always":[],"on":[{"name":"stop","transitions":[{"target":"#Kayros-P2P-OnDemand-1.stopped","guard":null,"actions":[],"meta":[]}]},{"name":"receiveUpdateNodeResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeResponse","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.Validator","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"registerValidatorWithNetwork","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveCommit","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveCommit","params":[]}],"meta":[]}]},{"name":"receiveUpdateNodeRequest","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeRequest","params":[]}],"meta":[]}]},{"name":"receiveStateSyncResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncResponse","params":[]},{"type":"requestValidatorNodeInfoIfSynced","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"active","states":[{"name":"active","after":[{"name":"timeoutMissingTxs","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.Validator.propose","guard":null,"actions":[],"meta":[]}]}],"always":[{"name":"always","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.Validator.propose","guard":{"type":"ifAllTransactions","params":[]},"actions":[],"meta":[]}]}],"on":[{"name":"receiveMissingTransactions","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.Validator.active","guard":null,"actions":[{"type":"receiveMissingTransactions","params":[]}],"meta":[]}]}],"entry":[{"type":"getKayrosTxs","params":[]},{"type":"cancelActiveIntervals","params":[{"key":"after","value":"timeoutMissingTxs"}]}],"exit":[],"initial":"","states":[]},{"name":"propose","after":[{"name":"timeoutCommit","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.waiting","guard":null,"actions":[],"meta":[]}]}],"always":[],"on":[],"entry":[{"type":"commitBlock","params":[]},{"type":"sendCommit","params":[]},{"type":"cancelActiveIntervals","params":[{"key":"after","value":"timeoutCommit"}]}],"exit":[],"initial":"","states":[]}]},{"name":"waiting","after":[{"name":"batchTimeout","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.Validator.active","guard":{"type":"ifMempoolNotEmpty","params":[]},"actions":[],"meta":[]}]}],"always":[],"on":[{"name":"newTransaction","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.waiting","guard":{"type":"ifOldTransaction","params":[]},"actions":[],"meta":[]},{"target":"#Kayros-P2P-OnDemand-1.initialized.started.waiting","guard":{"type":"ifMempoolEmpty","params":[]},"actions":[{"type":"addToMempool","params":[]},{"type":"registerWithKayros","params":[]},{"type":"sendNewTransactionResponse","params":[]},{"type":"forwardMsgToChat","params":[{"key":"protocolId","value":"mempool"}]}],"meta":[]},{"target":"#Kayros-P2P-OnDemand-1.initialized.started.waiting","guard":{"type":"ifMempoolFull","params":[]},"actions":[{"type":"addToMempool","params":[]},{"type":"registerWithKayros","params":[]},{"type":"sendNewTransactionResponse","params":[]},{"type":"forwardMsgToChat","params":[{"key":"protocolId","value":"mempool"}]},{"type":"cancelActiveIntervals","params":[{"key":"after","value":"batchTimeout"}]}],"meta":[]},{"target":"#Kayros-P2P-OnDemand-1.initialized.started.waiting","guard":null,"actions":[{"type":"addToMempool","params":[]},{"type":"registerWithKayros","params":[]},{"type":"sendNewTransactionResponse","params":[{"key":"protocolId","value":"mempool"}]},{"type":"forwardMsgToChat","params":[{"key":"protocolId","value":"mempool"}]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]}]}]},{"name":"stopped","after":[],"always":[],"on":[{"name":"restart","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.unstarted","guard":null,"actions":[],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]}]} +{"context":[{"key":"blockTimeout","value":"timeoutCommit"},{"key":"data_type_id","value":""},{"key":"genesis_uuid","value":""},{"key":"max_tx_bytes","value":65536},{"key":"max_block_gas","value":"20000000"},{"key":"timeoutCommit","value":4000},{"key":"kayros_base_url","value":""},{"key":"kayros_user_key","value":""},{"key":"threshold_commit","value":51},{"key":"timeoutMissingTxs","value":4000},{"key":"threshold_finalize","value":75},{"key":"batchTimeout","value":1000}],"id":"Kayros-P2P-OnDemand-1","initial":"uninitialized","states":[{"name":"uninitialized","after":[],"always":[],"on":[{"name":"initialize","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized","guard":null,"actions":[],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"initialized","after":[],"always":[],"on":[],"entry":[],"exit":[],"initial":"unstarted","states":[{"name":"unstarted","after":[],"always":[],"on":[{"name":"setupNode","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.unstarted","guard":null,"actions":[{"type":"setupNode","params":[]}],"meta":[]}]},{"name":"prestart","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.prestart","guard":null,"actions":[],"meta":[]}]},{"name":"setup","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.unstarted","guard":null,"actions":[{"type":"setup","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"prestart","after":[{"name":"500","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started","guard":null,"actions":[],"meta":[]}]}],"always":[],"on":[],"entry":[],"exit":[],"initial":"","states":[]},{"name":"started","after":[],"always":[],"on":[{"name":"newTransaction","transitions":[{"target":"","guard":{"type":"ifNewTransaction","params":[]},"actions":[{"type":"addToMempool","params":[]},{"type":"registerWithKayros","params":[]},{"type":"sendNewTransactionResponse","params":[]},{"type":"forwardMsgToChat","params":[{"key":"protocolId","value":"mempool"}]}],"meta":[]}]},{"name":"receiveStateSyncRequest","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncRequest","params":[]}],"meta":[]}]},{"name":"updateNode","transitions":[{"target":"","guard":null,"actions":[{"type":"updateNodeAndReturn","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"Node","states":[{"name":"Node","after":[],"always":[{"name":"always","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.Validator","actions":[{"type":"registerValidatorWithNetwork","params":[]}],"guard":{"type":"ifNodeIsValidator","params":[]},"meta":[]}]}],"on":[{"name":"becomeValidator","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.Validator","guard":null,"actions":[{"type":"registerValidatorWithNetwork","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveStateSyncResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncResponse","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveCommit","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveCommit","params":[]}],"meta":[]}]},{"name":"receiveUpdateNodeResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeResponse","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]},{"name":"Validator","after":[],"always":[],"on":[{"name":"stop","transitions":[{"target":"#Kayros-P2P-OnDemand-1.stopped","guard":null,"actions":[],"meta":[]}]},{"name":"receiveUpdateNodeResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeResponse","params":[]}],"meta":[]}]},{"name":"start","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.Validator","guard":null,"actions":[{"type":"connectPeers","params":[]},{"type":"connectRooms","params":[]},{"type":"registerValidatorWithNetwork","params":[]},{"type":"requestBlockSync","params":[]}],"meta":[]}]},{"name":"receiveCommit","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveCommit","params":[]}],"meta":[]}]},{"name":"receiveUpdateNodeRequest","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveUpdateNodeRequest","params":[]}],"meta":[]}]},{"name":"receiveStateSyncResponse","transitions":[{"target":"","guard":null,"actions":[{"type":"receiveStateSyncResponse","params":[]},{"type":"requestValidatorNodeInfoIfSynced","params":[]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"active","states":[{"name":"active","after":[{"name":"timeoutMissingTxs","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.Validator.propose","guard":null,"actions":[],"meta":[]}]}],"always":[{"name":"always","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.Validator.propose","guard":{"type":"ifAllTransactions","params":[]},"actions":[],"meta":[]}]}],"on":[{"name":"receiveMissingTransactions","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.Validator.active","guard":null,"actions":[{"type":"receiveMissingTransactions","params":[]}],"meta":[]}]}],"entry":[{"type":"getKayrosTxs","params":[]},{"type":"cancelActiveIntervals","params":[{"key":"after","value":"timeoutMissingTxs"}]}],"exit":[],"initial":"","states":[]},{"name":"propose","after":[{"name":"timeoutCommit","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.waiting","guard":null,"actions":[],"meta":[]}]}],"always":[],"on":[],"entry":[{"type":"commitBlock","params":[]},{"type":"sendCommit","params":[]},{"type":"cancelActiveIntervals","params":[{"key":"after","value":"timeoutCommit"}]}],"exit":[],"initial":"","states":[]}]},{"name":"waiting","after":[{"name":"batchTimeout","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.Validator.active","guard":{"type":"ifMempoolNotEmpty","params":[]},"actions":[],"meta":[]}]}],"always":[],"on":[{"name":"newTransaction","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.started.waiting","guard":{"type":"ifOldTransaction","params":[]},"actions":[],"meta":[]},{"target":"#Kayros-P2P-OnDemand-1.initialized.started.waiting","guard":{"type":"ifMempoolEmpty","params":[]},"actions":[{"type":"addToMempool","params":[]},{"type":"registerWithKayros","params":[]},{"type":"sendNewTransactionResponse","params":[]},{"type":"forwardMsgToChat","params":[{"key":"protocolId","value":"mempool"}]}],"meta":[]},{"target":"#Kayros-P2P-OnDemand-1.initialized.started.waiting","guard":{"type":"ifMempoolFull","params":[]},"actions":[{"type":"addToMempool","params":[]},{"type":"registerWithKayros","params":[]},{"type":"sendNewTransactionResponse","params":[]},{"type":"forwardMsgToChat","params":[{"key":"protocolId","value":"mempool"}]},{"type":"cancelActiveIntervals","params":[{"key":"after","value":"batchTimeout"}]}],"meta":[]},{"target":"#Kayros-P2P-OnDemand-1.initialized.started.waiting","guard":null,"actions":[{"type":"addToMempool","params":[]},{"type":"registerWithKayros","params":[]},{"type":"sendNewTransactionResponse","params":[{"key":"protocolId","value":"mempool"}]},{"type":"forwardMsgToChat","params":[{"key":"protocolId","value":"mempool"}]}],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]}]}]},{"name":"stopped","after":[],"always":[],"on":[{"name":"restart","transitions":[{"target":"#Kayros-P2P-OnDemand-1.initialized.unstarted","guard":null,"actions":[],"meta":[]}]}],"entry":[],"exit":[],"initial":"","states":[]}]} diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/diagram/def.ts b/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/diagram/def.ts index 9c993864..5c272482 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/diagram/def.ts +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/diagram/def.ts @@ -9,7 +9,7 @@ export const machine = createMachine({ max_tx_bytes: 65536, max_block_gas: "20000000", timeoutCommit: 4000, - kayros_base_url: "https://kayros.provable.dev", + kayros_base_url: "", kayros_user_key: "", threshold_commit: 51, timeoutMissingTxs: 4000, diff --git a/wasmx/server/config/config.go b/wasmx/server/config/config.go index 46ca88d6..db040c81 100644 --- a/wasmx/server/config/config.go +++ b/wasmx/server/config/config.go @@ -148,6 +148,7 @@ func GetConfig(v *viper.Viper) (Config, error) { Ips: v.GetString("network.ips"), Id: v.GetString("network.id"), InitialChains: v.GetStringSlice(networkflags.NetworkInitialChains), + StartEnv: v.GetStringMapString("network.start-env"), } return Config{ diff --git a/wasmx/server/start.go b/wasmx/server/start.go index e77dee6d..5bb0f8a6 100644 --- a/wasmx/server/start.go +++ b/wasmx/server/start.go @@ -579,7 +579,11 @@ func StartInProcess(wasmVmMeta memc.IWasmVmMeta, svrCtx *server.Context, clientC // start the node // TODO send the configs to the smart contract // TODO send cmsrvconfig, ctndcfg with StartNode hook - err = networkserver.StartNode(app, logger, app.GetNetworkKeeper()) + + // Read environment variables to pass to consensus + env := msrvconfig.Network.StartEnv + + err = networkserver.StartNode(app, logger, app.GetNetworkKeeper(), env) if err != nil { return err } diff --git a/wasmx/testutil/wasmx/chain.go b/wasmx/testutil/wasmx/chain.go index 6b3b1383..52484666 100644 --- a/wasmx/testutil/wasmx/chain.go +++ b/wasmx/testutil/wasmx/chain.go @@ -4,6 +4,7 @@ import ( "context" "encoding/base64" "encoding/json" + "flag" "fmt" "log" "net" @@ -71,6 +72,18 @@ import ( memc "github.com/loredanacirstea/wasmx/x/wasmx/vm/memory/common" ) +var ( + kayrosUserKey string + kayrosBaseURL string + consensusLabel string +) + +func init() { + flag.StringVar(&kayrosUserKey, "kayros_user_key", "", "Kayros indexer API key") + flag.StringVar(&kayrosBaseURL, "kayros_base_url", "", "Kayros base URL") + flag.StringVar(&consensusLabel, "consensus-label", "", "Consensus contract label (role consensus primary)") +} + // KeeperTestSuite is a testing suite to test keeper functions type KeeperTestSuite struct { suite.Suite @@ -80,6 +93,7 @@ type KeeperTestSuite struct { ChainIds []string CompiledCacheDir string MaxBlockGas int64 + StartNodeEnv map[string]string SystemContractsModify func([]wasmxtypes.SystemContract) []wasmxtypes.SystemContract GenesisModify func(genesisState map[string]json.RawMessage, app ibcgotesting.TestingApp) map[string]json.RawMessage GetDB func(dbpath string) dbm.DB @@ -214,6 +228,15 @@ func (suite *KeeperTestSuite) SetupChains() { if suite.MaxBlockGas > 0 { app.DefaultTestingConsensusParams.Block.MaxGas = suite.MaxBlockGas } + if suite.StartNodeEnv == nil && (kayrosUserKey != "" || kayrosBaseURL != "") { + suite.StartNodeEnv = map[string]string{} + if kayrosUserKey != "" { + suite.StartNodeEnv["kayros_user_key"] = kayrosUserKey + } + if kayrosBaseURL != "" { + suite.StartNodeEnv["kayros_base_url"] = kayrosBaseURL + } + } suite.Chains = map[string]*TestChain{} mcfg.ChainIdsInit = []string{ @@ -293,6 +316,28 @@ func (suite *KeeperTestSuite) SetupApp(chainId string, chaincfg *menc.ChainConfi if suite.GenesisModify != nil { genesisState = suite.GenesisModify(genesisState, testApp) } + if consensusLabel != "" && chainId == mcfg.MYTHOS_CHAIN_ID_TEST { + testApp.AppCodec().MustUnmarshalJSON(genesisState[wasmxtypes.ModuleName], &wasmxGenState) + var found bool + for i := range wasmxGenState.SystemContracts { + role := wasmxGenState.SystemContracts[i].Role + if role == nil || role.Role != wasmxtypes.ROLE_CONSENSUS { + continue + } + if role.Label == consensusLabel { + role.Primary = true + found = true + } else { + role.Primary = false + } + } + require.Truef(t, found, "consensus-label not found in system contracts: %s", consensusLabel) + feeCollectorBech32, err := addrCodec.BytesToString(authtypes.NewModuleAddress(wasmxtypes.FEE_COLLECTOR)) + require.NoError(t, err) + wasmxGenState.SystemContracts, err = wasmxtypes.FillRoles(wasmxGenState.SystemContracts, addrCodec, feeCollectorBech32) + require.NoError(t, err) + genesisState[wasmxtypes.ModuleName] = testApp.AppCodec().MustMarshalJSON(&wasmxGenState) + } testApp, resInit := ibctesting.InitAppChain(t, testApp, genesisState, chainId) @@ -486,13 +531,11 @@ func (chain TestChain) InitConsensusContract(resInit *abci.ResponseInitChain, no if err != nil { return err } - msg := []byte(`{"run":{"event": {"type": "start", "params": []}}}`) - appA := chain.suite.GetAppContext(&chain) - _, err = chain.GetApp().NetworkKeeper.ExecuteContractInternal(appA.Context(), &types.MsgExecuteContract{ - Sender: wasmxtypes.ROLE_CONSENSUS, - Contract: wasmxtypes.ROLE_CONSENSUS, - Msg: msg, - }) + env := chain.suite.StartNodeEnv + if env == nil { + env = map[string]string{} + } + err = networkserver.StartNode(chain.GetApp(), chain.GetApp().Logger(), chain.GetApp().GetNetworkKeeper(), env) currentState = chain.GetCurrentState(chain.GetContext()) if strings.Contains(currentState, "Kayros-P2P") { chain.kayrosToValidator() diff --git a/wasmx/x/network/server/config/config.go b/wasmx/x/network/server/config/config.go index 1e0e4163..019c764a 100644 --- a/wasmx/x/network/server/config/config.go +++ b/wasmx/x/network/server/config/config.go @@ -25,8 +25,9 @@ type NetworkConfig struct { // comma separated list of values Ips string `mapstructure:"ips"` // comma separated list of values for each initialized chain - Id string `mapstructure:"id"` - InitialChains []string `mapstructure:"initial-chains"` + Id string `mapstructure:"id"` + InitialChains []string `mapstructure:"initial-chains"` + StartEnv map[string]string `mapstructure:"start-env"` } // DefaultEVMConfig returns the default EVM configuration @@ -39,6 +40,7 @@ func DefaultNetworkConfigConfig() *NetworkConfig { Ips: DefaultNetworkIps, Id: DefaultNodeId, InitialChains: DefaultInitialChains, + StartEnv: map[string]string{}, } } diff --git a/wasmx/x/network/server/config/toml.go b/wasmx/x/network/server/config/toml.go index 2bbde236..956ccf67 100644 --- a/wasmx/x/network/server/config/toml.go +++ b/wasmx/x/network/server/config/toml.go @@ -28,4 +28,8 @@ id = "{{ .Network.Id }}" # Comma separated list of types of chains. E.g. "mythos" or "mythos,level0" initial-chains = [{{ range .Network.InitialChains }}{{ printf "%q, " . }}{{end}}] +# Start node environment variables passed to consensus hooks. +# e.g. Kayros consensus: "kayros_user_key", "kayros_base_url" +start-env = {{ toPrettyJSON .Network.StartEnv }} + ` diff --git a/wasmx/x/network/server/utils.go b/wasmx/x/network/server/utils.go index c570358f..40ab0687 100644 --- a/wasmx/x/network/server/utils.go +++ b/wasmx/x/network/server/utils.go @@ -5,6 +5,8 @@ import ( "encoding/base64" "encoding/json" "fmt" + "os" + "strings" "cosmossdk.io/log" @@ -28,6 +30,24 @@ import ( wasmxtypes "github.com/loredanacirstea/wasmx/x/wasmx/types" ) +const StartNodeEnvPrefix = "WASMX_STARTNODE_ENV_" + +func ReadStartNodeEnv() map[string]string { + env := make(map[string]string) + for _, entry := range os.Environ() { + key, value, ok := strings.Cut(entry, "=") + if !ok || !strings.HasPrefix(key, StartNodeEnvPrefix) { + continue + } + name := strings.ToLower(strings.TrimPrefix(key, StartNodeEnvPrefix)) + if name == "" { + continue + } + env[name] = value + } + return env +} + func InitChainAndCommitBlock( app servertypes.Application, req *abci.RequestInitChain, @@ -130,10 +150,22 @@ func InitConsensusContract( return nil } -func StartNode(mythosapp mcfg.MythosApp, logger log.Logger, networkServer mcfg.NetworkKeeper) error { +func StartNode(mythosapp mcfg.MythosApp, logger log.Logger, networkServer mcfg.NetworkKeeper, env map[string]string) error { cb := func(goctx context.Context) (any, error) { ctx := sdk.UnwrapSDKContext(goctx) - msg := []byte(fmt.Sprintf(`{"RunHook":{"hook":"%s","data":""}}`, wasmxtypes.HOOK_START_NODE)) + + // Encode env variables as JSON data + envData := "" + if env != nil && len(env) > 0 { + envBz, err := json.Marshal(env) + if err != nil { + return nil, fmt.Errorf("failed to marshal env: %w", err) + } + envData = base64.StdEncoding.EncodeToString(envBz) + logger.Info("StartNode: passing env variables", "count", len(env)) + } + + msg := []byte(fmt.Sprintf(`{"RunHook":{"hook":"%s","data":"%s"}}`, wasmxtypes.HOOK_START_NODE, envData)) res, err := networkServer.ExecuteContractInternal(ctx, &types.MsgExecuteContract{ Sender: wasmxtypes.ROLE_HOOKS_NONC, Contract: wasmxtypes.ROLE_HOOKS_NONC, diff --git a/wasmx/x/network/vmmc/init_app.go b/wasmx/x/network/vmmc/init_app.go index 96620b39..8772e300 100644 --- a/wasmx/x/network/vmmc/init_app.go +++ b/wasmx/x/network/vmmc/init_app.go @@ -132,7 +132,11 @@ func StartApp(ctx *Context, req *StartSubChainMsg) error { if err != nil { return err } - err = networkserver.StartNode(app, logger, app.GetNetworkKeeper()) + + // Read environment variables to pass to consensus + env := networkserver.ReadStartNodeEnv() + + err = networkserver.StartNode(app, logger, app.GetNetworkKeeper(), env) if err != nil { return err } diff --git a/wasmx/x/network/vmp2p/tnd_state_store.go b/wasmx/x/network/vmp2p/tnd_state_store.go index 45caf91f..2c626ced 100644 --- a/wasmx/x/network/vmp2p/tnd_state_store.go +++ b/wasmx/x/network/vmp2p/tnd_state_store.go @@ -270,7 +270,10 @@ func (s StateStore) Bootstrap(state sm.State) error { // TODO send a message to provider to stop state sync - err = networkserver.StartNode(app, logger, app.GetNetworkKeeper()) + // Read environment variables to pass to consensus + env := networkserver.ReadStartNodeEnv() + + err = networkserver.StartNode(app, logger, app.GetNetworkKeeper(), env) if err != nil { return err } diff --git a/wasmx/x/wasmx/types/system_contract.go b/wasmx/x/wasmx/types/system_contract.go index 21fbd7e9..af164a82 100644 --- a/wasmx/x/wasmx/types/system_contract.go +++ b/wasmx/x/wasmx/types/system_contract.go @@ -605,13 +605,13 @@ func ConsensusPrecompiles(minValidatorCount int32, enableEIDCheck bool, currentL } // genesis uuid is a valid time-based uuid that should not exist in the kayros database - for a new chain - kayrosP2PInitMsg, err := json.Marshal(WasmxExecutionMessage{Data: []byte(`{"instantiate":{"context":[{"key":"blockTimeout","value":"timeoutCommit"},{"key":"max_tx_bytes","value":"65536"},{"key":"timeoutCommit","value":"4000"},{"key":"max_block_gas","value":"20000000"},{"key":"timeoutMissingTxs","value":"4000"},{"key":"kayros_base_url","value":"https://kayros.provable.dev"},{"key":"kayros_user_key","value":"0x73db4aa00c2519ec5c060af0be9751e2f5f920413db68aa5ca2501b0df9c972e"},{"key":"threshold_commit","value":"51"},{"key":"threshold_finalize","value":"75"},{"key":"genesis_uuid","value":""},{"key":"data_type_id","value":""},{"key":"max_block_tx","value":"30"}],"initialState":"uninitialized"}}`)}) + kayrosP2PInitMsg, err := json.Marshal(WasmxExecutionMessage{Data: []byte(`{"instantiate":{"context":[{"key":"blockTimeout","value":"timeoutCommit"},{"key":"max_tx_bytes","value":"65536"},{"key":"timeoutCommit","value":"4000"},{"key":"max_block_gas","value":"20000000"},{"key":"timeoutMissingTxs","value":"4000"},{"key":"kayros_base_url","value":""},{"key":"kayros_user_key","value":""},{"key":"threshold_commit","value":"51"},{"key":"threshold_finalize","value":"75"},{"key":"genesis_uuid","value":""},{"key":"data_type_id","value":""},{"key":"max_block_tx","value":"30"}],"initialState":"uninitialized"}}`)}) if err != nil { panic("ConsensusPrecompiles: cannot marshal kayrosP2PInitMsg message") } // genesis uuid is a valid time-based uuid that should not exist in the kayros database - for a new chain - kayrosP2POnDemandInitMsg, err := json.Marshal(WasmxExecutionMessage{Data: []byte(`{"instantiate":{"context":[{"key":"blockTimeout","value":"timeoutCommit"},{"key":"max_tx_bytes","value":"65536"},{"key":"timeoutCommit","value":"100"},{"key":"max_block_gas","value":"20000000"},{"key":"timeoutMissingTxs","value":"4000"},{"key":"kayros_base_url","value":"https://kayros.provable.dev"},{"key":"kayros_user_key","value":"0x73db4aa00c2519ec5c060af0be9751e2f5f920413db68aa5ca2501b0df9c972e"},{"key":"threshold_commit","value":"51"},{"key":"threshold_finalize","value":"75"},{"key":"genesis_uuid","value":""},{"key":"data_type_id","value":""},{"key":"max_block_tx","value":"30"},{"key":"batchTimeout","value":"1000"}],"initialState":"uninitialized"}}`)}) + kayrosP2POnDemandInitMsg, err := json.Marshal(WasmxExecutionMessage{Data: []byte(`{"instantiate":{"context":[{"key":"blockTimeout","value":"timeoutCommit"},{"key":"max_tx_bytes","value":"65536"},{"key":"timeoutCommit","value":"100"},{"key":"max_block_gas","value":"20000000"},{"key":"timeoutMissingTxs","value":"4000"},{"key":"kayros_base_url","value":""},{"key":"kayros_user_key","value":""},{"key":"threshold_commit","value":"51"},{"key":"threshold_finalize","value":"75"},{"key":"genesis_uuid","value":""},{"key":"data_type_id","value":""},{"key":"max_block_tx","value":"30"},{"key":"batchTimeout","value":"1000"}],"initialState":"uninitialized"}}`)}) if err != nil { panic("ConsensusPrecompiles: cannot marshal kayrosP2PInitMsg message") @@ -968,8 +968,7 @@ func DefaultSystemContracts(accBech32Codec mcodec.AccBech32Codec, feeCollectorBe consensusPrecompiles := ConsensusPrecompiles(minValidatorCount, enableEIDCheck, 0, initialPortValues, erc20CodeId, derc20CodeId) for i, val := range consensusPrecompiles { - // if val.Label == CONSENSUS_TENDERMINTP2P { - if val.Label == CONSENSUS_KAYROSP2P_ONDEMAND { + if val.Label == CONSENSUS_TENDERMINTP2P { consensusPrecompiles[i].Role.Primary = true } } diff --git a/wasmx/x/wasmx/vm/precompiles/28.finite_state_machine.wasm b/wasmx/x/wasmx/vm/precompiles/28.finite_state_machine.wasm index 4be6ebd94a59e55a66131ae1fbb2c4529df75e27..eb3158a88d000fcb2da47a1d9f7e512cd2cf0ab0 100644 GIT binary patch delta 51013 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 delta 50781 zcma&P30zgh`#*l4Id=gr;9*gAxffBvecv+WST32SrIlG(eXGx>&`NDD^`Zh|nqkKr zDlhpX3^~ITUW}j!CdA50GZvBp^ zXd#cE}O8~T*9SkAt4kdM5xeQ=59x;GQ0C8%9u{} z|4e-FL0cX<@4s){xX13d6_9JwHLKH+DlrYHdlLDGqrizE1J}bv{$v)wAZx-+G6c3 z?QN}CTd2LEy{RqImT2#2?`ofDo3$<4R&ATMUHe@7Qu|8VqwUqc*1plIwW-=Z?OScX zc0fCrpna#+Xot1$wI8*5ZNJFX!l`Z8doPEVm=A}frPl9sW!h}rHJgVFPquOPvd@fc zBgcF%q*dSAK&0+LF1@Ldv&-eN8S&X%&}QQ@_|$`+s1ctb!Oz;AWig=xw3anHT^YjG z-=1ZlI>VzU85b{V6VhymDEJa3x(S=xsM%@egvW^^JIz+ zhwu3x*^Nki+uSE2?cqK#SxllS#`$u);nJs4Gn>(2Y??^7i7d1<`)lU_dlsNW6VTO7 z(rMU{CtSFV6MLP8gWt)ma@KwB91wwS7=@))kqW(%Ga{xq5VJ|Iyd@A-Qx?qqhm|{1 zv!zA%vyHG%G1}_WsGrRfJ=x)jcI(@@glgf)_CT59Gl5QBqzU?G=Er*Drk_!`#!XeA zDbT9P3G>-r_cnHb6$RjdD2tUFZa1OVT zfuSPhGctPN4WlGRk+p?R?kR)T=zw_RtWBS0HjQnWz_|??>qWzc{RuCH+uXpLOnq9} znAizK)5@wEKT0jFT-jcmN(RybI^;%JiKj3+WT)GVFqC;PF56BA%c_#9g_!q?`Cile z+mz(HjP*NQdMlf|txZ8)n}9BPY;A2eBXxoiHy{F?;#>!Im_1W(VEifqe#J3<%}#xs z>miR{6z7+H{gfR$0O+|Ko>Qag8;FQ#QUxq>4*%GRaj5iKe+(vJ!HrYy7NE)rW0 znP)TFi^@Z0W@dZw*&%Z@f}MxVSqMHqWUfb0b;$fVvk!e^wrTaJ*mKCtXuUveK4flf zT_ScLDjVM>f>ix=JIv{A-}P}*o2?OfY=FGGfJpd^^4%`}1KRbYNgx152_o=^Nlg;~ za-(cx{Dd^hPE(7o6p8plZV#=nvVX~0y_ho%(DBd>5!Ba~WixyOF@Ysty8419JdsA- zT4IG-)nYox?KUc~&LZ@2yqFny-vt(D*%$3%MI<6lBBHrkooh_v8m}4E@dZ(yZ@$s- zbt*P{cJjxU=Yw7-fHH6^R$9OX+(SBFKe(xi@j??in((JX8*}+BNS5Q_I-xi{kv~Z`ns$~)~$l}m~;9K=lnJOl2uYaRa#y* zI44d2bYD#1 zu+d%Hb6XB(_)KLqBNp`;^SBq>x@NTD?*)Nx1M^%qx^LnU@@Q>s;b<918{)MqmWuW9 z1C@o}c`Ny*fnGELvrrQ;m6)&tRPC5UsK3EUUIK|CRKP@>84eiJST70~#5@8-$^Bm@ ziOa2ik#WX06dl1Q=gdwMJfCEge(8ej(aXkj3&v}N4MgM_v*s>W;)Mdt9t$a8RRu0Q zD|WkdTOz73>F%4tb7pc);oyRLu6gI(iOGS<yv}_vJJ1><_3S znd?QQMsC6uayCvMAv4|R8mo{3RIP!lDjE7%>Y0S)q=_lut});0727gsXbj*fatIW`0wDoN-@I^$I;T(Ky9WG-x6ZILJZpjv<$` zgl80OfhcIiF_d+^ov~*xpqe2nxC&$EUh}qlQX@787#OCna<@6{p4`~V-7XI=NCQdM z9PQj~Cf-};F0KiDFRn48?#uMeBICeb%pE4!s0qGQTWyqZ8^DmoH4Ix8QEY}ypREKG z)Wg^epaRCcDrb{B&1Rs4-B^G&c>eS`ggL6%<}wtPl;g$0eJbS`Zm?vV&(*IWCnrbm zj_BfTRxx8e($)O04!$hF%Vzx50Tv)!#_Tgr%rO%JGB|A~{(cUm@l>EHbnLPWdywIm zVBxPXW$-mraR51f4dj5N`OhkjAVYm11LW9$W~f7klYtENtNta!DP;I9kRhj3W$<0u z%?rr!dmslS>wmV9Tj?@R1u{V5{%3~S$nZxX0|fAYW|)Tzrvn*k%6$KlV*zrU3AXXa zzhqd93}*uwAf5lSjpfL2F4&2GgXL;u_>(jEWH=aX)lIS-_?m{0w3g!*J8*Y&<&DtLkvS*5+Uex%PgKYie4l4j!vn^BS3 z^TBj_)g1F+S3KuEc)hO_&2bUUs6DRm^%b(@&eeegoBkSczmQ4Q`g))#;Qs5#inh>W z^i;hTZ07-`+4KdJD6#~|o`D7!zuo{(7_8JIR2+;L6yXDP2&_~Pn;It+Vbr#e8AY`d zR69e|IQeu=%{^&n@ZlY3jvADLPOXAO{m?VvC! z2``E)mEy&xh)&6Niv;A5q5<23GyoYa8W4P0fS1kq%h?J#u-a*4cmM!q9UuXS-if~g zB+dH}Nk;K@9_Z!idyrm;^z{wtzAG~vK!ze@IMR^e%Jd^hFGl+8H4wjn75`|V4jD?2 zq3VBSIE4(Q$YAfin#}yeYP?mfa0A(>=6etTnvjA9OV*nO>769O4 zq$>a}2)-2Y3zOYkye$9B1YB0*&9Q;#gQXL%S zDWt1W)&*Z``GrTh2QTw5z$)~FL;Iyca#HnHALs+ps_}=~F-8N`UN%(DRg1)W{Big{ zGo3|Z4k$N=|1(noG8E#ELo1W-%J!_07w-tnZxLS9{1)u6=2!8^oE?GbU4UdY@Oi

bNIB7X2p%Z&YA4i&j8ZR3&XIPC4uOh==T=uH;aJ_FD zxO}#;xz3qkvvsqfYGXs4)3S;|RoxYUK#(%-sE^4@Wto#TP!OC_5S+?7rxA_8Xwd3F zZAuk&0wu8VfBkJ9r)GSMOdYuiuaF9O!uK z!ROLBSAohqn{=OQBS(GalD?S2!_bcmv6#HjMKVM&c_GGThy?`Qfo(Oa(n6Jgo_ZFc zseHEj0c83T74=M-Lv^9v%00>BP(7%%Wg9iXoU$OJnnFeyWRM<(aTv;iLfQA zF2OphFE<|<) z3op8mAupEN8S11DOp}@*MPXrc34*JlrAPP_%a`J3p z^&v;qmfO$=<1E%QZ~#L;3xw^B`L_pf`z+?uT5r~pzYtvVwOI1A0htu;dc9hjr^u?l zR(;h4Ry+)`j868J7CtRKrx04s5kv9ripjmN` zaxOZ3s!N_I3sI_2f~^_%109gN3j8zP$h+t?S|PU`=I~W$-KcEH1z`@rS%nO3xG$Be zZ#x6PsZd{=gX9p3pNH$0g}>&ktrck?2M&g)g*J7trzzB}X0$PDpG<9v z(t!nV;>u=fR5Q(=;${Xtl}d}vhn{NdzN`te_^C8+1MXEQTE98Kamv-#dJRel98rce+JiI%ezOkV#ECO@Y(_S}lKutD~*4+Q}OLWm3 z`waJM)-$ieO4;(+w00kIJ0a5i%v-tY!#Sgu6@1@Kz;Oi zuj?QPR2P6Qa#A}n_o&%tQfrvDvnP36rTcglylKvzl;&M>lqGwNuUL(8u_Hiu)Yk$B zitm}^r48okNxg1_gwRb?LfJ6tF}__WnS^&xTu@umH!75?S7172XNtvJMH!+8AQA>X z!bUzP2sl`X{;@e@at4)|rIT;6FD1Z4Ou0Uck=>{P*xxsYPf4InX7-e1QS`G}Fr{fI zYIC^tZZ@~MZc4^z{bSBr3EFC5LZu>6I|XBc=4QY_IkdS!1vCs4k&t;R5c>~C_5a`i z1Fq%(@t1Rec;)~~^uf$A&s@npg2^(-c6D!*qGjeVU!3Rb;{coo1OY)Zf{<<^9_0cg zWPY7VIgP{ib0(VyY}NGS^p5-lvYV3Q^tE7{=9f<-nMKb?SOu9Y+2Vp}lOf3|9o$~JWNy-%Lnth+ zF&~=Rw5OVDY@(s&?_pbk#sb5&n&%6G4NjxJetw`|)BtqEm* zpVbUy;%2wNCPSauPqe!5FGbF4ZimO|#&$>uBUGq|rS`ezf!V!MSwt^ir9^bg0&2Z? z0!qN>`?}fn#rx2ReDQ`33+;xF&FDyhO#>#1H0w~-l+az9jGV0qV-fP$A;h&K+S z0{b)i0mAN(`Y>nD9g+ycZ9GpnSak+)0a;iU(2OH{&EMv>qT^=D%d_221vhQ66|wr| zes*62J~lEP8Pjs0>a#ZGVKxTVd$RRSW^XeMJmDU57@n)l_uLHy z^=0M*^OgfoqF!0jx`d|+RhSR0 z8SJ%3(Y+4E8Oz=%>PocC{OZ+iRBeX6mg)J>?!~gTI_a@nR(%~fYR!p$)*SKLlBfo7 z2j*$H8TxwDXv8w1#3Er4%)#51Jzw|mrqi9TC&YpcHNYZJ>^-yK^`_01Vh)r#;|7gg z2jXb~Mpyd;SU$0OiMis#_91T73;o@f7c}vyrb0YnY!k5~xS-@hV?U&|SWlQUFtjSQf=bEV4WtwEgKpR{KX#_F%OP`wFeuDd z7DOezZ%3?}%V7;!EfigCZdwr2_sB7)!DKo>o;O1F;rV6qjw)CvKn>P@j=M89psdDJ z4SE>H9P`GrwA*~~4Zqi#wl@_Yj|Ev!Q_58Ybg}o%2N$-mM(>tXS zg&1$a(%;wJd*N8i5>3LXskTe=`-FUE`H}lPR=p(a3 z@hUf1AMtiD>1)lOigQF^omul%vY1t8zVKFZFSH0SW@@8Yu>S1?0~78t5Uk%O-g@&G zG%&)>x@nkVzyJlK3HC)*ErVy(sqVv01qGb*^AJ$oaBn;^fhDISz{r_lJ3Zj@i1vgj zbvDB|kLGlw^ZI$)9Psw_JTxZ{&Ba4|1<6t10U;O~=p|$wYiKLqZVp{_&)XfW)nJA$ zO2IN{x#(8<(44#|8ELOA>KXU*4{VWWC_RWv4*_6)T9lIf4r-3%wZSzT8QGlHfgfFr z)n>EBt*O!+wm7Ym>bDNm!3Gd^`#dlL1Ce-C%&M)S8(*NVX82^7tuz-c9-jb!JFyKI z5RyVHh=nl3+AK+K(Eu@UqssuM17IN*z(N2p^U)>AZC+=%b-+3U+%gb272J9lOMsD_ zJ0K}JS*DQ_?ib1C?j`Y<^%F~)(sDEGokaS;Z2r!Tw91@-_l@T4cdlio*G)hXhII;x z(*AFqMlZax*33L8$E; zj92zMjqd#3P|@4(w&}VO6+!hSZzB#1$g5k-G733ia#9~@AdH}$m|7!e#=DVvUYS-h zlITry)Y44nyLLSui)zNw6b;0~e0OPP2Q>g_=2(*5#A0q=#T4^f)>xx*7q3=qsGuXf za5ldDUK0IkCcl@OP{zZ;GGnWY-KauFwzjb1GV;AyOz;lBm()~M2Av%c&Ng;pRH=An zg`O+RF%y>!v9g>c!~;oBAWLJsLX8hVFn8G<`d=aqg1tpBA)wcrKQBx6{Rta|Cxrd> z&@yuq4AZCjpl}4JY6K{x`nKacKp_jjVRfv73gF$PYI)%rMMwhg2w2NN0soE^jeIl( zbg6>Irs_YEUa7x`5ic4Zr!q$^qu*E4wX(mOK*n{$hy*Y zn983@Tl-Fa58ECqMUZ2oK`@LLvD%viB6I^5NgcSSXKD|5Q+b&{#3y~Cmmo=EEwASg z=4UiS#=;HI9j)flZ2CS)S=*A*UW-M0|!jEteX#{HU zN)d*mBBSd@ASo0#%T}%h@TYxQViz_~!zc=c%@Yothu>@pD>Jq6KnD*mddx9ck=;@n z?Z%Jhl(H24`|o*iU`U|likbuYqBj9mEsH#c#_eu550;G=bAB?1txjue{)9OT;2p|g z2vEl%ATZF?t8%Mkrx4vJG8e8+@c9*h7F*^rjH?9ZG9)q)J%pwjaT`2hW#~tGp_;FG zWc;kwjDiIys)_|g<+;HY0NP_CnXWAPOe0V-M?G`d_=T@$_%TUuqjZ0MXD!CC4Y4My zh^Gh0rbGSHp}4Y2t7n<_ewfyJol^Ke#hj#Ipg?617N%ZTOMH!##5a9pfg&-UP^@aG zZJ~;1g%~*uMo(0L;xJZ3Sz=(6aj5`ZR$vYaz*ue-Fmu-!KE*jb$P&+bf0QSU^?qbv zfh5X!>nBVeD~gI)M_J4|%90+VjH8@tGp2)CM{~={w#mvA2m#yAc@;tUNM+$8`jYU$ z(ak*3jET{yO8S5y$s5J)O!)NhBi&d893Xv#dB49iePT*~GZteKteT)7SYk|)C)uh= z=jvi1h#c~#4gYSh6aLGA?Vf11vBFBm8ICZOMOZ`L7<8x#*r9A^I%pT7_mDT1!z%JN zK{DGvW3YJEn8V8xX^lCyycsPrUn(C+`^|64TZ;L0FRyJ2Q+&I%t?#dep(%zj779Zg zlg{&qP$-OuM2={{X+%UD^{BgvCsv;;xWTg!CD8+eP0%wTD#xlc1tOT9k%3Lm=K8hI z!Vb{wqqXEW>pyBwM@`SVj6QpL$4(!O9>*vsLylUmp)MGGyNMEhL(F0hvA@zy6!RN& zlLZ{+er@KjyMItFOUnfu0Uz&fA_s4tCg4ro;3LmW7eF!C6#FYWYhbs)6N}Z)4?Ad2 zbf#7!ye%-6Kh2KohsL}E*cwa?6ecnbyp8}YzTAy-1@A1T7k0;((gmD6~f>Lpc zC(hHbE>wy_RutioCTmM!OmR(#qe;{N> zSN<*!gr!#KGfDyx?CZ)I3Ikz5Aj}Dbt8)YC@Ob5X?C{Fr`W%GreQFE~tTEIE`dSn0 zb0Dk=gcX6XbcV~P>R{(ruB#{z)&>Sq69}sUVQC;N4unO4knKRKd>}j<=xco-+!F{- zO}Fx02#ld-S}!Z2E-;wIfv}bbg$@;~!R-yPG;5YWwRE`Pd0^u#FhALrA!=usb=%sA zni*zdWqM{c`VUH=NQ%Z12I-$e_5)IbB_fDto3}8kW|;r2Z0h?$C8b+Q9xI7K!!_tt z#7eG(QpmyDx|IV!;~W}md8B`->S$xtkzwUvXsR46Ou?0yTkc}z=wRhwINMG8_DoTm zZ?@l_(DN&m>3St>-<-O=ag)6&X{41j+)66VHwdlCmtOSOfy)l2?FQ|tMK?h|1RZY&IHHpT=U+~8ee1eVUm^i z87nW(vFauZ4Z-SiSq8zdbJQ+_F!tn{rJp6nTM&n^p%M!MiKnKU-+$I>BqN2YsE8|K zGOMg37HHsBpvn{l%G3li7pqn+2rLd{Dh_0-n`+*>qm@`Z)ttQ}ErD?g;}(om1L1+8 zyxGy?J?6F@KR`iWwlgcd_7hjOH`-|FbsHa=XLk0b60`fRiS(KI-mcEjgAeV>q#b6+ z=M}J(ZU4M2o@YL9PCLz%F9zZHpD%7eOz9UKf9Q*acuuYwhv!dK925WLDm*K{l31W=|J_NV>cXFW5JU{w_=S_7)ACe%!%_@%;MWC|A%z-}O*8@|oif zb;NVwp_GIzaJU9JzuY$+A|U%R?>W?4^TE+Q=DSvja8hMo<5(uSWF4?L4wHYhKCbNc z@0O7N=4xr zmqu*nMwEw=kb)HsB^23NHnh7N^I&+@r`b50;xtL_z76I;0n4Fa84y*eDu8vzP#xqy zFNVo4Fio1zAC8NzC4H#73nM2yzacu!`=xC0;adr(J<861pGgpcnjg81O$(EcJc^*~ z=OZK4iI(e*F6Wa9Cyx%JW2SNJKYX5H;6!HhHoX(fx82MG#~!CM=J48&@zjqGQ)dxs z*O(6;e~`|U?KpmeaLnH6!Xzcst-=|J?RCXCJD2@)Q=-4jnZFo#?)c?SK46sbYkNMP zbO!<)PkI3Xjwh`{fa6JZ2yi?prCuFRx~ZOzC%sr-$;Xp!KWXy0q`H%hNmLv)wcovA zwSG7VYUtqKX1m`r+v794J=tzx%Ocy+#Y7_z<*{=l?<*PQ8(l^os}_Ho`M;;fRUCD& zI_9z62;G1T@q}TYXrTH{zbAx!QUPBzB(reg7pomm!g55} zy?<0XGhaYbm=f8i3$Kd_m)(m!3`~nRoC8~0*b1-RD4Aj2eBn7!ap1+H>eL3KhjL8*{NBx7kG5Z+1NEj`W%G20Oi&UWbim z?k_AjFumJw?7;!ltF>aia56HE)W|>Wbc$yAe|6APM6=|7Ty&AgARh{$EFOe8=dTo5 z8A89&MY%2%RCub8KZeqEkyU;doQxbWc!lWGgzOeZEddRAPZ$jrg*9?n7?8TWM(zru z1P*J%s6{gfPF~Hp1mQmk5P%|JSN0tg&@al4Zfehs{GXd{iac;-BOBe+LL5+yBuf!a z?L^f<*(sdTQ*yp@WVhCAZ+k-x-k1cVav0e+fU<`gIp4|0!>L7!e{CEl9=lS8)ll?Y zAwLdB`v~j9sgo~HD8ht1EZu4b`lIJ#>0_hP4*L&YVC`#b8;{j_X;i=)2k-+!b${#) zg%!#AxZW1{hdy4)tU!QskEqFl1Vjm|FSCV^Z$(gRnk{!lP^Wt?^#ukG4M%w{?}{Gm zO8o!o%DWrAVc^nMU#{b>c*8F5ha3}08O_mcwTtKIk0$V8(GBd<=)6@E%Ob2XTP};F zl&F8eQ|^nT9`vr6eb_5IH=?(a|H3|4TN^uG!plpH#lAjUaIgn~eKA?zh^`TT9guBx z8pPq#I;9B2&(|@n_};2hI==mNI%QC_)!1UJ%}@{H$#fxGL{p1@iysqBi8o!H|4&v) zdEP+DHMQg{Kp2544V#WE z-{M=u(nK#10HO(bBN^N68=!6iJH2iULTxzL?vra{>9Ght%!|Xle89SXpX}P0KE-zA zxyH1ZUh*$&Lir@l?~`A|Qxn-cp624ikB?*`Q`RNWqX_Oyq?S$LeiqW!HXM{Nq^lU@ zjf46JBVz2kFepXn^JH-%ip-N65~)S+S5#I=eaM@sJ)`pS>cK7?@>;1+fU+X-A+;|7 zZ%rurDp95;(ch@3X)^Vq`TjeSsU^`Xa%u|or1^4P3N2^_8@f^ct)t<%XYFP0#rrSC z*X);5n^Fo%`DRmUgJ5S<+8a3w8%Wr0U0sz*4}&Hrz>5yV?^O?0Tan!2q1zJX z3y*uEH`Lc_bwknQUvwwaXwF89Or_m}Z@_&~`O+>=$7(Oc**fxfe z0Wzz$m4*JgjBHME^tx=(oHA*F9NwHxHeMij@<64~D@-C={q+U@+ghN*TIDi_%xg*a zsJ4m@$e&u$O^FrD9NB#4Rx?tcS}{p)i88!@%z1CgpyyTIssr+?40=f9d?T;Tq{F=8XJXzN`BXQ$N3740-*lta9NN3neH{L`I~?^87I&v-5c(5)P$v?5PRpBmA|t}* zd!oY#i+h5kAp96dEII7h3(F1Rh+fo*!x_D3P>(2x1-uN|G7BdBws6l1)f_(iB*EJp zRZugXP&2cv|5_Hyc1psN*pk^E{SG#Bu*Pvf8bNHDroSWm_oK|HL%gXG5uvIj$Q_6L zzJ9=AdRMN!j&7o#Wytl^3_+Xgv2fm&H(U=Q_lul(J*E48A%F%>FuViq;%Xn_$2gA@ zd{PH41FV}YE}9}u7Si(KBH_S0Mb zf&mmO5WX>pvWec3A%kf%f?b1Y3@wpuZlr|dCGcnUxWfe)MBaBJ z!FJ`Jd?P(7=#Z=%iUtqMn49QHs+BWu!q*8|dK2ACCuP(ytl)b2{4hG`ICUO(7|2Z{ zC{8{xoF>vK|FPi^y&Pu|@3P{%-Gb$E5#OQK_e6Yy0BjgRNpdB>zbL=B1rue;&=GWv zV?K^d2TI;M0;zAvsfea`xWF~EjPoYR*pbwf-j|(6QW-6k$41i6;j3|ERTw_66AaT| zb1UuCka@)&^g+})%r4wXm^>(aJ157FrYzba-ycnlTX8vuI)LkBg!2F|!DyBW)&SJW zZm1-PB7Ld9el)rn`+vHCuH~<$*dF@>kpRQ8aT%h(phr{_-#bk{IjIkj) z2%hdA$Y<{&lgebo-PApyOn?T5b`c?yy>I{v?T1T1oQ#DWjD||b+rhJ zogYhH+UQRiN4R{ZLUw$F+Ud*reiG=0)_#6PdLm>!W|px*o_K^_3JK1$oc1X7 zqmSj5M*)L<@~1~>0jint7-hLn?Fk$St>5F{{TPJ`+A0rBp!gnJ1+4d)5oRez(1U;v z3Y4W-{W?O20;>kC{l%1A)Jt2+Fin{ymXu z1^Qe2IDO`Tg+PB_`k%mTZk66ADIP(uC+X&>4+WbHSPC|Za0~^=vfxST29)~hN$O=^ zFZ9(i>M44-(TVi5pK1GSwZ53(pupJ4mw4IQEyrNYq!zub-#KNB(=3see0+G<}5# z2gYlj_yL}H!!~GQgq?K>bfXy?zAtsCq2@&>=0VMGOroQ}-Q3BP)l!WgowW~&NU?ey zq*^He30xe|C%gW!JTaLv-PNDE4ETKj8t=)}Db&tgzWGwbs3}k)R?4|ksB3EN-wrrw zI+DB*;Ykcyc499^VK69F_{S;K%ndtTLqv>^-p2f|@li*{-Qzw;GAm_=9BKkyJ1~d3 z#;+9ES6Al@%C)p4BYbe0Nb-glKg)T6RQ7wu)KqC{sm3*d)RXcsQc+XfRBBJ(%Yjp= zS!{qR$ME>z{2J{^)Jx=)sSw?k%4JijZPa&Dd0&S2-=GQLFkPPPJ&jVNa~dUke`rX9 z{gtJ7oYBFN9VY#NlrVmj^;02|-!Tn*6-00fhp1o??g4V2`P<>u;gicX)=#7N?`8X4 zLU;t*3$y`gjo4NMCD`CwIN054J=UDv>IX}hcBA652o@tWV>4ocyWLz1t~-L~1yX>^ z`X`cdX(erwrMXl@o8%37pzWLFl04AYPvpTox-OQx6wWgQpKyqyph)^k*(D#aI4AGR zhuFJPKATU?5xkjCT|<|kxjFbdClBURpC;Dg!OlC>Y;F2fAmoV!)WUrSXb1##Ryrj~~tw1Zp6fc*V zh4d@Z66S(MFO&Z_m)g5{h8@N+Su~fP2z=zpn3n66ISn-%K?S=5Zu&9b#g zuTr(#V$xXJE<57vHZ78OzCtN>zMe!rIgegJy!#azMsqoy7l%LR75a!0s~}h!b`~sc zZX34vz{wq$e4$tQM@mRq9lm51U`4xhd{}wl0LUNkZs#N?%CJL0c(%UVzqyEngT9d4 z-T=-0Le{=P$7r{#T1ct%m8@S#Nlm^2=ViLjMU^H1Yl;4q^u9??MbD!K=T)}-+Vp4S z(l^1SvSsy~G?3*fZ!y6AjK6O&sFdSJoKE>hj(&@VxbTW~bk@J(E$Tz*toK&uS`Ovx zYyy6Sh~yV#Isp?TY}pFXeNKz%|g4Ttuy0>#<#oYGvgj8YAlS zWX58s+%>Z05?V(;_(o`NIT*gY|Ruo)y)X&Ot!>516a(a{dI&>x7kKy@0SV_wS$n%)@q0Szah40h4 z#^;Ia37TQ}Enfd#-unUdiaQ1iA{Za~#-b%DK3)I#DV1umJA}eA!D?fDOv`zn6M#1T$ z`&H?&oF30EqRGgFQU9V~VKa`eVAt>i3};-Tc2GXFhW@V|0Hv%HnqJ4*&>P+`9LQwE z*kj|Xe(dbfh#d`Zf8cJ(f8z{r-3S>l^epa)F)H|SkaED&F4U8si^VL7>?1mB;h zN0@20^g^m%j$B<>T+JNq@gAXn9Sh4G_NRcB?CJ+ z%?PB*A!}(AuD)8bmhvCO`fAJz@ieA14D%nvh45Hji>gL_IQ+WcdeuJFbiopRlcx}+V#Y6Fe^5Qss|Y;ZEdZAs0eTy zoe-s=|- zG$vgxbz})}vhyP01C~Z#UXCoN_C_=;D(Zpm@=`^b{0#0^sOH3ax{eOY_8TCJoRtGN zKy)phA)ng-CHogyzX44hki9li%Ww=x)vJd1$VN&Bo#4*Hf2*N$FdnI9s+64vd-Sje zRbzs{k1qAp+BdR>&kWDl&pM9Ubt`{S@*I)QWF6 zLn8V~MsI<%dQy(sLLD$+Gq*tVI3cUH&}^jLy%n~Rlk)YgbX#Ne3f18j5FRR4DY&J6 zLOQo$9sVTm*#?w2Aal0SJwS_LZ>m|19@Zf*l@^&h2#P-M|(y718jx2 zVws_!_soNMb{O%U%(DS5<`x^b(*RNTxpaPp{lX*i+-KAcT$Wj9;Br*!10$}J19s4z z$-LIBzBJ&8s!XByh8@%|Q>|)f`aJsW4<_e@W81vz!slmC%2}oCB1W1Hz^Eur#_^<^Vs{^Rbsb3Le z9EAs*6$P=^#utsEe&)goqz%P<`eC{Gb9&PEo6>@;5n&TsFmJbD5Dx9^viKtn@e15r z6UHfw?;GM3Tva^0+Tr*ctVdCxhWKjSrK@1f$3pG0{0m^(_wuJN=yAFr$5c^o23Qqz zojQ4}3aay8{^0*HzZzPyd$Q_Wy85J3kCf_Kne?6tovZG zlpr|*;wuz-u&q0g?#T`yH$;~}7AE}}20acu;*4A>5Y<`5DfN?qY%O-C;@Bv(w$#x8 z6Lw2Juu#3p9_lydN1h0*3m|mu<#Tf7mjd1KE7Glk|8q_iP>;(sd*~7O<}Gkt$m2tL zPsw(BscWYl7PZ9OdWlDnLkcf&Mp|J__a&ODPuWoSbn|zO$d2 zH^LBjXo7i<9j1zJ_hWZy`c&yUKs&Gv@znw9)KUTQfStXA(PM@ldj~^UQpy2)20xFk z{3+WUq-j_Ys}6!W{Ozwf2##S~>`pcsg;ZYT;-$*|2kP?^ox zjU(PHaa|O0)OXa=It`>~4hWx9ua|FqN8Y5%ydN!Y7I0N0sGkSFqu#y(YvP1;dV(p| zv+TnM4=~HsP*`M<6P^ns1RMbsd3)Z93px=-1Y|9C0Awl4P*;FrN*JP`lc;49`k|JS z`W&E7W;T*F7W$G)|5Lc1Y0#1hQR;{!FkgR?K^g8<5DiI#B7sh@UzM#tN<(=)R73xD zDLCn~~rGeKLfB#G!U-5}I7Aanhx%g%Fb!ry%&IqnDUgFbJ|j3Hgfr*`(szuy zbY72(xj<-j=8L)#2-S$~xET~qb=;Llu_Rbmg3blF2oyYe3>}&&!)odEuFvz_kA?pV zOc!qV8+LN@5m1~5cBR{RqA~Nmu-;jywAc)AqF#PmOFh{@*7!KxlBlQyY?|!$tQ1;x zmrw|<+m%y~6WcG|K2G^qMVUX*G(Cqe8UO=log2vWr(E|FjY&ETJs9j=4U%DjzA|Jm ziPL146C~+nx$^|w>M93Wvg^}jMjh7h%kri=dQP9F0jrTaa5{RjtgfRxOvad>u{mCq zC!hM6#);xQdE{sCi0|a6UuXw^Hvbhn@GriK;5)icf4c*C?D}JN# z;WKeXDKAzm(fKm-ce>&7nAvj5?=%8gcmEC?$(JopK{KBzC!eCE_)qL^z7?8h!SERM z%bbSSIBbKVwDc4;u_LvEYtrj#AO`t<%)xsyI}Z|3 zD%YHc`0~CK7pOJ3NV^LV0+-7n7gUc6E?`F#U08kLvK}9}KzDLv&%Y?SHE*Ve=za8` za774n&;jUk4SULCm&Fhk*#Ax`<8&T{(>Ud}dzLKYYay8T9Qd*qy+}u(az}NeqKla-85Vi{W^MNRG~7Aqw^2Fe09~xo4#u zCPWKPe_Dv?0yd8eSL9QzE@uR3rHQt&B`6Q62iuTtY=MA4^X!k+M5b?z%883m6jeGa z(r`b8ogJhGOiXhp!4iy(%h#PAcM=;57?ODSHQ*3@9$t64kzJAdD(qn4Ub(%{iug3P zjc*2SYqKS(cU%t4@77>Jf!gC&pp|9(EiQo+Yof zi)3KhXge-(!oa84MM{exVCq4RGsG!{;;iEEK_n(W3cO3@CcEg75x_On1#E*Z4S5YJ z8nA7k`oRK+a^kS-r=-^*TA`sK4iS%8f6yV+vYUf28I$Tz&X{PeLQTnLJlonT36uDx zL)-&q8z+H5T2d&b4FbSoLRgZCo8l_8E;mdIeZ*u_NsD0JC zxe%G=K`srCv>et7mj>@9ms?%pv8EUfZ=pjd0u@Doo8Lf&_>2rV)k--cL=;AHbrl~3 z%lS`+h!DsT`eu0{ROH$B<0c{*=@y-&KTNcz$K|mw(G2X~?H1RAB@K6r_EGzI+Syhb z8bq5yw|E(rmuBJOnKr+J6GGBa4s|6Ts&*8TfXKMLKm#x4!p<54kVb9`7wy9N!v5fI z5lD&pGdNiw>Bx zp}L5p-{ph4=oHNdbATUAlqU99h$5HjqGPDSn-EqTe$Yi{s`JN12{>w3&5-S)#lzSJ zEQ%J_vo>)kTJ%U-iyP|sNDC$f*BoHi1wth86)><4; z+r|om-jk2TiuR2IM8F8Kj&{IHmayYo7AvlgZ=erw#&wO26omWrc~$s05KhIr6ClvC_(L7XCdvfKv#006h{f>jI9RqYLYKd-lJH zVwOYwW{o_TAX*Hn- zm3w&N$~|y;+<0$s&?~FF#6crjxx(cWppvYBtd^fAi<_9THcb(U9QI1NtOx%|!9rOm z=cb4z*mN#Q5zi(87(iq^4V)L!N5O&vCoJA^(?62En~GMw*Z3Kz+HQx>N1Rm*(eXrhO9^xH+NL!N(1G< z(io5^hgG016>2C}(on3QM~rQ<4(X7Mu=fuJ3aH_u4d&)kkHv{kctrC{(1mHAo&TMT zuS&qk^uj7TSKjCqkAok4>=jetOlPEtUE!C*Q6@GMw~tUAEDm%KXK(`@EaEq4M-3e; z3U*NSj8E>NPw`NYz%#C%eC}QYKGio9{M!~XHC+r=zkRc3hkPtu+{n}3uDNKYGP0O) zG+hk%N93sHpm2elYRZt4f05!JZ5{|##W?J2A)2#U#W?%A#o(A-rNZhLf?q%haE0}q zMNeM{dzKdBR}ZY+!b%MC0{^T47XD*$Yzr}tCd%p-;u-|8EyZ{m4?kehEc9_t3nr}S z*ZVES(10|BeZ_mAGT=->@eKdNd>;xG`cG$y&pF)ES}f7%TRFD9c#h7GvqXa+j5TVzwu?ZS|1blb~L5D3Yvts3_ zPGSJu>fY=mTBTw(;jJ2uJJisTa2CL$`K+?Ba}ghf-y~~0iM#ubPXwl*x23$(+YN!o zi=_l5RewDAhP@olW#!>*MeA4|U$av#b32Rmshc$Ak{xC2N7W%ZKG_wHol{dhjr3Xm zd%D1iNgv6aZh+oLa(y>(3wfu%A^Z=y_F4gtW%=v1 zA|+xXCIaqdo=DhmCd!09VmM#np&5n9&!Y{~Ka|h*5gARaTTigiG$qOf)BJrzH@JEI z(nnm^D1Z}2?IK92`UIKPSG)#0{{Ft=`bHBW!)5V*XgW5?y6v(=Q;79LvoP+Ba%Prj zF#xNbErB@m1DSXrk8A^CHeG{NGKPu2WK7Q{nv z%BF^RMbHMh`Z_V3HuxRai@8Faw9BFaqO13$osVl-Q?}Lm2%f^BCyd4G?edoaqPN&+ zmu&`$Khe>agG6pTcmxCnXfPT}K}<{FdNo$xC_fz}GTm57Div&6o*4wNtds3-5Y2cc z!Y~U50XAB2;(a%W94MOK-ypj4qD>ksp5mo%4i<~yXW!#S(E@(E_uL5Tv_MY1QFKSJ z_C`>r1@f99n7LdzVThRDHAAybAzNS!A?7%Ez#z_&w1+YaFE zkg!I1fxE2AMsk3Y5qu;bg*;L4C&My@)etU6a0;3$yWb>kOIX0-B3F;xUHH)>*u*BbN*9AT*pYe$IQATOs!h`S+UjvNUgyH4hg6kUCvYPiYe z0HkNsMEF&|Bw(1$V@uL^phXQD%bvXRqpdW_pajWQ%_`f?Lr`;+#|G(0|xK(tIhccw(b2wvlV2`XWeAcT6gzBcZ zi4>*e@@;QGTUf-ghj-&`BE94PZWA(yvUj?N*m#*?2{!S>>0is@+eG(PJ2h_{uFO!! zM-`~Z@ObFIW5E)3X>4=B#VsC>$E)v@bi0TTJ=?%9(ryQ_dRmUVU9@Txh&3t}!W|qG zW6ABJ&rM&TVUNbE9r}~Q@aa$E>>3Q2e8E@WG^{y}*9?^9`@l55I=>BnW$@9#{;>Gt z9W;&q3(&NVqhRZPT#g(CRp9_1nF4J(Am<>~!*j`A>KFjeCx{zvUkdzKA?{h9A*)7- zPQBHEca_9DEXd1qY~>9^@MH%fm>k*kGi<0M-gM}5hiIF`R|nuz&AmG7iP>k`gN*+C zJ4BQt<#+zwtUb1|*qyYwZI*|Z6E2$2M)lwQtH+2C(e0E5rG=*f+CQT4X}N`k20wYL z3&~8ELOrSc`$i7^5C3oXijHx#OQt^qIP8)GpAq+{pZNm3aC;N1*$qGQCD%VAy7dE_ zsbbc{qN73=uzA=Bcvi68Wpri4()kgq??xP3yFrp+Km`E>aN)NmyF4peUHcO*^#KGh zarr0cuo>(7dWWL4TSL#gAyLYbm)-)v8>!#vq8 zQU3I-c!)lbBc2o2_$t8U;0^H*|FRWYjv5N12RIq-wEQ?^LK1fC*mhT;UDYY8Pi)@e z8|py6*>6l`J*|$ISoIkpY!7F)%axoaHdw$Tk->xt)EZ}g%)}sAA$}sx*kn}*zy&tX z^+U4r^P*jgLke&sEx-*2;DA@~&VbEGx&)oHp_wZ zTuo|PJ0-Wc?_ z1q$R7{FQy;9QqOY>m=xnlV$j1(J4~VY<0;8N=%nSCW|G}3I@P^MR!2r;ai8Q6J^R2 zk?{Ywe&=Lt@JHBX)MU}N`IU`mHsCbu4%WV=@eBBjUB`%aP60BXkiSk59fuvY7B!#m zW5vm--^7FH&89LiEryzacpXe9;k4|ovb0-Ufx1$=m_+XAmZFX7Hz<<@aW!zFNgG*i2UbCy) zW6a=tbT6-2pDKD?JsG2>g2SQHQ>ThpnkMH@1&2E!Pa*c7I~=X2Spy8@eRP`WZXJ_@ z?95ld%J-*<{y21bVmd4d!Tk{>2iO6CX49`O?Ugg8izff5qBj5wsq%l-6PGJIEg0R^ zI&08aflC_8BCK58!LoIhaY5dlD-v3N#LF#6W|<{hc&o82hI}1({uIx{uFqS!q9efY zRjz2?T3KgsrI!W_G0NZKOAM6=Zb>Ri#_z!;djqH2=83l0E4?#Mq$_CVi3B<(U(bV- z4&ZLc6Y%j@C2(;$mw86HfLhqeQVie|l`lHCv~V)8?Zt=Kl-bm>owAD)OFj<$xE!00 z3nA*{@EJhopXK8-#5Zw2a%SAHrS1lRPcMgz^7j>p>!PiC`Hny!1RP3!B)O(Qqy@2| z6yh8&&7%dPD=++%nW8m!eDF+x-yW4mXF`a>J|^yav_YV;Hg_N&;ehHN%2voy>R^GL zEmrt&ZEVmx^h&aH&kN#K!7aZ47XBk>zETC%()&gJ`hw`eiJ7y+K<>iCS>nG?2)~^r z+JOs)&KCK!Ulz_5$t?P=oDJi}M!97+G-2MHC^|7`&(7SR;A%ycc?eK3NDU2@$j671%pN7(1D*|>gvKf zJaOUOWS~kf#*~nkMF$>Aua`w8Aosw_qIoj~H7t%xV1sh1Rz?tRu?lYSv6sP(sj|8$ z7B>XR16(U)>_}56pY7HNBXa-^o-;g>F{dLH2t}1mKJu!FlQU674@gz`2{udv zyz=Dwd1744YPBnmjy&K+uWT&mn9#oa*ANGo<5KznXB9MUJWS=77 z?Qim(BK#Z*B*A-Mg}%B=`d$?ojhKU|)>($p7s@q=6p;05UIn$-<^S_laUs;DD4YJ7 z|F1>jW}*}RVM|0WN`%eQVZ>hL?9bO+*7+B`Bi^JAKL@2c`19-dutY)Llf#Gd3}X3@ z4Oubl?Ei~@Vu^U0>u>y?XwKm^%fR|U`tMjS_TjVh3TTt~9K8~zloS4~E5&mDe7qF; zu%gXTv!kG5A$>S|gqiCp1~H9`5CXaoYlY5$^i;{S*i`kfoZSqHpSFMfh$a#j|8D%N7xe(+{!+IjNV&7wbo zu3N;lI8yug7IdOOF4%%SgBjAf66As_!BS|U$|lox3M1`InVCZ2QCbuQ5fxAfAp0U9iy%l5QCVD2ltoq%*+i`Z3W|y- z@_tY5opylV^T!LH=}AtKlarI=Bsn(=I_z|@?_;$ue14w*%n|vYsQ(3(BcDJI%@O>7 zIs!iP0X4yY9)0(rj_8F|^sED@@tNY218RKGA_UMlB~Lma?6(6b#C#F{shVb-i7@J} z+L`QWs9(Ar7+2=vs&^22O%#8Mj9wHAK1G^2V%MkYFz^!onVK-*6*;R#V_>woBN$$7 zODcoq25KIur@Lc-Xf9FChgL(phQYJ3|B1d>NVVYuo~l1nhk)OcpQ$h4!$#pj)f$0k zuMDuF8H2FPBN5+#axnKsSHE~r?Tqdk`#FUCyqNMiY&f&TuFrAQW>!uAFVrL@R3=0p z@damK19dV(Og)4#d6w9A2o3dF@zo)iuU{1WuxgB$%41+hy?|azv1ykkre`xnm%~s8 zQ-$@gS^&QG9#-4CAVMw@r7|QWw(fJ5k-E8sL5j8HH3gwTYft+44hLX)Z zqP_viwLc2eDcFDNsG3Yqz?*6}YkJpP+x0`UM?7pMJ~#>uFjHJRsy+d2^yru1;*Oa9 zCCWTU?EO+5m{E<5G1%yXmZw%hgFrJyCCZ1<;F7nsndlNanqaE5=&5~9n2tex%oL-K zsl_PtN5|A0P!2nemUBmpKdw%}T;=+4)N8f)&k1}@y~~9Cglb2r&YwUdnj>OPq8rZ< zrju&6@{*W#QtgrOBCX!Y^bsJxe`1cRPgH#%KS=M=N%iNTm+8GKNFq=cZH_p9N)|2P zG^%W_=yzJJYBY!Ad^4g^=fR(_;05B$X?%RcD&i}(Lr=67%)4lh4{e(bz=gm#-5Ok< z2v?=hwlS*k{y2FL$;(@B;lLu1CzarE#ki#4?@(gVGl6@NSymkH;otQsCo4d;l~Z~_e`GzF?`(oo{?S$t1=RjmF7I%B4YIHxAG zhC-k(7;c>aAKHrcRUjBMNch5}MZ%Pf9X;lAvT|NNhaM!v_H$|vw3VCZFg2VbBF{rt z%@rfh<9b|F368nT-qKKNnitQbt;`X3&Z{jt&XsvQic`s?0s<(D+{9=C`OvE}DcVCc zPV3TEZd`i}%XfJ2TrvCtbp9*i$qQ$fmz3bEo_bpXK6 z->PjIRdX0`(XLRBWX2K2$N)qT(_-gb-UULs`Kj_??=RLYq0z z`Vf^WjhaIMtVs*-^20rdgpvElKTL=7kb&u7z3hHF2(1mayHAu!o?8R5UNiCl6jI z#{Q_LHGuK9iApx#Wk0ILDlVAw`bm8oht%KwNzKA+|DT`KZoX)(c$v?%Wx6n3!C3!~ z7;*)@;X5(qih6ty4&KqE+AH{k++~l^0iObBlfJj<8132wo?553=>&Y<6bsVDdKyo| zoIzhAGlWkR#$Ls8nx|~+NuY(!8XBW6Fk9$8pC=C&o9A74l#a>x`P>? z{?jgL9EZbq5_-5v-WBLhCgT5stq6l-&R=R&{6DB^`393JPycBPMO@m5+dMFvf95ZI zNYdCP5#eapo5+v)(H4N$wd zXj}OFt+wqbFFrOb|;DP;37rmLRu)b zM-Rw!DG7j!di%{Kk7VsnZXwywSw-b zy+W}cgJuRaE0E85hT$x8lYdnhN$#k@&<_jlUG6qX5hhNH>OKM;jC#Wj)KaMNBI1NFMqU{+#x!0HWl};yu;afMcE-1 zdb9X;@^KRST5tf91v!s1X~%|9ShS=Rb^y1rM48^hQDSAv=kleX8&q+LEPiDA+c zyhU_qz}olOjVBv8o@^j)I>E>RQdvzJ$osIdBb>S)H|a0QQ3C=|WQ(}zFp6;PwH9tV zDYiCX@tu#H!ni{-z(9Jsk{T#%H%sVJ5hO^aS7E<8MHh*4lYaZW7cGxKQTX_>t`_-j z1o96{^rrTW+9$OJ2wJqE37rA0t_duRxK+T2IC3PCOc0m4E}>d!iatUC+oli2Bs zSAZ3w!k=|bkk`b|pz~p5Epa$tV{~080xa_08q7jY3f+UeHhL0+@WBMjQxW?fwr&0s>hVb=FDIFObE>K{sQ` zAYc4Q#+>#vI3jkbNvs!B16ic9Ml3`ENbh(cYv#8bf|4HrF$D4;){{0g^$TM9Lp9e) zp3wR?FVYq~+|2>b<(4n;bP&sqm0zqcP@Gwp$OsJ9b$M5d^N65*(mqWQFqUmVoThM| zu8Y$nnDx}+VDA`qLqB0Ugg7(`(MB`qF3jDQ2eYEo-P8mz$wuw ztT97}5)U5dI*_>$>*9Vh4Qpo_lNpW4n;PNM2H@dFOum{1OSyKV0A`Pr z@(uA%BlZ}!?GFuQ82~dvS#mgTD8cdB2H*?)6Dhh_3|CFEBz5JdHCIB})exnVINgkO zY#3If81lmv!|FXX(aqTzRY?{%lUYYKtfr<-3M=zc|4kH&Q&~Ip^gi)rD$DFh3Hrt= zh7$&ZAqmi6a2kp#T=oeThtcXZR@fXCbJ19HVW|Z{_%{G?A`Au*nZ}yHdfh#Z^}xXT zR2pl6TRzsLu>_UHiI3A*W4tx>T^hS06l@BsdBMQ~f+9|HzlL{$4Tih;?eW9qTR!?ZaD(+0S`s&5*LgLpa+D)?W?=v;BE*v5pM3`PKTSC zAmO{h?GH$qJnZ4lgF8USkA^!CZpz%|;eHbCsvte!1$fZxWu({O4uPAP+UVha5AH@f z{xIC3a1*naJlwy-9j4=byD5fnxTz40J=|^KMjs`7m7yOzk$R-ja8qNT(p7r6XTu$> zg=zlZx9xMOwvEx6<0CJBUfuXm@z9k1gbfx9vCmyyQ7lYjsc(@YQddbo`` z{!_S{z)ceS$;0jUkYY&G@onI43O7kI*Te0EJ4we2xSQ$j-9zAM4iAa@l83uN55>?z z$EU%a3^$3sz{6bycZ!Z*2X{-jsY<@=QR8c6g}&nS%PhYpbvCP3Mjk+SoHYd*hbjh_ zwak*5Yj!v-T5qJTct8)Me5hSf7d!$SLEKRz;rr-{L2V%t2HCN=$gQz?bGI**NNetC;xxLlyeC+^ZN;pH&Q_@p}wE zO8fb98a%DT?{s)WhyMU(%>?(;HQLKTy8~!m*oV3h1q;|fwRWFaw}3T|A=G0pDTdu3 zJr&|5?iV3>=~_{{fDO*3?E30thv=|KhvRhU(BWhqKCQ#&B@|CCWK(>p=)J(gEWsAB z;p(k@V)P=GiqTihUWCcBL2O&Z(r7TgyogmOIM6n1F&m>E*(dfdW*wr5i)0jt3YCE$ z>F0dF*`m=B_OJ?Ohc989=>WFhQr01ns^Zbvkl739X=p1X{{ed2!PVJl88t;qStEtA zpSX;Dk8e1mma{xu{PfmxR;2FPCn8s1bKmLxqU#D)0`$ri>=#(p=dQ&35ou1Xgr47t zSgTl8i1{MrrRqf-330TY&Tk+~6Fh?t>P z0l|*j$QG$v_6wg)EY)`lQtc6FL^Tg>VlSwPNucJx8r0B={<{5q%+gKW_a&tg17MvLOpu6bsCLnPVv_^w1b=Vt_XpGk3Gk~NdRs#-rQ!%^? zNa8-D!y7upgI6+LYe32`=XFIjB#FQpHawh4J_03|T^adO7alF9)UX!5L~6@I#qea! z<{I{2RdxkU7@51+e**R)rVFy6l%+M3cQL_2!jOdgl(fiRVRO~Qzt3J)e2MDWjo?=7 z_<*%&zXi@1pn^A{szNng?Vip=0hjxZVn_qr1K0Xkvz<)QUrUS!`7=NUkSR&jOmp zW|I7)%QZ>407#zoJH1J;mQvAIuG}vIJ2Kxb0uC>U9#_dNDmuil1M2}dQ z1~}_YMU36Y;;V=lN#p_`F+(bcibIJGL&%iqCNd+xFES$-r^B{-=6!U30bniSPXwe4 zk%@%Y0Vl&xVPOypBPcBm;J0&RVkuU zAxOlt@1!tHQ2E7r!QU^I5V zU280**22_0msyTmB>7G{-Uv6xkGRSL?(9y*Fa(gQ-v&td>420u(egIno-`I()Bh7_ z;Hn15;q;FB93H_^%WAXqu5?)(Hgl;q4+8~iuAVu$wZ;t8buPkJ0Qy7w^YvOzL~{^w zj6)dZOk9iy>Ysl+STJP7>Ux_CAt(rk955Jq$W%0F?%CoL(9tOr@y>ypA7b zOj4kXDSn*z`5;TEq9DqnFHppX=c=u4uNPkt%c1w^L>MjYZ2S^5#48m(o5#pbFomv%9l9b=qbjD+t7Je8px;0V#>3l`gb z2AubcWjcBpky;E$v!AVilzar-9|JA`BtPafU$Dmm3{Vxs{4Jo3;$Kj0pAQsK?FO{F zAL9->sa2eSM12e3W&FOtkEj_%&LP$@egV8R-y;+$p#y;HbpLX(@(}Afieq&5$B%NL zW|d=cO|(14<=BfYG8s{&D#+5~7~ytvL4BNZFVNu=I(!O{vh?3Ax*lfF1ss9@Hv9(w zuZu&6X^eVL%aX`Zmn1dN5EVKA_!Piez}bME-d7C!0cQjHU}AC>up?l*51=k|xB-x| zyRK)OkF+F1qV*(x?xOWHmzMT2yUhJ;PBHcf3+TOE5A+Vq&oSY8kzl5AkTmJF(`@o+_ z!HOzLW&sjODsO3By0DBH)OBUO# z5>8Uwp4`%OlDHj#FbkP}#L_QWOZsCCaJtM67s761p<5|d9AmLw)%#G{V(&55!g~Rn zm`wkCj74}IfV-3MJ&qVr7?GBXl;bSHi)Q$*Vh;|aJo-2`xulD-$O&Y!KsqO# zK-SCQG>C<8syp|K9Vb|0^~ip4@&rrtrRnYo$f}!APQvs(Rz#mTCdF)XTuX<8?!ws+M!Dkm} z(Q+khVAv?}%y2})0R~zaoiH>tgh7bJh7ks~6POxaUr3M}+DSZStk^)tXkPS-uz9+YGa(l10yi>)id0;t>kX zM2Gw0G5diD2$1G=;ea%OZVX6Gy15?STKBgDq*;Eg4m;|wiw?W%FiVF$B}D$`bVMH= z_S4}29Zt~UKphU&;Se1@s>9(r9Hm3E4le>y0g3^M@lrrC>5L~x<#%T=2?!GQQ#zaq zND`P1NF|>QNQ49+5n86hUr{Mk2h_so-^NRrF~Ln^^Js*@a(>_=A3vop?k*wN50-Sm zZ3_O0q(9iEs>Rn)tsj2kTGGFA4;)$G=-)Ik=T8d&016zD?&nfq}Kp@(Kwq34&{wQ?ZL?{os(=usgIb;Q&I=m&Bf)y z6w2e2@nTdckBV@Fx(SUnJI9up%O5e1vp6YAbmu&a%N3+2A80GGq@?z;SGeir+U=z& zsSjIR6Yj<2R=6gLbD=zQbM`P zBvT+*O=e}5GRt_(CaVJ77%F_*OgtRnM(9wA)#RG0)QPDaiy)U)tf!SAcl7cK7e0VF zo>9EZFvqbMO;e&oXgCk|gAAWlc!|Sec}|3c^B6WAPYB%z2icrR9tqQ9NhELFc!d&k zf4OBt?Mr5GQ_TZuh|+&i$BrLbZQEwydMmf}_7Vk9@Q)k>OZV&-@tB8q#(u2CW_ zwjz5mmd0sMIPJF7A+|D@^~ah^Ul;Z$-aB%w5`wCb-`@Jz9gqp6vrg$KNd#HS@DUXV zi(`VhbUltKjpT_Uy)kbfQloh|_FW5OAy4(Ma5%93k+y{mqAHqq3frgzYi+`r+7spx zXb$?PZ6VHc_e#V=`4LAh}W~8y9(zH%BSi4Q7FNb zQQX%ndvcA^K}Jo|y12H&bncW=fzX_(XqLGSONq7e9ekjsEQ0SPYS~2vdkA}`w#4yl zwi}EzDdg#5wi%g}#qtL1Jw0LLo_2?Y78!%ly)91H`-&eajXc?BOFj@)@jQy{QMzgc zSsce3;b9X`etmpsd9qJ0oaodT8)f!C&_|&3J`|%G^T;+I)$0YDwG=8=>Wh!-v3jq{ zu~fP~5i1+>#MTGu$w{`XHdousPwP`iWCgGt+I=RjH|F8EywN*>x5wS5-4b{Q_65ZG zPy*^r+z4SX@WNjRYQx z9XkO=9vgj33BRwOYKe~vlaWVtJfTD;TkUBj+Wh_Ml*Y$Jx4(*z=XIOr+Wr8G(|Nw04-MJJVJ{nk!4SM&P{c!-Jetn%J(kIh>6b_%7#ciA z2BQ1zgXl3pUslBWOx}dfe0`qDW9X<&Z6=TV&kstVUgA`jJ%3WUr53zuA^>8rc_QI{ ztdB(Afh9lHN6NLMdM%E8`xSAh36JP|75TdfNFk=A_Aa%QT|?E}hwfvwlotQ|Aif{e zQ{^wBbs~?6y^bnt=}w0x*$-KzV63Qg-4NzP9)&GilM%1QZ%~)+XnL;Dr8gBnHxi2c zcV%(SXdgbuOAJWH*^xh#*L3gIHrx+a%tWMeW7k_sj4TgyN}5&$s4wg6H zEVbJ#x5fBW9^U_NB?{@JhBTL#L)BuOaaoEBtgf;DDAD%@^>!AS%PqywW0pHgkUOj& zGzfV3R~$*@iD7r^1DxfSBCENyS{2@DJh9tUwN4jfur2OWYB#%{R_n-^UG|c`mda<; zMsC6wLdR%dXs3yUbRNz-w0l;?P8J^7^*L3W-$=fTkqt)vl++R;nQe99Flv;X{@fd! zH`ZF>njsE@Ki~4}#EAGVp6H*`4f+INA#l zoWUdeFHpnWi8WR=(hKVg1XbR9(LLTiuerIIkP5nG_Tmgn=fz@t1`m%|QeSj!*rj4F z71uI&W09W8y)h%$o55RQMgUY&>hK!tc2gVKjNy=C$658?@JV?}~E$@UK zj?T8cEjHGzZOhw*zpjR029s)a=9qJagMDb-k!!{EwmiOSof;x_uMHh9&sE%WY=v#y zdNoYqtWH@tcZxSuKZ!22+s9RuZ%_lJPwNV(h>dEH2O`I8vu{!xNsP@hQP!5+La?uF0yRVgNx0Roc(NDRbLs3;m-1w?zW+YY*V2;WJvv(p|Q1H z#e__TF_?eIFK+ygWK08C+3n*#)L#By*v&7uZipon$dP9z#jq)kWi)>_9wXY`2~`yN|WfQalVw<~==! zIz&>&`+6kIIkY$*=#>QpV0G8Z9`Sj59*qgY_w9K?*L`Y)WTD)QEgN~(F*ZxF#_fKc z7G_T*5Oe8=y5O}UR+N1tvO4ex94sm5z~j?DQ6oL*KrBVB!F_tRZQHi<0rj3SycDzw zou7);9e9(-&miV|B~XltJ1EX};L(wvy8|I$*I4)X{DtuE$fIKqxn)PfNx>>mPEGsg z4a_+#vN~drJ|aeT5^NG)_dxR_Z=t@VlN&_7A(q@&KN{yGI(w3s+KETCrcvU&ip3;F!4K-W z%#~evK@GVVl~-7KQJn9@!&_fc13iMu&BfokbCAg;^;|S^uzXnxpf|lIT*e0z=vjL0aUl6-@ z5o*N{hO6`kcIA;cW#5nzOXXQIRk*rhG%kjfXHI!{ z%<<-k<=wG0U?|4mf^fBXYbHe0QETPB|tfF+OOy%9jT)K=!ilYx9Z|8Cim+z=p0i4V= zy$9!Pr7kxw(y6P6R3ux?60{iL!Jn;R#yVdBd!03@_oa+xS_ZU2pOqEe6FL$j@&*=hf6W$K9azL{1bw39CVc=T6ZVY=imb%^4bTCC}nclBZf()`cjaB0}xVp(4v8TlRyy*DZ57ZvT^7hfO{ zk6A(v2_X|`xQKDdK;8}SK2j`WhtF8_y?nT^tm;jc7mMQ{_JseD!&``MxmXi_ zF8b$U)cQh{Veu#LXQL20P-o+mxIPFo#nZxXF!KLOv=|J-(;3lwFsOVjN(S@RSlzxd zm^a6szFmW1g*zwC5I8Sx4~Fi!Ae!d^Toi-zc#3jKJW1eN@p>N5!_zsp^FZu75tYwV z@z~+R`9S_4_T=;U2E#|vl6GV*`I6X=XoY*ba@1r$=OvS|o1qF|f`HKbDq0xzl0(F~(-is>55NY|_BO)w_6!9OAh!Q0u-eG}t z$+2oEs4DoEMb=@U1gzx_n#dK{9mRJ&;!^HIt9gB5A~|%bCt_^r&>>IrMs>urattjf zc*X+>Ixv|I9a=DrORK5BG_aPLE3qEJySI<>sO;x>*nI<+rLsIHXF9*%sOlW=nDHRe z;(A`(dX&evp2_bY0Lx(Bf8l`?5W_5CdW?s+c~Rp@vV@+VV|Km7Bk$t{v9rxiYthT% zna6mOs@Wb%UsI)bR5|bHWhpUZ`HLZM+i>1AYy}UNk!VRt5uLQ8 z{AoD!%qkHyg15wyvdai`2b@)=9vALkPjlq!qIv}S^jh9k-1rB>z~>_{z^-%q8ji%e z0uNb?gmLr@F?uAYhmTf_G34?ZzQ9P7w=9yw^3~wzi#9|Hn zCPi-*3IREKVqFQV8AgT4mMy%k7AgI2=A&-qI3>(78sxcPU409b$y_W(KFn`*}FgwY7z!8?%QwzVH+2g@BSEj1o-1jX6OJ8H(+ zlcRYcdj~#B;V3t>rp dpQ3hQA8^giES@dIn7jvtC987{4F2it{{gfOX@&p* From 91dfaaaa03438a2a7ee6b8fcd987fa98db997786 Mon Sep 17 00:00:00 2001 From: Loredana Cirstea Date: Mon, 19 Jan 2026 13:57:30 +0100 Subject: [PATCH 09/10] configurable consensus for testnet setup --- tests/README.md | 3 + wasmx/EXAMPLES.md | 2 +- wasmx/cmdutils/testnet.go | 184 ++++++++---------------- wasmx/server/config/config.go | 2 +- wasmx/server/start.go | 2 +- wasmx/x/network/server/config/config.go | 31 +++- wasmx/x/network/server/config/toml.go | 4 +- wasmx/x/wasmx/types/system_contract.go | 87 ----------- 8 files changed, 92 insertions(+), 223 deletions(-) diff --git a/tests/README.md b/tests/README.md index 10af0c74..81b33461 100644 --- a/tests/README.md +++ b/tests/README.md @@ -14,6 +14,9 @@ go test --count=1 -timeout 300s -v -run KeeperTestSuite/TestEwasmFibonacci ./x/w go test --count=1 -timeout 3000s -v -run TestKeeperTestSuite/TestWasmxSimpleStorage ./tests/wasmx -benchmark=true -wasm-runtime=wazero +go test --count=1 -timeout 3000s -v -run TestKeeperTestSuite/TestWasmxSimpleStorage ./tests/wasmx -wasm-runtime=wazero -consensus-label=consensus_kayrosp2p_ondemand_0.0.1 -kayros_user_key=0x0000000000000000000000000000000000000000000000000000000000000001 -kayros_base_url=https://kayros_indexer_url + + ``` * for wasmedge ```bash diff --git a/wasmx/EXAMPLES.md b/wasmx/EXAMPLES.md index a899a6f5..771d2b1c 100644 --- a/wasmx/EXAMPLES.md +++ b/wasmx/EXAMPLES.md @@ -6,7 +6,7 @@ * on-demand blocks ```bash -mythosd testnet init-files --network.initial-chains=ondemand_single --v 1 --output-dir=$(pwd)/testnet --minimum-gas-prices="1000amyt" --nocors --libp2p --enable-eid=false --chain-id=mythos_7000-14 +mythosd testnet init-files --network.initial-chains=mythos --consensus-label=ondemand_single_0.0.1 --v 1 --output-dir=$(pwd)/testnet --minimum-gas-prices="1000amyt" --nocors --libp2p --enable-eid=false --chain-id=mythos_7000-14 ``` ## Basic chain, 1 validator diff --git a/wasmx/cmdutils/testnet.go b/wasmx/cmdutils/testnet.go index 556a56fe..b5638036 100644 --- a/wasmx/cmdutils/testnet.go +++ b/wasmx/cmdutils/testnet.go @@ -93,6 +93,7 @@ var ( flagP2P = "libp2p" flagMinLevelValidators = "min-level-validators" flagEnableEIDCheck = "enable-eid" + flagConsensusLabel = "consensus-label" ) type initArgs struct { @@ -111,6 +112,7 @@ type initArgs struct { minLevelValidators int enableEIDCheck bool initialChains []string + consensusLabel string } type startArgs struct { @@ -132,7 +134,8 @@ type startArgs struct { jsonRpcAddress string jsonRpcWsAddress string - p2p bool + p2p bool + consensusLabel string } func addTestnetFlagsToCmd(cmd *cobra.Command) { @@ -144,6 +147,7 @@ func addTestnetFlagsToCmd(cmd *cobra.Command) { cmd.Flags().Bool(flagP2P, false, "wether the consensus algorithm uses libp2p or not") cmd.Flags().Int(flagMinLevelValidators, 2, "minimum number of validators for chain levels") cmd.Flags().Bool(flagEnableEIDCheck, false, "enable eID checks") + cmd.Flags().String(flagConsensusLabel, "", "Consensus contract label (role consensus primary)") } // NewTestnetCmd creates a root testnet command with subcommands to run an in-process testnet or initialize @@ -181,7 +185,7 @@ Note, strict routability for addresses is turned off in the config file. Example: mythosd testnet init-files --network.initial-chains=mythos,level0 --v 4 --output-dir ./.testnets --starting-ip-address 192.168.10.2 - mythosd testnet init-files --network.initial-chains=ondemand_single --v 1 --output-dir=$(pwd)/testnet --minimum-gas-prices="1000amyt" --nocors --libp2p --enable-eid=false --chain-id=mythos_7000-14 + mythosd testnet init-files --network.initial-chains=mythos --v 1 --output-dir=$(pwd)/testnet --minimum-gas-prices="1000amyt" --nocors --libp2p --enable-eid=false --chain-id=mythos_7000-14 `, RunE: func(cmd *cobra.Command, _ []string) error { @@ -207,6 +211,7 @@ Example: args.p2p, _ = cmd.Flags().GetBool(flagP2P) args.minLevelValidators, _ = cmd.Flags().GetInt(flagMinLevelValidators) args.enableEIDCheck, _ = cmd.Flags().GetBool(flagEnableEIDCheck) + args.consensusLabel, _ = cmd.Flags().GetString(flagConsensusLabel) args.initialChains, _ = cmd.Flags().GetStringSlice(networksrvflags.NetworkInitialChains) return initTestnetFiles(wasmVmMeta, clientCtx, cmd, serverCtx.Config, mbm, genBalIterator, args) }, @@ -219,7 +224,7 @@ Example: cmd.Flags().Bool(flagSameMachine, false, "Starting nodes on the same machine, on different ports") cmd.Flags().Bool(flagNoCors, false, "If present, sets cors to *") cmd.Flags().String(flags.FlagKeyringBackend, flags.DefaultKeyringBackend, "Select keyring's backend (os|file|test)") - cmd.Flags().StringSlice(networksrvflags.NetworkInitialChains, []string{"mythos"}, "Initialized chains, separated by comma. E.g. 'mythos', 'mythos,level0', 'ondemand_single'") + cmd.Flags().StringSlice(networksrvflags.NetworkInitialChains, []string{"mythos"}, "Initialized chains, separated by comma. E.g. 'mythos', 'mythos,level0'") return cmd } @@ -274,7 +279,7 @@ Example: cmd.Flags().Bool(flagSameMachine, false, "Starting nodes on the same machine, on different ports") cmd.Flags().Bool(flagNoCors, false, "If present, sets cors to *") cmd.Flags().String(flags.FlagKeyringBackend, flags.DefaultKeyringBackend, "Select keyring's backend (os|file|test)") - cmd.Flags().StringSlice(networksrvflags.NetworkInitialChains, []string{"mythos"}, "Initialized chains, separated by comma. E.g. 'mythos', 'mythos,level0', 'ondemand_single'") + cmd.Flags().StringSlice(networksrvflags.NetworkInitialChains, []string{"mythos"}, "Initialized chains, separated by comma. E.g. 'mythos', 'mythos,level0'") return cmd } @@ -488,7 +493,6 @@ func initTestnetFilesInternal( mockNodeHome := path.Join(args.outputDir, "tmp") generateMythos := slices.Contains(args.initialChains, "mythos") generateLevel0 := slices.Contains(args.initialChains, "level0") - generateOnDemandSingle := slices.Contains(args.initialChains, "ondemand_single") if args.chainID == "" { args.chainID = fmt.Sprintf("mythos_%d-1", tmrand.Int63n(9999999999999)+1) } @@ -526,9 +530,6 @@ func initTestnetFilesInternal( if generateLevel0 { initialChainIds = append(initialChainIds, chainId0) } - if generateOnDemandSingle { - initialChainIds = append(initialChainIds, chainId) - } nodeIDs := make([]string, args.numValidators) valPubKeys := make([]cryptotypes.PubKey, args.numValidators) nodeIPs := make([]string, args.numValidators) @@ -749,7 +750,7 @@ func initTestnetFilesInternal( if nodeIndexStart == 0 { if generateMythos { - if err := initGenFiles(clientCtx, mbm, args.chainID, genAccounts, genBalances, genFiles, args.numValidators, args.minLevelValidators, args.enableEIDCheck); err != nil { + if err := initGenFiles(clientCtx, mbm, args.chainID, genAccounts, genBalances, genFiles, args.numValidators, args.minLevelValidators, args.enableEIDCheck, args.consensusLabel); err != nil { return err } @@ -821,7 +822,7 @@ func initTestnetFilesInternal( genFile := strings.Replace(genFiles[i], ".json", "_"+chainId0+".json", 1) - if err := initGenFilesLevel0(clientCtx, mbm, chainId0, genAccount, genBalance, genFile, 1, args.minLevelValidators, args.enableEIDCheck); err != nil { + if err := initGenFilesLevel0(clientCtx, mbm, chainId0, genAccount, genBalance, genFile, 1, args.minLevelValidators, args.enableEIDCheck, ""); err != nil { return err } err = collectGenFiles( @@ -836,26 +837,6 @@ func initTestnetFilesInternal( } } - if generateOnDemandSingle { - // initialize on-demand-single chain with same setup as mythos but different system contracts - if err := initGenFilesOnDemandSingle(clientCtx, mbm, args.chainID, genAccounts, genBalances, genFiles, args.numValidators, args.minLevelValidators, args.enableEIDCheck); err != nil { - return err - } - - for i := nodeIndexStart; i < args.numValidators; i++ { - err = collectGenFiles( - clientCtx, - mythosapp.TxConfig(), - nodeConfig, - args.chainID, nodeIDs[i], valPubKeys[i], i, - args.outputDir, args.nodeDirPrefix, args.nodeDaemonHome, genBalIterator, valAddrCodec, args.sameMachine, nodeConfig.GenesisFile(), "gentxs", - ) - if err != nil { - return err - } - } - } - // cleanup mocks err = os.RemoveAll(mockNodeHome) if err != nil { @@ -938,6 +919,7 @@ func initGenFiles( numValidators int, minLevelValidators int, enableEIDCheck bool, + consensusLabel string, ) error { appGenState := mbm.DefaultGenesis(clientCtx.Codec) chaincfg, err := mcfg.GetChainConfig(chainID) @@ -1006,6 +988,28 @@ func initGenFiles( clientCtx.Codec.MustUnmarshalJSON(appGenState[wasmxtypes.ModuleName], &wasmxGenState) wasmxGenState.SystemContracts = wasmxtypes.DefaultSystemContracts(addrCodec.(mcodec.AccBech32Codec), feeCollectorBech32, mintAddressBech32, int32(minLevelValidators), enableEIDCheck, "{}", mcfg.BondBaseDenom) wasmxGenState.BootstrapAccountAddress = bootstrapAccount + if consensusLabel != "" { + var found bool + for i := range wasmxGenState.SystemContracts { + role := wasmxGenState.SystemContracts[i].Role + if role == nil || role.Role != wasmxtypes.ROLE_CONSENSUS { + continue + } + if role.Label == consensusLabel { + role.Primary = true + found = true + } else { + role.Primary = false + } + } + if !found { + return fmt.Errorf("consensus-label not found in system contracts: %s", consensusLabel) + } + wasmxGenState.SystemContracts, err = wasmxtypes.FillRoles(wasmxGenState.SystemContracts, addrCodec.(mcodec.AccBech32Codec), feeCollectorBech32) + if err != nil { + return err + } + } appGenState[wasmxtypes.ModuleName] = clientCtx.Codec.MustMarshalJSON(&wasmxGenState) appGenStateJSON, err := json.MarshalIndent(appGenState, "", " ") @@ -1038,6 +1042,7 @@ func initGenFilesLevel0( numValidators int, minLevelValidators int, enableEIDCheck bool, + consensusLabel string, ) error { chaincfg, err := mcfg.GetChainConfig(chainID) if err != nil { @@ -1065,6 +1070,28 @@ func initGenFilesLevel0( clientCtx.Codec.MustUnmarshalJSON(appGenState[wasmxtypes.ModuleName], &wasmxGenState) wasmxGenState.SystemContracts = wasmxtypes.DefaultTimeChainContracts(addrCodec.(mcodec.AccBech32Codec), feeCollectorBech32, mintAddressBech32, int32(minLevelValidators), enableEIDCheck, "{}", chaincfg.BondBaseDenom) wasmxGenState.BootstrapAccountAddress = bootstrapAccount + if consensusLabel != "" { + var found bool + for i := range wasmxGenState.SystemContracts { + role := wasmxGenState.SystemContracts[i].Role + if role == nil || role.Role != wasmxtypes.ROLE_CONSENSUS { + continue + } + if role.Label == consensusLabel { + role.Primary = true + found = true + } else { + role.Primary = false + } + } + if !found { + return fmt.Errorf("consensus-label not found in system contracts: %s", consensusLabel) + } + wasmxGenState.SystemContracts, err = wasmxtypes.FillRoles(wasmxGenState.SystemContracts, addrCodec.(mcodec.AccBech32Codec), feeCollectorBech32) + if err != nil { + return err + } + } appGenState[wasmxtypes.ModuleName] = clientCtx.Codec.MustMarshalJSON(&wasmxGenState) var cosmosmodGenState cosmosmodtypes.GenesisState @@ -1120,103 +1147,6 @@ func initGenFilesLevel0( return nil } -func initGenFilesOnDemandSingle( - clientCtx client.Context, - mbm module.BasicManager, - chainID string, - genAccounts []cosmosmodtypes.GenesisAccount, - genBalances []banktypes.Balance, - genFiles []string, - numValidators int, - minLevelValidators int, - enableEIDCheck bool, -) error { - appGenState := mbm.DefaultGenesis(clientCtx.Codec) - chaincfg, err := mcfg.GetChainConfig(chainID) - if err != nil { - panic(err) - } - - addrCodec := mcodec.NewAccBech32Codec(chaincfg.Bech32PrefixAccAddr, mcodec.NewAddressPrefixedFromAcc) - - var cosmosmodGenState cosmosmodtypes.GenesisState - clientCtx.Codec.MustUnmarshalJSON(appGenState[cosmosmodtypes.ModuleName], &cosmosmodGenState) - - cosmosmodGenState.Bank.DenomInfo = cosmosmodtypes.DefaultBankDenoms(addrCodec.(mcodec.AccBech32Codec), mcfg.DenomUnit, uint32(mcfg.BaseDenomUnit)) - cosmosmodGenState.Bank.Balances = genBalances - cosmosmodGenState.Staking.Params.BondDenom = mcfg.BondBaseDenom - cosmosmodGenState.Staking.BaseDenom = mcfg.BaseDenom - p, _ := math.LegacyNewDecFromStr("0.6") - cosmosmodGenState.Slashing.Params.MinSignedPerWindow = p - cosmosmodGenState.Slashing.Params.DowntimeJailDuration = time.Hour * 2 - cosmosmodGenState.Slashing.Params.SignedBlocksWindow = 40000 - cosmosmodGenState.Distribution.BaseDenom = mcfg.BaseDenom - cosmosmodGenState.Distribution.RewardsDenom = cosmosmodGenState.Bank.DenomInfo[2].Metadata.Base - cosmosmodGenState.Gov.Params.MinDeposit[0].Denom = mcfg.BaseDenom - cosmosmodGenState.Gov.Params.ExpeditedMinDeposit = sdk.NewCoins(sdk.NewCoin(mcfg.BaseDenom, math.NewInt(50000000))) - votingP := time.Minute * 2 - cosmosmodGenState.Gov.Params.VotingPeriod = votingP.Milliseconds() - - // set the accounts in the genesis state - authGenesis, err := cosmosmodtypes.NewAuthGenesisStateFromCosmos(clientCtx.Codec, cosmosmodGenState.Auth.Params, genAccounts) - if err != nil { - return err - } - cosmosmodGenState.Auth = *authGenesis - - // set cosmosmod genesis - appGenState[cosmosmodtypes.ModuleName] = clientCtx.Codec.MustMarshalJSON(&cosmosmodGenState) - - var crisisGenState crisistypes.GenesisState - clientCtx.Codec.MustUnmarshalJSON(appGenState[crisistypes.ModuleName], &crisisGenState) - crisisGenState.ConstantFee.Denom = mcfg.BaseDenom - appGenState[crisistypes.ModuleName] = clientCtx.Codec.MustMarshalJSON(&crisisGenState) - - var mintGenState minttypes.GenesisState - clientCtx.Codec.MustUnmarshalJSON(appGenState[minttypes.ModuleName], &mintGenState) - mintGenState.Params.MintDenom = mcfg.BaseDenom - appGenState[minttypes.ModuleName] = clientCtx.Codec.MustMarshalJSON(&mintGenState) - - feeCollectorBech32, err := addrCodec.BytesToString(cosmosmodtypes.NewModuleAddress(wasmxtypes.FEE_COLLECTOR)) - if err != nil { - panic(err) - } - mintAddressBech32, err := addrCodec.BytesToString(cosmosmodtypes.NewModuleAddress("mint")) - if err != nil { - panic(err) - } - - bootstrapAccount, err := addrCodec.BytesToString(sdk.AccAddress(rand.Bytes(address.Len))) - if err != nil { - panic(err) - } - - var wasmxGenState wasmxtypes.GenesisState - clientCtx.Codec.MustUnmarshalJSON(appGenState[wasmxtypes.ModuleName], &wasmxGenState) - wasmxGenState.SystemContracts = wasmxtypes.DefaultOnDemandSingleContracts(addrCodec.(mcodec.AccBech32Codec), feeCollectorBech32, mintAddressBech32, int32(minLevelValidators), enableEIDCheck, "{}", mcfg.BondBaseDenom) - wasmxGenState.BootstrapAccountAddress = bootstrapAccount - appGenState[wasmxtypes.ModuleName] = clientCtx.Codec.MustMarshalJSON(&wasmxGenState) - - appGenStateJSON, err := json.MarshalIndent(appGenState, "", " ") - if err != nil { - return err - } - - genDoc := types.GenesisDoc{ - ChainID: chainID, - AppState: appGenStateJSON, - Validators: nil, - } - - // generate empty genesis files for each validator and save - for i := 0; i < numValidators; i++ { - if err := genDoc.SaveAs(genFiles[i]); err != nil { - return err - } - } - return nil -} - func collectGenFiles( clientCtx client.Context, txConfig client.TxConfig, diff --git a/wasmx/server/config/config.go b/wasmx/server/config/config.go index db040c81..7eb29305 100644 --- a/wasmx/server/config/config.go +++ b/wasmx/server/config/config.go @@ -148,7 +148,7 @@ func GetConfig(v *viper.Viper) (Config, error) { Ips: v.GetString("network.ips"), Id: v.GetString("network.id"), InitialChains: v.GetStringSlice(networkflags.NetworkInitialChains), - StartEnv: v.GetStringMapString("network.start-env"), + StartEnv: v.GetString("network.start-env"), } return Config{ diff --git a/wasmx/server/start.go b/wasmx/server/start.go index 5bb0f8a6..83da0e4c 100644 --- a/wasmx/server/start.go +++ b/wasmx/server/start.go @@ -581,7 +581,7 @@ func StartInProcess(wasmVmMeta memc.IWasmVmMeta, svrCtx *server.Context, clientC // TODO send cmsrvconfig, ctndcfg with StartNode hook // Read environment variables to pass to consensus - env := msrvconfig.Network.StartEnv + env := networkconfig.ParseStartEnv(msrvconfig.Network.StartEnv) err = networkserver.StartNode(app, logger, app.GetNetworkKeeper(), env) if err != nil { diff --git a/wasmx/x/network/server/config/config.go b/wasmx/x/network/server/config/config.go index 019c764a..216258a4 100644 --- a/wasmx/x/network/server/config/config.go +++ b/wasmx/x/network/server/config/config.go @@ -1,5 +1,7 @@ package config +import "strings" + const ( DefaultNetworkEnable = true DefaultNetworkLeader = false @@ -25,9 +27,9 @@ type NetworkConfig struct { // comma separated list of values Ips string `mapstructure:"ips"` // comma separated list of values for each initialized chain - Id string `mapstructure:"id"` - InitialChains []string `mapstructure:"initial-chains"` - StartEnv map[string]string `mapstructure:"start-env"` + Id string `mapstructure:"id"` + InitialChains []string `mapstructure:"initial-chains"` + StartEnv string `mapstructure:"start-env"` } // DefaultEVMConfig returns the default EVM configuration @@ -40,7 +42,7 @@ func DefaultNetworkConfigConfig() *NetworkConfig { Ips: DefaultNetworkIps, Id: DefaultNodeId, InitialChains: DefaultInitialChains, - StartEnv: map[string]string{}, + StartEnv: "", } } @@ -48,3 +50,24 @@ func (c NetworkConfig) Validate() error { // TODO return nil } + +func ParseStartEnv(raw string) map[string]string { + env := map[string]string{} + for _, pair := range strings.Split(raw, ";") { + pair = strings.TrimSpace(pair) + if pair == "" { + continue + } + parts := strings.SplitN(pair, ":", 2) + if len(parts) != 2 { + continue + } + key := strings.TrimSpace(parts[0]) + value := strings.TrimSpace(parts[1]) + if key == "" { + continue + } + env[key] = value + } + return env +} diff --git a/wasmx/x/network/server/config/toml.go b/wasmx/x/network/server/config/toml.go index 956ccf67..333739a4 100644 --- a/wasmx/x/network/server/config/toml.go +++ b/wasmx/x/network/server/config/toml.go @@ -29,7 +29,7 @@ id = "{{ .Network.Id }}" initial-chains = [{{ range .Network.InitialChains }}{{ printf "%q, " . }}{{end}}] # Start node environment variables passed to consensus hooks. -# e.g. Kayros consensus: "kayros_user_key", "kayros_base_url" -start-env = {{ toPrettyJSON .Network.StartEnv }} +# Format: "kayros_user_key:;kayros_base_url:" +start-env = "{{ .Network.StartEnv }}" ` diff --git a/wasmx/x/wasmx/types/system_contract.go b/wasmx/x/wasmx/types/system_contract.go index af164a82..df958f1b 100644 --- a/wasmx/x/wasmx/types/system_contract.go +++ b/wasmx/x/wasmx/types/system_contract.go @@ -1085,93 +1085,6 @@ func DefaultTimeChainContracts(accBech32Codec mcodec.AccBech32Codec, feeCollecto return precompiles } -func DefaultOnDemandSingleContracts(accBech32Codec mcodec.AccBech32Codec, feeCollectorBech32 string, mintBech32 string, minValidatorCount int32, enableEIDCheck bool, initialPortValues string, bondBaseDenom string) SystemContracts { - - precompiles := StarterPrecompiles() - precompiles = append(precompiles, SimplePrecompiles()...) - precompiles = append(precompiles, InterpreterPrecompiles()...) - precompiles = append(precompiles, BasePrecompiles()...) - precompiles = append(precompiles, EIDPrecompiles()...) - precompiles = append(precompiles, HookPrecompiles()...) - precompiles = append(precompiles, CosmosPrecompiles(feeCollectorBech32, mintBech32, bondBaseDenom)...) - - erc20CodeId := int32(0) - derc20CodeId := int32(0) - for i, p := range precompiles { - if p.Label == ERC20_v001 { - erc20CodeId = int32(i + 1) - } - } - for i, p := range precompiles { - if p.Label == DERC20_v001 { - derc20CodeId = int32(i + 1) - } - } - if erc20CodeId == int32(0) || derc20CodeId == int32(0) { - panic(fmt.Sprintf("erc20 or derc20 contracts not found: erc20CodeId %d, derc20CodeId %d", erc20CodeId, derc20CodeId)) - } - - consensusPrecompiles := ConsensusPrecompiles(minValidatorCount, enableEIDCheck, 0, initialPortValues, erc20CodeId, derc20CodeId) - for i, val := range consensusPrecompiles { - if val.Label == ONDEMAND_SINGLE_v001 { - consensusPrecompiles[i].Role.Primary = true - } - } - precompiles = append(precompiles, consensusPrecompiles...) - precompiles = append(precompiles, MultiChainPrecompiles(minValidatorCount, enableEIDCheck, erc20CodeId, derc20CodeId)...) - precompiles = append(precompiles, ChatPrecompiles()...) - // precompiles = append(precompiles, SpecialPrecompiles()...) - - precompiles, err := FillRoles(precompiles, accBech32Codec, feeCollectorBech32) - if err != nil { - panic(err) - } - return precompiles -} - -func DefaultKayrosP2PContracts(accBech32Codec mcodec.AccBech32Codec, feeCollectorBech32 string, mintBech32 string, minValidatorCount int32, enableEIDCheck bool, initialPortValues string, bondBaseDenom string) SystemContracts { - - precompiles := StarterPrecompiles() - precompiles = append(precompiles, SimplePrecompiles()...) - precompiles = append(precompiles, InterpreterPrecompiles()...) - precompiles = append(precompiles, BasePrecompiles()...) - precompiles = append(precompiles, EIDPrecompiles()...) - precompiles = append(precompiles, HookPrecompiles()...) - precompiles = append(precompiles, CosmosPrecompiles(feeCollectorBech32, mintBech32, bondBaseDenom)...) - - erc20CodeId := int32(0) - derc20CodeId := int32(0) - for i, p := range precompiles { - if p.Label == ERC20_v001 { - erc20CodeId = int32(i + 1) - } - } - for i, p := range precompiles { - if p.Label == DERC20_v001 { - derc20CodeId = int32(i + 1) - } - } - if erc20CodeId == int32(0) || derc20CodeId == int32(0) { - panic(fmt.Sprintf("erc20 or derc20 contracts not found: erc20CodeId %d, derc20CodeId %d", erc20CodeId, derc20CodeId)) - } - - consensusPrecompiles := ConsensusPrecompiles(minValidatorCount, enableEIDCheck, 0, initialPortValues, erc20CodeId, derc20CodeId) - for i, val := range consensusPrecompiles { - if val.Label == CONSENSUS_KAYROSP2P { - consensusPrecompiles[i].Role.Primary = true - } - } - precompiles = append(precompiles, consensusPrecompiles...) - precompiles = append(precompiles, MultiChainPrecompiles(minValidatorCount, enableEIDCheck, erc20CodeId, derc20CodeId)...) - precompiles = append(precompiles, ChatPrecompiles()...) - - precompiles, err := FillRoles(precompiles, accBech32Codec, feeCollectorBech32) - if err != nil { - panic(err) - } - return precompiles -} - func (p SystemContract) Validate() error { if err := validateString(p.Label); err != nil { return err From e689d0214b82604b078e860543babbd6b22d3d74 Mon Sep 17 00:00:00 2001 From: Loredana Cirstea Date: Tue, 20 Jan 2026 13:09:30 +0100 Subject: [PATCH 10/10] add kayros verifier contract and verifier role --- .github/workflows/test.yml | 8 + Makefile | 3 +- go.work | 1 + tests/kayros/keeper_test.go | 87 ++++ tests/kayros/verifier_test.go | 165 ++++++++ .../tinygo/wasmx-env/lib/wasmx_wrap.go | 5 + .../tinygo/wasmx-kayros-verifier/README.md | 15 + .../tinygo/wasmx-kayros-verifier/cmd/main.go | 155 +++++++ .../tinygo/wasmx-kayros-verifier/go.mod | 23 ++ .../tinygo/wasmx-kayros-verifier/go.sum | 12 + .../lib/kayros.go | 234 +++++------ .../tinygo/wasmx-kayros-verifier/lib/proof.go | 388 ++++++++++++++++++ .../tinygo/wasmx-kayros-verifier/lib/types.go | 229 +++++++++++ .../tinygo/wasmx-kayros-verifier/lib/utils.go | 71 ++++ .../tinygo/wasmx-kayrosp2p-lib/go.mod | 5 +- .../tinygo/wasmx-kayrosp2p-lib/lib/actions.go | 30 +- .../tinygo/wasmx-kayrosp2p-lib/lib/block.go | 2 +- .../wasmx-kayrosp2p-lib/lib/kayros_alias.go | 18 + .../tinygo/wasmx-kayrosp2p-lib/lib/types.go | 66 --- .../tinygo/wasmx-kayrosp2p-lib/lib/utils.go | 48 --- .../wasmx-kayrosp2p-ondemand-lib/go.mod | 3 + .../x/wasmx/types/kayros_verifier_schema.json | 318 ++++++++++++++ wasmx/x/wasmx/types/system_contract.go | 32 ++ wasmx/x/wasmx/types/vm.go | 2 + .../vm/precompiles/71.kayrosp2p_library.wasm | Bin 498827 -> 498778 bytes .../72.kayrosp2p_ondemand_library.wasm | Bin 500384 -> 500344 bytes .../precompiles/75.kayros_verifier_0.0.1.wasm | Bin 0 -> 323675 bytes wasmx/x/wasmx/vm/precompiles/precompiles.go | 5 + 28 files changed, 1680 insertions(+), 245 deletions(-) create mode 100644 tests/kayros/keeper_test.go create mode 100644 tests/kayros/verifier_test.go create mode 100644 tests/testdata/tinygo/wasmx-kayros-verifier/README.md create mode 100644 tests/testdata/tinygo/wasmx-kayros-verifier/cmd/main.go create mode 100644 tests/testdata/tinygo/wasmx-kayros-verifier/go.mod create mode 100644 tests/testdata/tinygo/wasmx-kayros-verifier/go.sum rename tests/testdata/tinygo/{wasmx-kayrosp2p-lib => wasmx-kayros-verifier}/lib/kayros.go (57%) create mode 100644 tests/testdata/tinygo/wasmx-kayros-verifier/lib/proof.go create mode 100644 tests/testdata/tinygo/wasmx-kayros-verifier/lib/types.go create mode 100644 tests/testdata/tinygo/wasmx-kayros-verifier/lib/utils.go create mode 100644 tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/kayros_alias.go create mode 100644 wasmx/x/wasmx/types/kayros_verifier_schema.json create mode 100644 wasmx/x/wasmx/vm/precompiles/75.kayros_verifier_0.0.1.wasm diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3894a8ad..314573d6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,6 +19,8 @@ jobs: env: GOPRIVATE: github.com/loredanacirstea* GH_ACCESS_TOKEN: ${{ secrets.GH_ACCESS_TOKEN }} + KAYROS_BASE_URL: ${{ secrets.KAYROS_BASE_URL }} + KAYROS_API_KEY: ${{ secrets.KAYROS_API_KEY }} steps: - name: Checkout code @@ -61,3 +63,9 @@ jobs: go test -failfast=false -timeout 2000s -v ./tests/vmhttp -wasm-runtime=wazero go test -failfast=false -timeout 2000s -v ./tests/vmemail -wasm-runtime=wazero # go test -failfast=false -timeout 2000s -v ./tests/vmpostgresql -wasm-runtime=wazero + + if [ -n "${KAYROS_BASE_URL}" ]; then + go test -failfast=false -timeout 3000s -v -run KeeperTestSuite/TestWasmxSimpleStorage ./tests/wasmx -wasm-runtime=wazero -kayros_user_key="${KAYROS_API_KEY}" -kayros_base_url="${KAYROS_BASE_URL}" -consensus-label=consensus_kayrosp2p_ondemand_0.0.1 + else + echo "Skipping Kayros test (KAYROS_BASE_URL not set)" + fi diff --git a/Makefile b/Makefile index dba1b49f..f672a442 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,8 @@ TINYGO_TARGETS := \ wasmx-raftp2p-lib:36.raftp2p_library.wasm \ wasmx-ondemand-single-lib:65.wasmx_ondemand_single_library.wasm \ wasmx-kayrosp2p-lib:71.kayrosp2p_library.wasm \ - wasmx-kayrosp2p-ondemand-lib:72.kayrosp2p_ondemand_library.wasm + wasmx-kayrosp2p-ondemand-lib:72.kayrosp2p_ondemand_library.wasm \ + wasmx-kayros-verifier:75.kayros_verifier_0.0.1.wasm # wasmx-gov:35.gov_0.0.1.wasm \ # wasmx-gov-continuous:37.gov_cont_0.0.1.wasm \ diff --git a/go.work b/go.work index 3b5ddba6..79ccfe75 100644 --- a/go.work +++ b/go.work @@ -27,6 +27,7 @@ use ( ./tests/testdata/tinygo/wasmx-gov ./tests/testdata/tinygo/wasmx-gov-continuous ./tests/testdata/tinygo/wasmx-multichain-registry + ./tests/testdata/tinygo/wasmx-kayros-verifier // tests ./tests/testdata/tinygo/emailchain ./tests/testdata/tinygo/add diff --git a/tests/kayros/keeper_test.go b/tests/kayros/keeper_test.go new file mode 100644 index 00000000..2d6004bd --- /dev/null +++ b/tests/kayros/keeper_test.go @@ -0,0 +1,87 @@ +package keeper_test + +import ( + "flag" + "os" + "testing" + + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" + + "github.com/stretchr/testify/suite" + + //nolint + + wt "github.com/loredanacirstea/wasmx/testutil/wasmx" + + wazero "github.com/loredanacirstea/wasmx-wazero" + + ut "github.com/loredanacirstea/mythos-tests/utils" +) + +var ( + wasmRuntime string + runKnownFixme bool +) + +// TestMain is the main entry point for the tests. +func TestMain(m *testing.M) { + flag.StringVar(&wasmRuntime, "wasm-runtime", "default", "Set the wasm runtime (e.g. wasmedge, wazero)") + flag.BoolVar(&runKnownFixme, "run-fixme", false, "Run skipped fixme tests") + + // Parse the flags. Only flags after `--` in `go test` command line will be passed here. + flag.Parse() + + os.Exit(m.Run()) +} + +// KeeperTestSuite is a testing suite to test keeper functions +type KeeperTestSuite struct { + wt.KeeperTestSuite +} + +var s *KeeperTestSuite + +func (suite *KeeperTestSuite) SetupSuite() { + suite.MaxBlockGas = 100_000_000_000 + suite.SystemContractsModify = ut.SystemContractsModify(wasmRuntime) + mydir, err := os.Getwd() + if err != nil { + panic(err) + } + + switch wasmRuntime { + case "wasmedge": + // suite.WasmVmMeta = wasmedge.WasmEdgeVmMeta{} + // suite.CompiledCacheDir = ut.GetCompiledCacheDir(mydir, "wasmedge") + panic("wasmedge not activated") + default: + // default runtime + suite.WasmVmMeta = wazero.NewWazeroVmMeta() + suite.CompiledCacheDir = ut.GetCompiledCacheDir(mydir, "wazero") + } + + suite.SetupChains() +} + +// TestKeeperTestSuite runs all the tests within this package. +func TestKeeperTestSuite(t *testing.T) { + s = new(KeeperTestSuite) + suite.Run(t, s) + + // Run Ginkgo integration tests + RegisterFailHandler(Fail) + RunSpecs(t, "Keeper Suite") +} + +func SkipFixmeTests(t *testing.T, name string) { + if !runKnownFixme { + t.Skipf("TODO: fixme %s", name) + } +} + +type VerifyProofRequest struct { + Data string `json:"data"` // base64 + DataType string `json:"data_type"` // hex + HashAlgo string `json:"hash_algo"` +} diff --git a/tests/kayros/verifier_test.go b/tests/kayros/verifier_test.go new file mode 100644 index 00000000..209b9478 --- /dev/null +++ b/tests/kayros/verifier_test.go @@ -0,0 +1,165 @@ +package keeper_test + +import ( + "encoding/base64" + "encoding/hex" + "encoding/json" + + "github.com/loredanacirstea/wasmx/x/wasmx/types" +) + +func (suite *KeeperTestSuite) TestKayrosVerifier() { + appA := s.AppContext() + verifierAddr, err := appA.App.WasmxKeeper.GetAddressOrRole(appA.Context(), types.ROLE_VERIFIER) + suite.Require().NoError(err) + + sender := suite.GetRandomAccount() + + apiBaseUrl := "" + apiUserKey := "" + if suite.StartNodeEnv != nil { + apiBaseUrl = suite.StartNodeEnv["kayros_base_url"] + apiUserKey = suite.StartNodeEnv["kayros_user_key"] + } + + if apiBaseUrl == "" || apiUserKey == "" { + suite.T().Skip("SKIPPING ... set kayros_base_url and kayros_user_key for TestKayrosVerifier") + } + + for _, pair := range KAYROS_TEST_BY_DATA { + dataTypeHex := pair[0] + dataHashHex := pair[1] + dataType, err := hex.DecodeString(dataTypeHex) + suite.Require().NoError(err) + dataHash, err := hex.DecodeString(dataHashHex) + suite.Require().NoError(err) + + verifyProofHashReq := map[string]any{ + "verify_proof_hash": map[string]any{ + "data_type": dataType, + "data_hash": dataHash, + "api_base_url": apiBaseUrl, + "api_user_key": apiUserKey, + }, + } + msg, err := json.Marshal(verifyProofHashReq) + suite.Require().NoError(err) + res := appA.WasmxQueryRaw(sender, verifierAddr, types.WasmxExecutionMessage{Data: msg}, nil, nil) + + var verifyResp struct { + Ok bool `json:"ok"` + Error string `json:"error"` + } + suite.Require().NoError(json.Unmarshal(res, &verifyResp)) + suite.Require().True(verifyResp.Ok, verifyResp.Error) + + if KAYROS_TOPLEVEL_HASH != "" { + verifyProofHashReq = map[string]any{ + "verify_proof_hash_with_inclusion": map[string]any{ + "data_type": dataType, + "data_hash": dataHash, + "hash_algo": "sha256", + "trusted_root_hash": KAYROS_TOPLEVEL_HASH, + "trusted_level": KAYROS_TOPLEVEL_LEVEL, + "trusted_position": KAYROS_TOPLEVEL_POSITION, + "api_base_url": apiBaseUrl, + "api_user_key": apiUserKey, + }, + } + msg, err = json.Marshal(verifyProofHashReq) + suite.Require().NoError(err) + res = appA.WasmxQueryRaw(sender, verifierAddr, types.WasmxExecutionMessage{Data: msg}, nil, nil) + + verifyResp = struct { + Ok bool `json:"ok"` + Error string `json:"error"` + }{} + suite.Require().NoError(json.Unmarshal(res, &verifyResp)) + suite.Require().True(verifyResp.Ok, verifyResp.Error) + } + } + + for _, proof := range KAYROS_TEST_PROOFS { + dataType, err := hex.DecodeString(proof.DataType) + suite.Require().NoError(err) + data, err := base64.StdEncoding.DecodeString(proof.Data) + suite.Require().NoError(err) + + verifyProofReq := map[string]any{ + "verify_proof": map[string]any{ + "data": data, + "data_type": dataType, + "hash_algo": proof.HashAlgo, + "api_base_url": apiBaseUrl, + "api_user_key": apiUserKey, + }, + } + msg, err := json.Marshal(verifyProofReq) + suite.Require().NoError(err) + res := appA.WasmxQueryRaw(sender, verifierAddr, types.WasmxExecutionMessage{Data: msg}, nil, nil) + + var verifyResp struct { + Ok bool `json:"ok"` + Error string `json:"error"` + } + suite.Require().NoError(json.Unmarshal(res, &verifyResp)) + suite.Require().True(verifyResp.Ok, verifyResp.Error) + + if KAYROS_TOPLEVEL_HASH != "" { + verifyProofReq = map[string]any{ + "verify_proof_with_inclusion": map[string]any{ + "data": data, + "data_type": dataType, + "hash_algo": proof.HashAlgo, + "trusted_root_hash": KAYROS_TOPLEVEL_HASH, + "trusted_level": KAYROS_TOPLEVEL_LEVEL, + "trusted_position": KAYROS_TOPLEVEL_POSITION, + "api_base_url": apiBaseUrl, + "api_user_key": apiUserKey, + }, + } + msg, err = json.Marshal(verifyProofReq) + suite.Require().NoError(err) + res = appA.WasmxQueryRaw(sender, verifierAddr, types.WasmxExecutionMessage{Data: msg}, nil, nil) + + verifyResp = struct { + Ok bool `json:"ok"` + Error string `json:"error"` + }{} + suite.Require().NoError(json.Unmarshal(res, &verifyResp)) + suite.Require().True(verifyResp.Ok, verifyResp.Error) + } + } +} + +var KAYROS_TEST_BY_HASH = []string{ + "c883af9b3ffc8261f6385e33dcd0bc825de1480dad4b5e9c9425c45c66655065", + "b605d60a6a531c57eba104a0e28a8be111e95d7a88a257066274de688eec1216", +} + +var KAYROS_TEST_BY_DATA = [][]string{ + { + "7761736d785f6d7974686f735f373030312d315f313736373039353338333930", + "374f1b87a48721c2a3f4d0777a6848e23edb13d0209a69f65330ee7ae84d5e9c", + }, +} + +// var KAYROS_TOPLEVEL_HASH = "be475ef98de5dcba176730b044a32239dbe5e8bb4f2172d5d8c555907eb445e0" +// var KAYROS_TOPLEVEL_LEVEL = 1 +// var KAYROS_TOPLEVEL_POSITION = 10 + +var KAYROS_TOPLEVEL_HASH = "" +var KAYROS_TOPLEVEL_LEVEL = -1 +var KAYROS_TOPLEVEL_POSITION = -1 + +var KAYROS_TEST_PROOFS = []VerifyProofRequest{ + { + Data: "CsoBCscBCiMvbXl0aG9zLndhc214LnYxLk1zZ0V4ZWN1dGVDb250cmFjdBKfAQotbXl0aG9zMTdzY2NsMDk1MzJod2g5eTRzeTlxNXNsd216ajdrZnBhNDJ5czY2Ei1teXRob3MxN2syMGVxanJ0czNlaDZteGtxcXNraHp2NGtqYWUwNTNrYzhkbGQaP3siZGF0YSI6ImV5SnpaWFFpT25zaWEyVjVJam9pYUdWc2JHOGlMQ0oyWVd4MVpTSTZJbk5oYlcxNUluMTkifRJvClAKRgofL2Nvc21vcy5jcnlwdG8uc2VjcDI1NmsxLlB1YktleRIjCiECqkwoU7+JW3gfOgr6as2ZJZD6Vo2Ob7H8sgOIIUOIrasSBAoCCAEYAxIbChMKBGFteXQSCzEwMDAwMDAwMDAwEICU69wDGkAMfcSxXine4wbRzIm1edq7DzGF089DRVHmeVI159CfqlcIS8adRZVD5ndJ4fFpUfkOjsg5DhLmQvyP+QGTynI0", + DataType: "7761736d785f74785f6d7974686f735f373030312d315f313736383834393037", + HashAlgo: "sha256", + // txhash + // 9bfbd26d8e9cc4f69eca1ffadc2e5db2891e0781efad9ec969e0cf980208eb10 + // kayros hash + // 5dbff8d307b6576610edea33ef2df6e53c93d9849b76f98b2665f59305d8dd14 + }, +} diff --git a/tests/testdata/tinygo/wasmx-env/lib/wasmx_wrap.go b/tests/testdata/tinygo/wasmx-env/lib/wasmx_wrap.go index 4d2bb7aa..8b3f099a 100644 --- a/tests/testdata/tinygo/wasmx-env/lib/wasmx_wrap.go +++ b/tests/testdata/tinygo/wasmx-env/lib/wasmx_wrap.go @@ -330,6 +330,11 @@ func Sha256(data []byte) []byte { return out } +func Keccak256(data []byte) []byte { + out := utils.PackedPtrToBytes(Keccak256_(utils.BytesToPackedPtr(data))) + return out +} + func MerkleHash(slices []string) []byte { payload := struct { Slices []string `json:"slices"` diff --git a/tests/testdata/tinygo/wasmx-kayros-verifier/README.md b/tests/testdata/tinygo/wasmx-kayros-verifier/README.md new file mode 100644 index 00000000..601e5930 --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayros-verifier/README.md @@ -0,0 +1,15 @@ +# wasmx-kayros-verifier + +TinyGo library that verifies Kayros records for wasmx consensus. + +What it does +- Validates record hash: `hash(prev_hash || data_type || data_item) == hash_item`. +- Validates chain linkage: `prev_hash` equals previous record `hash_item`. +- Validates timestamp and UUID consistency. +- Validates level rollups using Kayros level hashes. + +Kayros levels +- Level 1 hashes roll up base records in groups of 256. +- Level 2 hashes roll up Level 1 hashes, and so on. +- To verify inclusion, supply the hashes used at each level (per position) and compare + the computed rollup to the Kayros level hash. diff --git a/tests/testdata/tinygo/wasmx-kayros-verifier/cmd/main.go b/tests/testdata/tinygo/wasmx-kayros-verifier/cmd/main.go new file mode 100644 index 00000000..2754dc3b --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayros-verifier/cmd/main.go @@ -0,0 +1,155 @@ +package main + +import ( + "encoding/hex" + "encoding/json" + + wasmx "github.com/loredanacirstea/wasmx-env/lib" + verifier "github.com/loredanacirstea/wasmx-kayros-verifier/lib" +) + +//go:wasm-module wasmx +//export memory_ptrlen_i64_1 +func Memory_ptrlen_i64_1() {} + +//go:wasm-module wasmx +//export wasmx_env_i64_2 +func Wasmx_env_i64_2() {} + +//go:wasm-module httpclient +//export wasmx_httpclient_i64_1 +func Wasmx_httpclient_i64_1() {} + +func respond(ok bool, errMsg string) { + resp := verifier.VerifyResponse{Ok: ok, Error: errMsg} + bz, err := json.Marshal(resp) + if err != nil { + wasmx.Revert([]byte("failed to marshal response: " + err.Error())) + } + wasmx.Finish(bz) +} + +func configFrom(baseUrl string, userKey string) verifier.KayrosConfig { + return verifier.KayrosConfig{ + ApiBaseUrl: baseUrl, + ApiUserKey: userKey, + } +} + +//go:wasm-module wasmx-kayros-verifier +//export instantiate +func Instantiate() { + databz := wasmx.GetCallData() + if len(databz) == 0 { + wasmx.Finish([]byte{}) + return + } + var payload map[string]any + if err := json.Unmarshal(databz, &payload); err != nil { + wasmx.Revert([]byte("invalid call data: " + err.Error() + ": " + string(databz))) + } + wasmx.Finish([]byte{}) +} + +func main() { + databz := wasmx.GetCallData() + calld := &verifier.Calldata{} + if err := json.Unmarshal(databz, calld); err != nil { + wasmx.Revert([]byte("invalid call data: " + err.Error() + ": " + string(databz))) + } + + switch { + case calld.VerifyProof != nil: + req := *calld.VerifyProof + if len(req.Data) == 0 { + respond(false, "missing data") + return + } + dataTypeHex := wasmx.HexString(hex.EncodeToString(req.DataType)) + ok, errMsg := verifier.VerifyProof(req.Data, dataTypeHex, req.HashAlgo, configFrom(req.ApiBaseUrl, req.ApiUserKey)) + respond(ok, errMsg) + return + case calld.VerifyProofWithInclusion != nil: + req := *calld.VerifyProofWithInclusion + if len(req.Data) == 0 { + respond(false, "missing data") + return + } + dataTypeHex := wasmx.HexString(hex.EncodeToString(req.DataType)) + ok, errMsg := verifier.VerifyProofWithInclusion( + req.Data, + dataTypeHex, + req.HashAlgo, + req.TrustedRootHash, + req.TrustedLevel, + req.TrustedPosition, + configFrom(req.ApiBaseUrl, req.ApiUserKey), + ) + respond(ok, errMsg) + return + case calld.VerifyProofHash != nil: + req := *calld.VerifyProofHash + dataTypeHex := wasmx.HexString(hex.EncodeToString(req.DataType)) + dataHashHex := wasmx.HexString(hex.EncodeToString(req.DataHash)) + ok, errMsg := verifier.VerifyProofHash(dataTypeHex, dataHashHex, configFrom(req.ApiBaseUrl, req.ApiUserKey)) + respond(ok, errMsg) + return + case calld.VerifyProofHashWithInclusion != nil: + req := *calld.VerifyProofHashWithInclusion + dataTypeHex := wasmx.HexString(hex.EncodeToString(req.DataType)) + dataHashHex := wasmx.HexString(hex.EncodeToString(req.DataHash)) + ok, errMsg := verifier.VerifyProofHashWithInclusion( + dataTypeHex, + dataHashHex, + req.HashAlgo, + req.TrustedRootHash, + req.TrustedLevel, + req.TrustedPosition, + configFrom(req.ApiBaseUrl, req.ApiUserKey), + ) + respond(ok, errMsg) + return + case calld.VerifyRecordHash != nil: + req := *calld.VerifyRecordHash + ok, errMsg := verifier.VerifyRecordHash(&req.Record, req.HashAlgo) + respond(ok, errMsg) + return + case calld.VerifyRecordChainLink != nil: + req := *calld.VerifyRecordChainLink + ok, errMsg := verifier.VerifyRecordChainLink(&req.Record, &req.Prev) + respond(ok, errMsg) + return + case calld.VerifyRecordTimestamp != nil: + req := *calld.VerifyRecordTimestamp + ok, errMsg := verifier.VerifyRecordTimestamp(&req.Record) + respond(ok, errMsg) + return + case calld.VerifyRecordUUID != nil: + req := *calld.VerifyRecordUUID + ok, errMsg := verifier.VerifyRecordUUID(&req.Record) + respond(ok, errMsg) + return + case calld.VerifyLevelProof != nil: + req := *calld.VerifyLevelProof + ok, errMsg := verifier.VerifyLevelProof(configFrom(req.ApiBaseUrl, req.ApiUserKey), req.Proof, req.HashAlgo) + respond(ok, errMsg) + return + case calld.VerifyProofPath != nil: + req := *calld.VerifyProofPath + ok, errMsg := verifier.VerifyProofPath(&req.Proof, req.HashAlgo) + respond(ok, errMsg) + return + case calld.VerifyKayrosRecord != nil: + req := *calld.VerifyKayrosRecord + ok, errMsg := verifier.VerifyKayrosRecord(&req.Record, &req.Prev, req.HashAlgo, req.LevelProofs, configFrom(req.ApiBaseUrl, req.ApiUserKey)) + respond(ok, errMsg) + return + case calld.VerifyKayrosRecordWithProof != nil: + req := *calld.VerifyKayrosRecordWithProof + ok, errMsg := verifier.VerifyKayrosRecordWithProof(&req.Record, &req.Prev, &req.Proof, req.HashAlgo) + respond(ok, errMsg) + return + } + + wasmx.Revert(append([]byte("invalid function call data: "), databz...)) +} diff --git a/tests/testdata/tinygo/wasmx-kayros-verifier/go.mod b/tests/testdata/tinygo/wasmx-kayros-verifier/go.mod new file mode 100644 index 00000000..60876ca5 --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayros-verifier/go.mod @@ -0,0 +1,23 @@ +module github.com/loredanacirstea/wasmx-kayros-verifier + +go 1.24 + +toolchain go1.24.4 + +require github.com/loredanacirstea/wasmx-env v0.0.0 + +require github.com/loredanacirstea/wasmx-env-httpclient v0.0.0 + +require github.com/loredanacirstea/wasmx-env-utils v0.0.0 // indirect + +require cosmossdk.io/math v1.5.3 // indirect + +replace github.com/loredanacirstea/wasmx-env v0.0.0 => ../wasmx-env + +replace github.com/loredanacirstea/wasmx-env-httpclient v0.0.0 => ../wasmx-env-httpclient + +replace github.com/loredanacirstea/wasmx-fsm v0.0.0 => ../wasmx-fsm + +replace github.com/loredanacirstea/wasmx-env-utils v0.0.0 => ../wasmx-env-utils + +replace github.com/loredanacirstea/wasmx-utils v0.0.0 => ../wasmx-utils diff --git a/tests/testdata/tinygo/wasmx-kayros-verifier/go.sum b/tests/testdata/tinygo/wasmx-kayros-verifier/go.sum new file mode 100644 index 00000000..18cf05fc --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayros-verifier/go.sum @@ -0,0 +1,12 @@ +cosmossdk.io/math v1.5.3 h1:WH6tu6Z3AUCeHbeOSHg2mt9rnoiUWVWaQ2t6Gkll96U= +cosmossdk.io/math v1.5.3/go.mod h1:uqcZv7vexnhMFJF+6zh9EWdm/+Ylyln34IvPnBauPCQ= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/kayros.go b/tests/testdata/tinygo/wasmx-kayros-verifier/lib/kayros.go similarity index 57% rename from tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/kayros.go rename to tests/testdata/tinygo/wasmx-kayros-verifier/lib/kayros.go index ba5584ce..eb7fda7e 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/kayros.go +++ b/tests/testdata/tinygo/wasmx-kayros-verifier/lib/kayros.go @@ -1,11 +1,9 @@ package lib import ( - "encoding/hex" "encoding/json" "fmt" "net/http" - "strconv" httpclient "github.com/loredanacirstea/wasmx-env-httpclient" wasmx "github.com/loredanacirstea/wasmx-env/lib" @@ -23,61 +21,26 @@ func NewKayrosClient(config KayrosConfig) *KayrosClient { } } -// getDataType returns the formatted data_type for Kayros API -// Format: "wasmx_[_]" converted to hex and right-padded to 32 bytes -func (kc *KayrosClient) getDataType() wasmx.HexString { - chainId := wasmx.GetChainId() - dataType := fmt.Sprintf("wasmx_tx_%s", chainId) - - // Append data_type_id if provided - dataTypeId := sGet(CTX_DATA_TYPE_ID) - if dataTypeId != "" { - dataType = fmt.Sprintf("%s_%s", dataType, dataTypeId) - } - - // Convert to bytes and right-pad to 32 bytes - dataTypeBytes := make([]byte, 32) - copy(dataTypeBytes, []byte(dataType)) - - // Return as hex string - return wasmx.HexString(hex.EncodeToString(dataTypeBytes)) -} - -// getBlockDataType returns the data_type for block timestamp synchronization -// Format: "wasmx_[_]_blocks" converted to hex and right-padded to 32 bytes -func (kc *KayrosClient) getBlockDataType() wasmx.HexString { - chainId := wasmx.GetChainId() - dataType := fmt.Sprintf("wasmx_b_%s", chainId) - - // Append data_type_id if provided - dataTypeId := sGet(CTX_DATA_TYPE_ID) - if dataTypeId != "" { - dataType = fmt.Sprintf("%s_%s", dataType, dataTypeId) - } - - // Convert to bytes and right-pad to 32 bytes - dataTypeBytes := make([]byte, 32) - copy(dataTypeBytes, []byte(dataType)) - - // Return as hex string - return wasmx.HexString(hex.EncodeToString(dataTypeBytes)) -} - // makeRequest performs an HTTP GET request to the Kayros API func (kc *KayrosClient) makeRequest(endpoint string) ([]byte, error) { url := fmt.Sprintf("%s%s", kc.config.ApiBaseUrl, endpoint) + headers := http.Header{ + "Content-Type": []string{"application/json"}, + } + if kc.config.ApiUserKey != "" { + headers["X-User-Key"] = []string{kc.config.ApiUserKey} + } + req := httpclient.HttpRequestWrap{ Request: httpclient.HttpRequest{ Method: "GET", Url: url, - Header: http.Header{ - "Content-Type": []string{"application/json"}, - }, - Data: []byte{}, + Header: headers, + Data: []byte{}, }, ResponseHandler: httpclient.ResponseHandler{ - MaxSize: 1024 * 1024, // 1MB max response size + MaxSize: 1024 * 1024, FilePath: "", }, } @@ -87,21 +50,18 @@ func (kc *KayrosClient) makeRequest(endpoint string) ([]byte, error) { if resp.Error != "" { return nil, fmt.Errorf("HTTP request failed: %s", resp.Error) } - if resp.Data.StatusCode != 200 { return nil, fmt.Errorf("HTTP request returned status %d: %s", resp.Data.StatusCode, resp.Data.Status) } - return resp.Data.Data, nil } // GetRecordByDataItem retrieves a Kayros record by data_type and data_item (transaction hash) -func (kc *KayrosClient) GetRecordByDataItem(txHash wasmx.HexString) (*KayrosRecord, error) { - return kc.GetRecord(kc.getDataType(), txHash) +func (kc *KayrosClient) GetRecordByDataItem(dataType wasmx.HexString, txHash wasmx.HexString) (*KayrosRecord, error) { + return kc.GetRecord(dataType, txHash) } -// GetRecordByHash retrieves a Kayros record by hash_item (Kayros unique ID) -// GET /api/database/record-by-hash?hash_item= +// GetRecordByHash retrieves a Kayros record by hash_item func (kc *KayrosClient) GetRecordByHash(hashItem string) (*KayrosRecord, error) { endpoint := fmt.Sprintf("/api/database/record-by-hash?hash_item=%s", hashItem) @@ -114,19 +74,16 @@ func (kc *KayrosClient) GetRecordByHash(hashItem string) (*KayrosRecord, error) if err := json.Unmarshal(respData, &kayrosResp); err != nil { return nil, fmt.Errorf("failed to unmarshal Kayros response: %w", err) } - if !kayrosResp.Success { return nil, fmt.Errorf("Kayros API error: %s", kayrosResp.Message) } - return &kayrosResp.Data, nil } // GetRecordWithPrev retrieves a Kayros record with its previous hash by UUID -// GET /api/database/record-with-prev?data_type=&uuid= -func (kc *KayrosClient) GetRecordWithPrev(uuid string) (*KayrosRecord, error) { +func (kc *KayrosClient) GetRecordWithPrev(dataType wasmx.HexString, uuid string) (*KayrosRecord, error) { endpoint := fmt.Sprintf("/api/database/record-with-prev?data_type=%s&uuid=%s", - kc.getDataType(), uuid) + dataType, uuid) respData, err := kc.makeRequest(endpoint) if err != nil { @@ -137,19 +94,16 @@ func (kc *KayrosClient) GetRecordWithPrev(uuid string) (*KayrosRecord, error) { if err := json.Unmarshal(respData, &kayrosResp); err != nil { return nil, fmt.Errorf("failed to unmarshal Kayros response: %w", err) } - if !kayrosResp.Success { return nil, fmt.Errorf("Kayros API error: %s", kayrosResp.Message) } - return &kayrosResp.Data, nil } // GetRecordsFromPrev retrieves multiple Kayros records from a previous UUID with a limit -// GET /api/database/records-since-prev?data_type=&uuid=&limit= -func (kc *KayrosClient) GetRecordsFromPrev(uuid string, limit int) ([]KayrosRecord, error) { +func (kc *KayrosClient) GetRecordsFromPrev(dataType wasmx.HexString, uuid string, limit int) ([]KayrosRecord, error) { endpoint := fmt.Sprintf("/api/database/records-since-prev?data_type=%s&uuid=%s&limit=%d", - kc.getDataType(), uuid, limit) + dataType, uuid, limit) respData, err := kc.makeRequest(endpoint) if err != nil { @@ -160,11 +114,9 @@ func (kc *KayrosClient) GetRecordsFromPrev(uuid string, limit int) ([]KayrosReco if err := json.Unmarshal(respData, &kayrosResp); err != nil { return nil, fmt.Errorf("failed to unmarshal Kayros response: %w", err) } - if !kayrosResp.Success { return nil, fmt.Errorf("Kayros API error: %s", kayrosResp.Message) } - return kayrosResp.Data.Records, nil } @@ -172,8 +124,7 @@ func (kc *KayrosClient) GetRecordsFromPrev(uuid string, limit int) ([]KayrosReco func (kc *KayrosClient) makePostRequest(endpoint string, body []byte) ([]byte, error) { url := fmt.Sprintf("%s%s", kc.config.ApiBaseUrl, endpoint) - // Get user key from context - userKey := sGet("kayros_user_key") + userKey := kc.config.ApiUserKey req := httpclient.HttpRequestWrap{ Request: httpclient.HttpRequest{ @@ -186,7 +137,7 @@ func (kc *KayrosClient) makePostRequest(endpoint string, body []byte) ([]byte, e Data: body, }, ResponseHandler: httpclient.ResponseHandler{ - MaxSize: 1024 * 1024, // 1MB max response size + MaxSize: 1024 * 1024, FilePath: "", }, } @@ -197,7 +148,6 @@ func (kc *KayrosClient) makePostRequest(endpoint string, body []byte) ([]byte, e if resp.Error != "" { return nil, fmt.Errorf("HTTP POST request failed: %s", resp.Error) } - if resp.Data.StatusCode != 200 && resp.Data.StatusCode != 201 { return nil, fmt.Errorf("HTTP POST request returned status %d: %s", resp.Data.StatusCode, resp.Data.Status) } @@ -207,68 +157,48 @@ func (kc *KayrosClient) makePostRequest(endpoint string, body []byte) ([]byte, e } // GetBlockTimestamp retrieves or registers a block hash with Kayros to get a deterministic timestamp -// This ensures all validators use the same timestamp for the same block -// Returns the Kayros timestamp for the block in RFC3339Nano format -func (kc *KayrosClient) GetBlockTimestamp(blockHashHex wasmx.HexString) (string, error) { - // First, try to get the existing record - record, err := kc.GetBlockRecord(blockHashHex) +func (kc *KayrosClient) GetBlockTimestamp(blockDataType wasmx.HexString, blockHashHex wasmx.HexString) (string, error) { + record, err := kc.GetBlockRecord(blockDataType, blockHashHex) if err == nil && record != nil { - // Record exists, extract timestamp from TimeUUID for RFC3339Nano format timestamp, err := TimeuuidHexToTimestamp(record.UuidHex) if err != nil { return "", fmt.Errorf("failed to extract timestamp from existing record UUID: %w: %s", err, record.UuidHex) } - LoggerDebug("block hash already registered with Kayros", []string{ - "blockHash", string(blockHashHex), - "timestamp", timestamp, - }) return timestamp, nil } - // Record doesn't exist, register it LoggerDebug("registering block hash with Kayros", []string{"blockHash", string(blockHashHex)}) - _, err = kc.RegisterBlockHash(blockHashHex) + + _, err = kc.RegisterBlockHash(blockDataType, blockHashHex) if err != nil { return "", fmt.Errorf("failed to register block hash: %w", err) } - // IMPORTANT: Query separately to get the earliest record (not registration response) - // This handles race conditions when multiple nodes register the same hash simultaneously - // The Kayros API returns the earliest registration (limit 1) when querying by data_type + data_item - record, err = kc.GetBlockRecord(blockHashHex) + record, err = kc.GetBlockRecord(blockDataType, blockHashHex) if err != nil { - return "", fmt.Errorf("failed to query block record after registration: %w", err) - } - if record == nil { - return "", fmt.Errorf("block record not found after registration") + return "", fmt.Errorf("failed to retrieve block record after registration: %w", err) } - // Extract timestamp from the earliest registration's TimeUUID timestamp, err := TimeuuidHexToTimestamp(record.UuidHex) if err != nil { - return "", fmt.Errorf("failed to extract timestamp from UUID: %w: %s", err, record.UuidHex) + return "", fmt.Errorf("failed to extract timestamp from record UUID: %w", err) } LoggerInfo("block hash registered and queried from Kayros", []string{ - "blockHash", string(blockHashHex), - "timeUUID", record.UuidHex, + "uuid", record.UuidHex, "timestamp", timestamp, - "hashItem", record.HashItemHex, }) - return timestamp, nil } // GetBlockRecord retrieves a block record from Kayros by block hash -func (kc *KayrosClient) GetBlockRecord(blockHashHex wasmx.HexString) (*KayrosRecord, error) { - return kc.GetRecord(kc.getBlockDataType(), blockHashHex) +func (kc *KayrosClient) GetBlockRecord(blockDataType wasmx.HexString, blockHashHex wasmx.HexString) (*KayrosRecord, error) { + return kc.GetRecord(blockDataType, blockHashHex) } -// GetBlockRecord retrieves a block record from Kayros by block hash -// GET /api/database/record?data_type=&data_item= +// GetRecord retrieves a record from Kayros by data_type and data_item func (kc *KayrosClient) GetRecord(dataType wasmx.HexString, dataItem wasmx.HexString) (*KayrosRecord, error) { - endpoint := fmt.Sprintf("/api/database/record?data_type=%s&data_item=%s&limit=1", - dataType, dataItem) + endpoint := fmt.Sprintf("/api/database/record?data_type=%s&data_item=%s", dataType, dataItem) respData, err := kc.makeRequest(endpoint) if err != nil { @@ -279,22 +209,80 @@ func (kc *KayrosClient) GetRecord(dataType wasmx.HexString, dataItem wasmx.HexSt if err := json.Unmarshal(respData, &kayrosResp); err != nil { return nil, fmt.Errorf("failed to unmarshal Kayros response: %w", err) } - if !kayrosResp.Success { - // Record not found or other error return nil, fmt.Errorf("Kayros API error: %s", kayrosResp.Message) } - if len(kayrosResp.Data.Records) < 1 { - // Record not found or other error return nil, fmt.Errorf("Kayros API record not found: %s", kayrosResp.Message) } - return &kayrosResp.Data.Records[0], nil } -// GetBlockRecordByHashItem retrieves a block record from Kayros by hash_item (Kayros computed hash) -// GET /api/database/record-by-hash?hash_item= +// GetLevelHash retrieves a rollup hash by level and position. +func (kc *KayrosClient) GetLevelHash(level int, position int) (*LevelHashEntry, error) { + endpoint := fmt.Sprintf("/api/database/level-hash?level=%d&position=%d", level, position) + + respData, err := kc.makeRequest(endpoint) + if err != nil { + return nil, err + } + + var kayrosResp LevelHashResponse + if err := json.Unmarshal(respData, &kayrosResp); err != nil { + return nil, fmt.Errorf("failed to unmarshal Kayros response: %w", err) + } + if !kayrosResp.Success { + return nil, fmt.Errorf("Kayros API error: %s", kayrosResp.Message) + } + + return &LevelHashEntry{ + Position: kayrosResp.Data.Position, + HashHex: kayrosResp.Data.HashHex, + UuidHex: "", + }, nil +} + +// GetLevelRange retrieves a set of rollup hashes for a level. +func (kc *KayrosClient) GetLevelRange(level int, limit int) ([]LevelHashEntry, error) { + endpoint := fmt.Sprintf("/api/database/level-range?level=%d&limit=%d", level, limit) + + respData, err := kc.makeRequest(endpoint) + if err != nil { + return nil, err + } + + var kayrosResp LevelRangeResponse + if err := json.Unmarshal(respData, &kayrosResp); err != nil { + return nil, fmt.Errorf("failed to unmarshal Kayros response: %w", err) + } + if !kayrosResp.Success { + return nil, fmt.Errorf("Kayros API error: %s", kayrosResp.Message) + } + + return kayrosResp.Data.Entries, nil +} + +// GetProofPath retrieves the proof path for a hash_item. +func (kc *KayrosClient) GetProofPath(hashItem string) (*ProofPathData, error) { + endpoint := fmt.Sprintf("/api/proof?hash_item=%s", hashItem) + + respData, err := kc.makeRequest(endpoint) + if err != nil { + return nil, err + } + + var kayrosResp ProofPathResponse + if err := json.Unmarshal(respData, &kayrosResp); err != nil { + return nil, fmt.Errorf("failed to unmarshal Kayros response: %w", err) + } + if !kayrosResp.Success { + return nil, fmt.Errorf("Kayros API error: %s", kayrosResp.Message) + } + + return &kayrosResp.Data, nil +} + +// GetBlockRecordByHashItem retrieves a block record from Kayros by hash_item func (kc *KayrosClient) GetBlockRecordByHashItem(hashItem string) (*KayrosRecord, error) { endpoint := fmt.Sprintf("/api/database/record-by-hash?hash_item=%s", hashItem) @@ -307,55 +295,49 @@ func (kc *KayrosClient) GetBlockRecordByHashItem(hashItem string) (*KayrosRecord if err := json.Unmarshal(respData, &kayrosResp); err != nil { return nil, fmt.Errorf("failed to unmarshal Kayros response: %w", err) } - if !kayrosResp.Success { - // Record not found or other error return nil, fmt.Errorf("Kayros API error: %s", kayrosResp.Message) } - return &kayrosResp.Data, nil } // RegisterBlockHash registers a block hash with Kayros for timestamp synchronization -// POST /api/grpc/single-hash with blocks data type -func (kc *KayrosClient) RegisterBlockHash(blockHashHex wasmx.HexString) (*KayrosRegistrationResponse, error) { +func (kc *KayrosClient) RegisterBlockHash(blockDataType wasmx.HexString, blockHashHex wasmx.HexString) (*KayrosRegistrationResponse, error) { reqBody := KayrosRegistrationRequest{ - DataType: kc.getBlockDataType(), + DataType: blockDataType, DataItem: blockHashHex, } return kc.RegisterData(reqBody) } -// RegisterTransaction registers a transaction with Kayros via POST /api/grpc/single-hash -func (kc *KayrosClient) RegisterTransaction(txHash string) (*KayrosRegistrationResponse, error) { +// RegisterTransaction registers a transaction hash with Kayros for ordering +func (kc *KayrosClient) RegisterTransaction(dataType wasmx.HexString, txHash wasmx.HexString) (*KayrosRegistrationResponse, error) { reqBody := KayrosRegistrationRequest{ - DataType: kc.getDataType(), - DataItem: wasmx.HexString(txHash), + DataType: dataType, + DataItem: txHash, } return kc.RegisterData(reqBody) } -// RegisterData registers data with Kayros via POST /api/grpc/single-hash +// RegisterData registers a data item with Kayros func (kc *KayrosClient) RegisterData(reqBody KayrosRegistrationRequest) (*KayrosRegistrationResponse, error) { endpoint := "/api/grpc/single-hash" - bodyBytes, err := json.Marshal(reqBody) + reqbz, err := json.Marshal(&reqBody) if err != nil { - return nil, fmt.Errorf("failed to marshal registration request: %w", err) + return nil, fmt.Errorf("failed to marshal request: %w", err) } - LoggerDebugExtended(`Kayros registration`, []string{"endpoint", endpoint}) - - respData, err := kc.makePostRequest(endpoint, bodyBytes) + respData, err := kc.makePostRequest(endpoint, reqbz) if err != nil { return nil, err } var kayrosResp KayrosRegistrationResponseWrap if err := json.Unmarshal(respData, &kayrosResp); err != nil { - return nil, fmt.Errorf("failed to unmarshal Kayros registration response: %w", err) + return nil, fmt.Errorf("failed to unmarshal Kayros response: %w", err) } - LoggerDebugExtended(`Kayros registration`, []string{"endpoint", endpoint, "success", strconv.FormatBool(kayrosResp.Success), "kayros_hash", string(kayrosResp.Data.ComputedHash), "timeuuid", string(kayrosResp.Data.TimeUUID)}) + LoggerDebugExtended(`Kayros registration`, []string{"endpoint", endpoint, "success", fmt.Sprintf("%v", kayrosResp.Success), "kayros_hash", string(kayrosResp.Data.ComputedHash), "timeuuid", string(kayrosResp.Data.TimeUUID)}) if !kayrosResp.Success { return nil, fmt.Errorf("Failed Kayros registration request: %s", kayrosResp.Message) diff --git a/tests/testdata/tinygo/wasmx-kayros-verifier/lib/proof.go b/tests/testdata/tinygo/wasmx-kayros-verifier/lib/proof.go new file mode 100644 index 00000000..fcf81315 --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayros-verifier/lib/proof.go @@ -0,0 +1,388 @@ +package lib + +import ( + "encoding/hex" + "fmt" + "strings" + "time" + + wasmx "github.com/loredanacirstea/wasmx-env/lib" +) + +type LevelProof struct { + Level int + Position int + Hashes []string +} + +// VerifyProof hashes data and verifies it exists in Kayros. +func VerifyProof(data []byte, dataType wasmx.HexString, hashAlgo string, cfg KayrosConfig) (bool, string) { + hashAlgo = strings.ToLower(strings.TrimSpace(hashAlgo)) + if hashAlgo == "" || hashAlgo == "sha256" { + return VerifyProofHash(dataType, wasmx.HexString(hex.EncodeToString(wasmx.Sha256(data))), cfg) + } + if hashAlgo == "keccak256" { + return VerifyProofHash(dataType, wasmx.HexString(hex.EncodeToString(wasmx.Keccak256(data))), cfg) + } + return false, "unsupported hash algorithm" +} + +// VerifyProofHash checks if a Kayros record exists for the dataType and dataHash. +func VerifyProofHash(dataType wasmx.HexString, dataHash wasmx.HexString, cfg KayrosConfig) (bool, string) { + client := NewKayrosClient(cfg) + record, err := client.GetRecord(dataType, dataHash) + if err != nil || record == nil { + return false, "no record found" + } + + if record.DataTypeHex != string(dataType) || record.DataItemHex != string(dataHash) { + return false, "record mismatch" + } + return true, "" +} + +// VerifyProofWithInclusion hashes data and verifies the record + proof path inclusion. +func VerifyProofWithInclusion(data []byte, dataType wasmx.HexString, hashAlgo string, trustedRootHash string, trustedLevel int, trustedPosition int, cfg KayrosConfig) (bool, string) { + hashAlgo = strings.ToLower(strings.TrimSpace(hashAlgo)) + if hashAlgo == "" || hashAlgo == "sha256" { + return VerifyProofHashWithInclusion(dataType, wasmx.HexString(hex.EncodeToString(wasmx.Sha256(data))), hashAlgo, trustedRootHash, trustedLevel, trustedPosition, cfg) + } + if hashAlgo == "keccak256" { + return VerifyProofHashWithInclusion(dataType, wasmx.HexString(hex.EncodeToString(wasmx.Keccak256(data))), hashAlgo, trustedRootHash, trustedLevel, trustedPosition, cfg) + } + return false, "unsupported hash algorithm" +} + +// VerifyProofHashWithInclusion verifies record details and proof path against a trusted root hash. +func VerifyProofHashWithInclusion(dataType wasmx.HexString, dataHash wasmx.HexString, hashAlgo string, trustedRootHash string, trustedLevel int, trustedPosition int, cfg KayrosConfig) (bool, string) { + client := NewKayrosClient(cfg) + record, err := client.GetRecord(dataType, dataHash) + if err != nil || record == nil { + return false, "no record found" + } + if record.DataTypeHex != string(dataType) || record.DataItemHex != string(dataHash) { + return false, "record mismatch" + } + + var prev *KayrosRecord + if strings.TrimSpace(record.PrevHashHex) != "" { + prev, err = client.GetRecordByHash(record.PrevHashHex) + if err != nil || prev == nil { + return false, "previous record not found" + } + } + + if ok, errMsg := VerifyRecordHash(record, hashAlgo); !ok { + return false, errMsg + } + if prev != nil { + if ok, errMsg := VerifyRecordChainLink(record, prev); !ok { + return false, errMsg + } + } + if ok, errMsg := VerifyRecordUUID(record); !ok { + return false, errMsg + } + + proof, err := client.GetProofPath(record.HashItemHex) + if err != nil || proof == nil { + return false, "missing proof path" + } + if !strings.EqualFold(proof.HashItemHex, record.HashItemHex) { + return false, "hash_item mismatch" + } + if !strings.EqualFold(proof.DataTypeHex, record.DataTypeHex) { + return false, "data_type mismatch" + } + if !strings.EqualFold(proof.DataItemHex, record.DataItemHex) { + return false, "data_item mismatch" + } + if trustedRootHash == "" { + return false, "missing trusted root hash" + } + if !strings.EqualFold(proof.RootHashHex, trustedRootHash) { + return false, "root hash mismatch" + } + + if trustedLevel >= 0 && trustedPosition >= 0 { + entry, err := client.GetLevelHash(trustedLevel, trustedPosition) + if err != nil || entry == nil { + return false, "trusted level hash not found" + } + if !strings.EqualFold(entry.HashHex, trustedRootHash) { + return false, "trusted level hash mismatch" + } + } + + if ok, errMsg := VerifyProofPath(proof, hashAlgo); !ok { + return false, errMsg + } + return true, "" +} + +// VerifyRecordHash checks hash_item = hash(prev_hash || data_type || data_item). +func VerifyRecordHash(record *KayrosRecord, hashAlgo string) (bool, string) { + if record == nil { + return false, "record is nil" + } + if strings.TrimSpace(hashAlgo) == "" && strings.TrimSpace(record.HashType) != "" { + hashAlgo = record.HashType + } + prevBytes, err := decodeHexOrEmpty(record.PrevHashHex) + if err != nil { + return false, "invalid prev_hash" + } + dataTypeBytes, err := decodeHex(record.DataTypeHex) + if err != nil { + return false, "invalid data_type" + } + dataItemBytes, err := decodeHex(record.DataItemHex) + if err != nil { + return false, "invalid data_item" + } + uuidBytes, err := decodeHex(record.UuidHex) + if err != nil { + return false, "invalid uuid" + } + if len(uuidBytes) != 16 { + return false, "invalid uuid length" + } + + payload := append(append(append(prevBytes, dataTypeBytes...), dataItemBytes...), uuidBytes...) + computed, errMsg := hashBytes(payload, hashAlgo) + if errMsg != "" { + return false, errMsg + } + computedHex := hex.EncodeToString(computed) + if !strings.EqualFold(computedHex, record.HashItemHex) { + return false, fmt.Sprintf("hash mismatch computed=%s record=%s", computedHex, record.HashItemHex) + } + return true, "" +} + +// VerifyRecordChainLink checks record.prev_hash equals prev.hash_item and data_type matches. +func VerifyRecordChainLink(record *KayrosRecord, prev *KayrosRecord) (bool, string) { + if record == nil || prev == nil { + return false, "missing record chain" + } + if !strings.EqualFold(record.DataTypeHex, prev.DataTypeHex) { + return false, "data_type mismatch" + } + if !strings.EqualFold(record.PrevHashHex, prev.HashItemHex) { + return false, "prev_hash mismatch" + } + return true, "" +} + +// VerifyRecordTimestamp ensures timestamp is valid RFC3339Nano. +func VerifyRecordTimestamp(record *KayrosRecord) (bool, string) { + if record == nil { + return false, "record is nil" + } + if record.Timestamp == "" { + return false, "missing timestamp" + } + if _, err := parseRecordTimestamp(record.Timestamp); err != nil { + return false, "invalid timestamp: " + record.Timestamp + } + return true, "" +} + +// VerifyRecordUUID ensures UUID timestamp matches record timestamp. +func VerifyRecordUUID(record *KayrosRecord) (bool, string) { + if record == nil { + return false, "record is nil" + } + recordTime, err := parseRecordTimestamp(record.Timestamp) + if err != nil { + return false, "invalid timestamp: " + record.Timestamp + } + ts, err := TimeuuidHexToTimestamp(record.UuidHex) + if err != nil { + return false, "invalid uuid" + } + uuidTime, err := parseRecordTimestamp(ts) + if err != nil { + return false, "invalid uuid timestamp" + } + recordTime = recordTime.UTC().Truncate(time.Millisecond) + uuidTime = uuidTime.UTC().Truncate(time.Millisecond) + if !recordTime.Equal(uuidTime) { + return false, "uuid does not match timestamp" + } + return true, "" +} + +func parseRecordTimestamp(value string) (time.Time, error) { + if t, err := time.Parse(time.RFC3339Nano, value); err == nil { + return t, nil + } + if t, err := time.Parse(time.RFC3339, value); err == nil { + return t, nil + } + return time.Parse("2006-01-02 15:04:05.999 MST", value) +} + +// VerifyLevelProof checks a single level rollup hash against Kayros. +func VerifyLevelProof(cfg KayrosConfig, proof LevelProof, hashAlgo string) (bool, string) { + if proof.Level < 1 { + return false, "invalid level" + } + if proof.Position < 0 { + return false, "invalid position" + } + if len(proof.Hashes) == 0 { + return false, "missing level hashes" + } + + rollupBytes, errMsg := hashHexConcat(proof.Hashes, hashAlgo) + if errMsg != "" { + return false, errMsg + } + + client := NewKayrosClient(cfg) + expected, err := client.GetLevelHash(proof.Level, proof.Position) + if err != nil || expected == nil { + return false, "no level hash found" + } + if !strings.EqualFold(hex.EncodeToString(rollupBytes), expected.HashHex) { + return false, "level hash mismatch" + } + return true, "" +} + +// VerifyProofPath verifies the proof path against computed rollup hashes and root hash. +func VerifyProofPath(path *ProofPathData, hashAlgo string) (bool, string) { + if path == nil { + return false, "missing proof path" + } + if len(path.Proof) == 0 { + return false, "empty proof path" + } + + hashItem := strings.ToLower(strings.TrimSpace(path.HashItemHex)) + if hashItem == "" { + return false, "missing hash_item" + } + rootHash := strings.ToLower(strings.TrimSpace(path.RootHashHex)) + if rootHash == "" { + return false, "missing root hash" + } + + for _, step := range path.Proof { + if step.Position < 0 { + return false, "invalid position" + } + if step.IndexInBlock < 0 || step.IndexInBlock >= 256 { + return false, "invalid index_in_block" + } + stepHash := strings.ToLower(strings.TrimSpace(step.HashHex)) + if stepHash == "" { + return false, "missing hash_hex" + } + expectedCount := step.SiblingCount + if expectedCount == 0 { + expectedCount = 256 + } + if len(step.SiblingHashes) != expectedCount { + return false, "sibling_count mismatch" + } + if len(step.SiblingHashes) == 0 { + return false, "missing sibling hashes" + } + rollup, errMsg := hashHexConcat(step.SiblingHashes, hashAlgo) + if errMsg != "" { + return false, errMsg + } + if !strings.EqualFold(hex.EncodeToString(rollup), stepHash) { + return false, "level rollup mismatch" + } + } + + last := strings.ToLower(strings.TrimSpace(path.Proof[len(path.Proof)-1].HashHex)) + if last == "" { + return false, "missing final hash" + } + if !strings.EqualFold(last, rootHash) { + return false, "root hash mismatch" + } + return true, "" +} + +// VerifyKayrosRecordWithProof verifies the record and its proof path. +func VerifyKayrosRecordWithProof(record *KayrosRecord, prev *KayrosRecord, proof *ProofPathData, hashAlgo string) (bool, string) { + if ok, errMsg := VerifyKayrosRecord(record, prev, hashAlgo, nil, KayrosConfig{}); !ok { + return false, errMsg + } + if proof == nil { + return false, "missing proof path" + } + if !strings.EqualFold(proof.HashItemHex, record.HashItemHex) { + return false, "hash_item mismatch" + } + if !strings.EqualFold(proof.DataTypeHex, record.DataTypeHex) { + return false, "data_type mismatch" + } + if !strings.EqualFold(proof.DataItemHex, record.DataItemHex) { + return false, "data_item mismatch" + } + if ok, errMsg := VerifyProofPath(proof, hashAlgo); !ok { + return false, errMsg + } + return true, "" +} + +// VerifyKayrosRecord runs hash, chain, uuid, and level checks. +func VerifyKayrosRecord(record *KayrosRecord, prev *KayrosRecord, hashAlgo string, levelProofs []LevelProof, cfg KayrosConfig) (bool, string) { + if ok, errMsg := VerifyRecordHash(record, hashAlgo); !ok { + return false, errMsg + } + if ok, errMsg := VerifyRecordChainLink(record, prev); !ok { + return false, errMsg + } + if ok, errMsg := VerifyRecordUUID(record); !ok { + return false, errMsg + } + + for _, proof := range levelProofs { + if ok, errMsg := VerifyLevelProof(cfg, proof, hashAlgo); !ok { + return false, errMsg + } + } + return true, "" +} + +func hashBytes(data []byte, hashAlgo string) ([]byte, string) { + hashAlgo = strings.ToLower(strings.TrimSpace(hashAlgo)) + if hashAlgo == "" || hashAlgo == "sha256" { + return wasmx.Sha256(data), "" + } + if hashAlgo == "keccak256" { + return wasmx.Keccak256(data), "" + } + return nil, "unsupported hash algorithm" +} + +func hashHexConcat(hashes []string, hashAlgo string) ([]byte, string) { + payload := make([]byte, 0) + for _, h := range hashes { + bz, err := decodeHex(h) + if err != nil { + return nil, "invalid hash hex" + } + payload = append(payload, bz...) + } + return hashBytes(payload, hashAlgo) +} + +func decodeHex(value string) ([]byte, error) { + return hex.DecodeString(strings.TrimSpace(value)) +} + +func decodeHexOrEmpty(value string) ([]byte, error) { + value = strings.TrimSpace(value) + if value == "" { + return []byte{}, nil + } + return hex.DecodeString(value) +} diff --git a/tests/testdata/tinygo/wasmx-kayros-verifier/lib/types.go b/tests/testdata/tinygo/wasmx-kayros-verifier/lib/types.go new file mode 100644 index 00000000..44600033 --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayros-verifier/lib/types.go @@ -0,0 +1,229 @@ +package lib + +import ( + wasmx "github.com/loredanacirstea/wasmx-env/lib" +) + +const ( + MODULE_NAME = "kayros_verifier" +) + +// KayrosConfig holds the configuration for Kayros API client +type KayrosConfig struct { + ApiBaseUrl string `json:"api_base_url"` + ApiUserKey string `json:"api_user_key"` +} + +// KayrosRecord represents a record in the Kayros database +type KayrosRecord struct { + DataType string `json:"data_type"` + DataTypeHex string `json:"data_type_hex"` + DataItemHex string `json:"data_item_hex"` + UuidHex string `json:"uuid_hex"` + HashItemHex string `json:"hash_item_hex"` + PrevHashHex string `json:"prev_hash_hex,omitempty"` + HashType string `json:"hash_type"` + Timestamp string `json:"timestamp"` +} + +// KayrosApiResponse is the common response structure from Kayros API +type KayrosApiResponse struct { + Success bool `json:"success"` + Message string `json:"message"` +} + +// KayrosRecordResponse is the response for single record queries +type KayrosRecordResponse struct { + KayrosApiResponse + Data KayrosRecord `json:"data"` +} + +// KayrosRecordsData is the data structure for multiple record queries +type KayrosRecordsData struct { + Count int `json:"count"` + Limit int `json:"limit"` + Records []KayrosRecord `json:"records"` +} + +// KayrosRecordsResponse is the response for multiple record queries +type KayrosRecordsResponse struct { + KayrosApiResponse + Data KayrosRecordsData `json:"data"` +} + +// KayrosRegistrationRequest is the request body for POST /api/grpc/single-hash +type KayrosRegistrationRequest struct { + DataType wasmx.HexString `json:"data_type"` + DataItem wasmx.HexString `json:"data_item"` +} + +// KayrosRegistrationResponse is the response from the registration API +type KayrosRegistrationResponse struct { + Success bool `json:"success"` + Message string `json:"message"` + DataType string `json:"data_type"` + DataItem string `json:"data_item"` + ComputedHash wasmx.HexString `json:"computed_hash_hex"` + TimeUUID wasmx.HexString `json:"timeuuid_hex"` + DataTypeHex wasmx.HexString `json:"data_type_hex"` + DataItemHex wasmx.HexString `json:"data_item_hex"` +} + +type KayrosRegistrationResponseWrap struct { + KayrosApiResponse + Data KayrosRegistrationResponse `json:"data"` +} + +type LevelHashEntry struct { + Position int `json:"position"` + HashHex string `json:"hash_hex"` + UuidHex string `json:"uuid_hex"` +} + +type LevelHashData struct { + Level int `json:"level"` + Position int `json:"position"` + HashHex string `json:"hash_hex"` +} + +type LevelHashResponse struct { + KayrosApiResponse + Data LevelHashData `json:"data"` +} + +type LevelRangeData struct { + Level int `json:"level"` + Count int `json:"count"` + Entries []LevelHashEntry `json:"entries"` +} + +type LevelRangeResponse struct { + KayrosApiResponse + Data LevelRangeData `json:"data"` +} + +type ProofPathEntry struct { + Level int `json:"level"` + Position int `json:"position"` + HashHex string `json:"hash_hex"` + IndexInBlock int `json:"index_in_block"` + SiblingHashes []string `json:"sibling_hashes"` + SiblingCount int `json:"sibling_count"` +} + +type ProofPathData struct { + HashItemHex string `json:"hash_item_hex"` + DataTypeHex string `json:"data_type_hex"` + DataItemHex string `json:"data_item_hex"` + RecordIndex int `json:"record_index"` + Proof []ProofPathEntry `json:"proof"` + RootHashHex string `json:"root_hash_hex"` +} + +type ProofPathResponse struct { + KayrosApiResponse + Data ProofPathData `json:"data"` +} + +type VerifyResponse struct { + Ok bool `json:"ok"` + Error string `json:"error,omitempty"` +} + +type VerifyProofRequest struct { + Data []byte `json:"data"` + DataType []byte `json:"data_type"` + HashAlgo string `json:"hash_algo"` + ApiBaseUrl string `json:"api_base_url"` + ApiUserKey string `json:"api_user_key"` +} + +type VerifyProofWithInclusionRequest struct { + Data []byte `json:"data"` + DataType []byte `json:"data_type"` + HashAlgo string `json:"hash_algo"` + TrustedRootHash string `json:"trusted_root_hash"` + TrustedLevel int `json:"trusted_level"` + TrustedPosition int `json:"trusted_position"` + ApiBaseUrl string `json:"api_base_url"` + ApiUserKey string `json:"api_user_key"` +} + +type VerifyProofHashRequest struct { + DataType []byte `json:"data_type"` + DataHash []byte `json:"data_hash"` + ApiBaseUrl string `json:"api_base_url"` + ApiUserKey string `json:"api_user_key"` +} + +type VerifyProofHashWithInclusionRequest struct { + DataType []byte `json:"data_type"` + DataHash []byte `json:"data_hash"` + HashAlgo string `json:"hash_algo"` + TrustedRootHash string `json:"trusted_root_hash"` + TrustedLevel int `json:"trusted_level"` + TrustedPosition int `json:"trusted_position"` + ApiBaseUrl string `json:"api_base_url"` + ApiUserKey string `json:"api_user_key"` +} + +type VerifyRecordHashRequest struct { + Record KayrosRecord `json:"record"` + HashAlgo string `json:"hash_algo"` +} + +type VerifyRecordChainLinkRequest struct { + Record KayrosRecord `json:"record"` + Prev KayrosRecord `json:"prev"` +} + +type VerifyRecordTimestampRequest struct { + Record KayrosRecord `json:"record"` +} + +type VerifyRecordUUIDRequest struct { + Record KayrosRecord `json:"record"` +} + +type VerifyLevelProofRequest struct { + Proof LevelProof `json:"proof"` + HashAlgo string `json:"hash_algo"` + ApiBaseUrl string `json:"api_base_url"` + ApiUserKey string `json:"api_user_key"` +} + +type VerifyProofPathRequest struct { + Proof ProofPathData `json:"proof"` + HashAlgo string `json:"hash_algo"` +} + +type VerifyKayrosRecordRequest struct { + Record KayrosRecord `json:"record"` + Prev KayrosRecord `json:"prev"` + HashAlgo string `json:"hash_algo"` + LevelProofs []LevelProof `json:"level_proofs"` + ApiBaseUrl string `json:"api_base_url"` + ApiUserKey string `json:"api_user_key"` +} + +type VerifyKayrosRecordWithProofRequest struct { + Record KayrosRecord `json:"record"` + Prev KayrosRecord `json:"prev"` + Proof ProofPathData `json:"proof"` + HashAlgo string `json:"hash_algo"` +} + +type Calldata struct { + VerifyProof *VerifyProofRequest `json:"verify_proof,omitempty"` + VerifyProofWithInclusion *VerifyProofWithInclusionRequest `json:"verify_proof_with_inclusion,omitempty"` + VerifyProofHash *VerifyProofHashRequest `json:"verify_proof_hash,omitempty"` + VerifyProofHashWithInclusion *VerifyProofHashWithInclusionRequest `json:"verify_proof_hash_with_inclusion,omitempty"` + VerifyRecordHash *VerifyRecordHashRequest `json:"verify_record_hash,omitempty"` + VerifyRecordChainLink *VerifyRecordChainLinkRequest `json:"verify_record_chain_link,omitempty"` + VerifyRecordTimestamp *VerifyRecordTimestampRequest `json:"verify_record_timestamp,omitempty"` + VerifyRecordUUID *VerifyRecordUUIDRequest `json:"verify_record_uuid,omitempty"` + VerifyLevelProof *VerifyLevelProofRequest `json:"verify_level_proof,omitempty"` + VerifyProofPath *VerifyProofPathRequest `json:"verify_proof_path,omitempty"` + VerifyKayrosRecord *VerifyKayrosRecordRequest `json:"verify_kayros_record,omitempty"` + VerifyKayrosRecordWithProof *VerifyKayrosRecordWithProofRequest `json:"verify_kayros_record_with_proof,omitempty"` +} diff --git a/tests/testdata/tinygo/wasmx-kayros-verifier/lib/utils.go b/tests/testdata/tinygo/wasmx-kayros-verifier/lib/utils.go new file mode 100644 index 00000000..097ec4f9 --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayros-verifier/lib/utils.go @@ -0,0 +1,71 @@ +package lib + +import ( + "encoding/hex" + "fmt" + "time" + + wasmx "github.com/loredanacirstea/wasmx-env/lib" +) + +func LoggerInfo(msg string, parts []string) { + wasmx.LoggerInfo(MODULE_NAME, msg, parts) +} + +func LoggerError(msg string, parts []string) { + wasmx.LoggerError(MODULE_NAME, msg, parts) +} + +func LoggerDebug(msg string, parts []string) { + wasmx.LoggerDebug(MODULE_NAME, msg, parts) +} + +func LoggerDebugExtended(msg string, parts []string) { + wasmx.LoggerDebugExtended(MODULE_NAME, msg, parts) +} + +// TimeuuidHexToTimestamp extracts timestamp from a Kayros TimeUUID hex string +// TimeUUID format (version 1): time-low(4) time-mid(2) time-high-and-version(2) clock-seq(2) node(6) +// Returns RFC3339Nano formatted timestamp string +func TimeuuidHexToTimestamp(timeuuidHex string) (string, error) { + // Decode hex string to bytes + uuidBytes, err := hex.DecodeString(timeuuidHex) + if err != nil { + return "", fmt.Errorf("invalid hex: %w", err) + } + + if len(uuidBytes) != 16 { + return "", fmt.Errorf("UUIDs must be exactly 16 bytes long") + } + + // Extract timestamp from TimeUUID (version 1) + // UUIDs are stored in big-endian (network byte order) + // The timestamp is split across time_low (bytes 0-3), time_mid (bytes 4-5), + // and time_hi_and_version (bytes 6-7) + + // Read time_low (32 bits, big-endian) + timeLow := uint64(uuidBytes[0])<<24 | uint64(uuidBytes[1])<<16 | + uint64(uuidBytes[2])<<8 | uint64(uuidBytes[3]) + + // Read time_mid (16 bits, big-endian) + timeMid := uint64(uuidBytes[4])<<8 | uint64(uuidBytes[5]) + + // Read time_hi_and_version (16 bits, big-endian), mask out version bits (top 4 bits) + timeHi := (uint64(uuidBytes[6])<<8 | uint64(uuidBytes[7])) & 0x0FFF + + // Reconstruct the 60-bit timestamp + // timestamp = time_low + (time_mid << 32) + (time_hi << 48) + timestamp := timeLow | (timeMid << 32) | (timeHi << 48) + + // UUID timestamp is in 100-nanosecond intervals since UUID epoch (1582-10-15) + // Convert to Unix time (nanoseconds since 1970-01-01) + const gregorianEpoch = 122192928000000000 // 100-ns intervals between UUID epoch and Unix epoch + + unixNanos := int64((timestamp - gregorianEpoch) * 100) + + // Convert to time.Time + t := time.Unix(0, unixNanos) + + // Format as RFC3339Nano + return t.UTC().Format(time.RFC3339Nano), nil +} diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/go.mod b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/go.mod index 2d009ea2..052ade7a 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/go.mod +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/go.mod @@ -27,12 +27,13 @@ require github.com/loredanacirstea/wasmx-raft-lib v0.0.0 require github.com/loredanacirstea/wasmx-raftp2p-lib v0.0.0 require ( - github.com/loredanacirstea/wasmx-env-httpclient v0.0.0 github.com/loredanacirstea/wasmx-env-p2p v0.0.0 + github.com/loredanacirstea/wasmx-kayros-verifier v0.0.0 ) require ( cosmossdk.io/math v1.5.3 // indirect + github.com/loredanacirstea/wasmx-env-httpclient v0.0.0 // indirect github.com/loredanacirstea/wasmx-env-utils v0.0.0 // indirect github.com/loredanacirstea/wasmx-utils v0.0.0 // indirect ) @@ -66,3 +67,5 @@ replace github.com/loredanacirstea/wasmx-raftp2p-lib v0.0.0 => ../wasmx-raftp2p- replace github.com/loredanacirstea/wasmx-env-p2p v0.0.0 => ../wasmx-env-p2p replace github.com/loredanacirstea/wasmx-env-httpclient v0.0.0 => ../wasmx-env-httpclient + +replace github.com/loredanacirstea/wasmx-kayros-verifier v0.0.0 => ../wasmx-kayros-verifier diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go index bd23b248..06ed13ab 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/actions.go @@ -2,6 +2,7 @@ package lib import ( "encoding/base64" + "encoding/hex" "encoding/json" "fmt" @@ -39,11 +40,36 @@ const ( func GetKayrosClient() (*KayrosClient, error) { config := KayrosConfig{ ApiBaseUrl: sGet(CTX_KAYROS_BASE_URL), + ApiUserKey: sGet(CTX_KAYROS_USER_KEY), } kayrosClient := NewKayrosClient(config) return kayrosClient, nil } +func BuildKayrosDataType() wasmx.HexString { + chainId := wasmx.GetChainId() + dataType := fmt.Sprintf("wasmx_tx_%s", chainId) + dataTypeId := sGet(CTX_DATA_TYPE_ID) + if dataTypeId != "" { + dataType = fmt.Sprintf("%s_%s", dataType, dataTypeId) + } + dataTypeBytes := make([]byte, 32) + copy(dataTypeBytes, []byte(dataType)) + return wasmx.HexString(hex.EncodeToString(dataTypeBytes)) +} + +func BuildKayrosBlockDataType() wasmx.HexString { + chainId := wasmx.GetChainId() + dataType := fmt.Sprintf("wasmx_b_%s", chainId) + dataTypeId := sGet(CTX_DATA_TYPE_ID) + if dataTypeId != "" { + dataType = fmt.Sprintf("%s_%s", dataType, dataTypeId) + } + dataTypeBytes := make([]byte, 32) + copy(dataTypeBytes, []byte(dataType)) + return wasmx.HexString(hex.EncodeToString(dataTypeBytes)) +} + // GetLastKayrosUUID retrieves the last processed Kayros UUID from state func GetLastKayrosUUID() string { data := sGet(STORAGE_KEY_LAST_UUID) @@ -267,7 +293,7 @@ func RegisterWithKayros(params []fsm.ActionParam, event fsm.EventObject) (*Kayro } // Register transaction with Kayros via POST /api/grpc/single-hash - resp, err := client.RegisterTransaction(txHash) + resp, err := client.RegisterTransaction(BuildKayrosDataType(), wasmx.HexString(txHash)) if err != nil { LoggerError("failed to register transaction with Kayros", []string{"txHash", txHash, "error", err.Error()}) // Don't fail the transaction if Kayros registration fails @@ -314,7 +340,7 @@ func GetKayrosTxs(params []fsm.ActionParam, event fsm.EventObject) error { // Fetch records from Kayros starting from the last UUID // Use configured max or default limit := GetMaxBlockTx() - records, err := client.GetRecordsFromPrev(lastUUID, limit) + records, err := client.GetRecordsFromPrev(BuildKayrosDataType(), lastUUID, limit) if err != nil { LoggerError("failed to fetch records from Kayros", []string{"error", err.Error(), "lastUUID", lastUUID}) return err diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/block.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/block.go index 64d84f2c..d264e311 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/block.go +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/block.go @@ -227,7 +227,7 @@ func buildKayrosBlockProposal(txs [][]byte, txHashes []string, optimisticExecuti return fmt.Errorf("failed to get Kayros client: %w", err) } - kayrosTimestamp, err := kayrosClient.GetBlockTimestamp(wasmx.HexString(tempHashHex)) + kayrosTimestamp, err := kayrosClient.GetBlockTimestamp(BuildKayrosBlockDataType(), wasmx.HexString(tempHashHex)) if err != nil { return fmt.Errorf("failed to get block timestamp from Kayros: %w", err) } diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/kayros_alias.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/kayros_alias.go new file mode 100644 index 00000000..6ce70f03 --- /dev/null +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/kayros_alias.go @@ -0,0 +1,18 @@ +package lib + +import verifier "github.com/loredanacirstea/wasmx-kayros-verifier/lib" + +type KayrosClient = verifier.KayrosClient +type KayrosConfig = verifier.KayrosConfig +type KayrosRecord = verifier.KayrosRecord +type KayrosApiResponse = verifier.KayrosApiResponse +type KayrosRecordResponse = verifier.KayrosRecordResponse +type KayrosRecordsData = verifier.KayrosRecordsData +type KayrosRecordsResponse = verifier.KayrosRecordsResponse +type KayrosRegistrationRequest = verifier.KayrosRegistrationRequest +type KayrosRegistrationResponse = verifier.KayrosRegistrationResponse +type KayrosRegistrationResponseWrap = verifier.KayrosRegistrationResponseWrap + +func NewKayrosClient(config KayrosConfig) *KayrosClient { + return verifier.NewKayrosClient(config) +} diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/types.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/types.go index 9a15d205..ffe29fd9 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/types.go +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/types.go @@ -1,7 +1,6 @@ package lib import ( - wasmx "github.com/loredanacirstea/wasmx-env/lib" raftlib "github.com/loredanacirstea/wasmx-raft-lib/lib" ) @@ -29,11 +28,6 @@ type StateSyncResponse struct { Entries []raftlib.LogEntryAggregate `json:"entries"` } -// KayrosConfig holds the configuration for Kayros API client -type KayrosConfig struct { - ApiBaseUrl string `json:"api_base_url"` -} - // InstantiateMsg is the message passed during contract instantiation type InstantiateMsg struct { KayrosApiUrl string `json:"kayros_api_url"` @@ -43,43 +37,6 @@ type InstantiateMsg struct { MaxBlockTx int `json:"max_block_tx"` // Maximum transactions per block (default: 100) } -// KayrosRecord represents a record in the Kayros database -type KayrosRecord struct { - DataType string `json:"data_type"` - DataTypeHex string `json:"data_type_hex"` - DataItemHex string `json:"data_item_hex"` - UuidHex string `json:"uuid_hex"` - HashItemHex string `json:"hash_item_hex"` // Kayros unique ID - PrevHashHex string `json:"prev_hash_hex,omitempty"` // Optional - may not be in all responses - HashType string `json:"hash_type"` - Timestamp string `json:"timestamp"` -} - -// KayrosApiResponse is the common response structure from Kayros API -type KayrosApiResponse struct { - Success bool `json:"success"` - Message string `json:"message"` -} - -// KayrosRecordResponse is the response for single record queries -type KayrosRecordResponse struct { - KayrosApiResponse - Data KayrosRecord `json:"data"` -} - -// KayrosRecordsData is the data structure for multiple record queries -type KayrosRecordsData struct { - Count int `json:"count"` - Limit int `json:"limit"` - Records []KayrosRecord `json:"records"` -} - -// KayrosRecordsResponse is the response for multiple record queries -type KayrosRecordsResponse struct { - KayrosApiResponse - Data KayrosRecordsData `json:"data"` -} - // BlockCommit represents a commit from a validator for a specific block type BlockCommit struct { BlockNumber int64 `json:"block_number"` @@ -117,29 +74,6 @@ type MissingTransactionsResponse struct { Sender string `json:"sender"` // The peer responding } -// KayrosRegistrationRequest is the request body for POST /api/grpc/single-hash -type KayrosRegistrationRequest struct { - DataType wasmx.HexString `json:"data_type"` - DataItem wasmx.HexString `json:"data_item"` // Transaction hash -} - -// KayrosRegistrationResponse is the response from the registration API -type KayrosRegistrationResponse struct { - Success bool `json:"success"` - Message string `json:"message"` - DataType string `json:"data_type"` - DataItem string `json:"data_item"` - ComputedHash wasmx.HexString `json:"computed_hash_hex"` - TimeUUID wasmx.HexString `json:"timeuuid_hex"` - DataTypeHex wasmx.HexString `json:"data_type_hex"` - DataItemHex wasmx.HexString `json:"data_item_hex"` -} - -type KayrosRegistrationResponseWrap struct { - KayrosApiResponse - Data KayrosRegistrationResponse `json:"data"` -} - // KayrosTxMetadata stores Kayros ordering information for a transaction // This metadata is included in the block's Metainfo field type KayrosTxMetadata struct { diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/utils.go b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/utils.go index 5aa1476f..5afed66d 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/utils.go +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-lib/lib/utils.go @@ -3,8 +3,6 @@ package lib import ( "encoding/base64" "encoding/hex" - "fmt" - "time" wasmx "github.com/loredanacirstea/wasmx-env/lib" ) @@ -38,49 +36,3 @@ func HexHashToBase64(hexHash string) (string, error) { } return base64.StdEncoding.EncodeToString(hashBytes), nil } - -// TimeuuidHexToTimestamp extracts timestamp from a Kayros TimeUUID hex string -// TimeUUID format (version 1): time-low(4) time-mid(2) time-high-and-version(2) clock-seq(2) node(6) -// Returns RFC3339Nano formatted timestamp string -func TimeuuidHexToTimestamp(timeuuidHex string) (string, error) { - // Decode hex string to bytes - uuidBytes, err := hex.DecodeString(timeuuidHex) - if err != nil { - return "", fmt.Errorf("invalid hex: %w", err) - } - - if len(uuidBytes) != 16 { - return "", fmt.Errorf("UUIDs must be exactly 16 bytes long") - } - - // Extract timestamp from TimeUUID (version 1) - // UUIDs are stored in big-endian (network byte order) - // The timestamp is split across time_low (bytes 0-3), time_mid (bytes 4-5), - // and time_hi_and_version (bytes 6-7) - - // Read time_low (32 bits, big-endian) - timeLow := uint64(uuidBytes[0])<<24 | uint64(uuidBytes[1])<<16 | - uint64(uuidBytes[2])<<8 | uint64(uuidBytes[3]) - - // Read time_mid (16 bits, big-endian) - timeMid := uint64(uuidBytes[4])<<8 | uint64(uuidBytes[5]) - - // Read time_hi_and_version (16 bits, big-endian), mask out version bits (top 4 bits) - timeHi := (uint64(uuidBytes[6])<<8 | uint64(uuidBytes[7])) & 0x0FFF - - // Reconstruct the 60-bit timestamp - // timestamp = time_low + (time_mid << 32) + (time_hi << 48) - timestamp := timeLow | (timeMid << 32) | (timeHi << 48) - - // UUID timestamp is in 100-nanosecond intervals since UUID epoch (1582-10-15) - // Convert to Unix time (nanoseconds since 1970-01-01) - const gregorianEpoch = 122192928000000000 // 100-ns intervals between UUID epoch and Unix epoch - - unixNanos := int64((timestamp - gregorianEpoch) * 100) - - // Convert to time.Time - t := time.Unix(0, unixNanos) - - // Format as RFC3339Nano - return t.UTC().Format(time.RFC3339Nano), nil -} diff --git a/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/go.mod b/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/go.mod index 00f669ae..99ddb601 100644 --- a/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/go.mod +++ b/tests/testdata/tinygo/wasmx-kayrosp2p-ondemand-lib/go.mod @@ -33,6 +33,7 @@ require ( github.com/loredanacirstea/wasmx-env-httpclient v0.0.0 // indirect github.com/loredanacirstea/wasmx-env-p2p v0.0.0 // indirect github.com/loredanacirstea/wasmx-env-utils v0.0.0 // indirect + github.com/loredanacirstea/wasmx-kayros-verifier v0.0.0 // indirect github.com/loredanacirstea/wasmx-utils v0.0.0 // indirect ) @@ -67,3 +68,5 @@ replace github.com/loredanacirstea/wasmx-env-p2p v0.0.0 => ../wasmx-env-p2p replace github.com/loredanacirstea/wasmx-env-httpclient v0.0.0 => ../wasmx-env-httpclient replace github.com/loredanacirstea/wasmx-kayrosp2p-lib v0.0.0 => ../wasmx-kayrosp2p-lib + +replace github.com/loredanacirstea/wasmx-kayros-verifier v0.0.0 => ../wasmx-kayros-verifier diff --git a/wasmx/x/wasmx/types/kayros_verifier_schema.json b/wasmx/x/wasmx/types/kayros_verifier_schema.json new file mode 100644 index 00000000..5ea23767 --- /dev/null +++ b/wasmx/x/wasmx/types/kayros_verifier_schema.json @@ -0,0 +1,318 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "wasmx-kayros-verifier", + "description": "JSON Schema for wasmx-kayros-verifier TinyGo contract", + "type": "object", + "oneOf": [ + { + "type": "object", + "properties": { + "verify_proof": { + "$ref": "#/definitions/VerifyProofRequest" + } + }, + "required": [ + "verify_proof" + ] + }, + { + "type": "object", + "properties": { + "verify_proof_hash": { + "$ref": "#/definitions/VerifyProofHashRequest" + } + }, + "required": [ + "verify_proof_hash" + ] + }, + { + "type": "object", + "properties": { + "verify_record_hash": { + "$ref": "#/definitions/VerifyRecordHashRequest" + } + }, + "required": [ + "verify_record_hash" + ] + }, + { + "type": "object", + "properties": { + "verify_record_chain_link": { + "$ref": "#/definitions/VerifyRecordChainLinkRequest" + } + }, + "required": [ + "verify_record_chain_link" + ] + }, + { + "type": "object", + "properties": { + "verify_record_timestamp": { + "$ref": "#/definitions/VerifyRecordTimestampRequest" + } + }, + "required": [ + "verify_record_timestamp" + ] + }, + { + "type": "object", + "properties": { + "verify_record_uuid": { + "$ref": "#/definitions/VerifyRecordUUIDRequest" + } + }, + "required": [ + "verify_record_uuid" + ] + }, + { + "type": "object", + "properties": { + "verify_level_proof": { + "$ref": "#/definitions/VerifyLevelProofRequest" + } + }, + "required": [ + "verify_level_proof" + ] + }, + { + "type": "object", + "properties": { + "verify_proof_path": { + "$ref": "#/definitions/VerifyProofPathRequest" + } + }, + "required": [ + "verify_proof_path" + ] + }, + { + "type": "object", + "properties": { + "verify_kayros_record": { + "$ref": "#/definitions/VerifyKayrosRecordRequest" + } + }, + "required": [ + "verify_kayros_record" + ] + }, + { + "type": "object", + "properties": { + "verify_kayros_record_with_proof": { + "$ref": "#/definitions/VerifyKayrosRecordWithProofRequest" + } + }, + "required": [ + "verify_kayros_record_with_proof" + ] + } + ], + "definitions": { + "VerifyProofRequest": { + "type": "object", + "properties": { + "data_base64": { + "type": "string" + }, + "data_type": { + "type": "string" + }, + "hash_algo": { + "type": "string" + }, + "api_base_url": { + "type": "string" + }, + "api_user_key": { + "type": "string" + } + } + }, + "VerifyProofHashRequest": { + "type": "object", + "properties": { + "data_type": { + "type": "string" + }, + "data_hash": { + "type": "string" + }, + "api_base_url": { + "type": "string" + }, + "api_user_key": { + "type": "string" + } + } + }, + "VerifyRecordHashRequest": { + "type": "object", + "properties": { + "record": { + "$ref": "#/definitions/KayrosRecord" + }, + "hash_algo": { + "type": "string" + } + } + }, + "VerifyRecordChainLinkRequest": { + "type": "object", + "properties": { + "record": { + "$ref": "#/definitions/KayrosRecord" + }, + "prev": { + "$ref": "#/definitions/KayrosRecord" + } + } + }, + "VerifyRecordTimestampRequest": { + "type": "object", + "properties": { + "record": { + "$ref": "#/definitions/KayrosRecord" + } + } + }, + "VerifyRecordUUIDRequest": { + "type": "object", + "properties": { + "record": { + "$ref": "#/definitions/KayrosRecord" + } + } + }, + "VerifyLevelProofRequest": { + "type": "object", + "properties": { + "proof": { + "$ref": "#/definitions/LevelProof" + }, + "hash_algo": { + "type": "string" + }, + "api_base_url": { + "type": "string" + }, + "api_user_key": { + "type": "string" + } + } + }, + "VerifyProofPathRequest": { + "type": "object", + "properties": { + "proof": { + "$ref": "#/definitions/ProofPathData" + }, + "hash_algo": { + "type": "string" + } + } + }, + "VerifyKayrosRecordRequest": { + "type": "object", + "properties": { + "record": { + "$ref": "#/definitions/KayrosRecord" + }, + "prev": { + "$ref": "#/definitions/KayrosRecord" + }, + "hash_algo": { + "type": "string" + }, + "level_proofs": { + "type": "array", + "items": { + "$ref": "#/definitions/LevelProof" + } + }, + "api_base_url": { + "type": "string" + }, + "api_user_key": { + "type": "string" + } + } + }, + "VerifyKayrosRecordWithProofRequest": { + "type": "object", + "properties": { + "record": { + "$ref": "#/definitions/KayrosRecord" + }, + "prev": { + "$ref": "#/definitions/KayrosRecord" + }, + "proof": { + "$ref": "#/definitions/ProofPathData" + }, + "hash_algo": { + "type": "string" + } + } + }, + "KayrosRecord": { + "type": "object", + "properties": { + "data_type": { "type": "string" }, + "data_type_hex": { "type": "string" }, + "data_item_hex": { "type": "string" }, + "uuid_hex": { "type": "string" }, + "hash_item_hex": { "type": "string" }, + "prev_hash_hex": { "type": "string" }, + "hash_type": { "type": "string" }, + "timestamp": { "type": "string" } + } + }, + "LevelProof": { + "type": "object", + "properties": { + "level": { "type": "integer" }, + "position": { "type": "integer" }, + "hashes": { + "type": "array", + "items": { "type": "string" } + } + } + }, + "ProofPathData": { + "type": "object", + "properties": { + "hash_item_hex": { "type": "string" }, + "data_type_hex": { "type": "string" }, + "data_item_hex": { "type": "string" }, + "record_index": { "type": "integer" }, + "proof": { + "type": "array", + "items": { "$ref": "#/definitions/ProofPathEntry" } + }, + "root_hash_hex": { "type": "string" } + } + }, + "ProofPathEntry": { + "type": "object", + "properties": { + "level": { "type": "integer" }, + "position": { "type": "integer" }, + "hash_hex": { "type": "string" }, + "index_in_block": { "type": "integer" }, + "sibling_hashes": { + "type": "array", + "items": { "type": "string" } + }, + "sibling_count": { "type": "integer" } + } + } + } +} diff --git a/wasmx/x/wasmx/types/system_contract.go b/wasmx/x/wasmx/types/system_contract.go index df958f1b..397bf51a 100644 --- a/wasmx/x/wasmx/types/system_contract.go +++ b/wasmx/x/wasmx/types/system_contract.go @@ -2,6 +2,7 @@ package types import ( bytes "bytes" + _ "embed" "encoding/json" "fmt" "slices" @@ -88,9 +89,13 @@ var ADDR_CONSENSUS_KAYROSP2P = "0x0000000000000000000000000000000000000072" var ADDR_CONSENSUS_KAYROSP2P_ONDEMAND_LIBRARY = "0x0000000000000000000000000000000000000073" var ADDR_CONSENSUS_KAYROSP2P_ONDEMAND = "0x0000000000000000000000000000000000000074" +var ADDR_KAYROS_VERIFIER = "0x0000000000000000000000000000000000000075" var ADDR_SYS_PROXY = "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" +//go:embed kayros_verifier_schema.json +var kayrosVerifierSchema string + func StarterPrecompiles() SystemContracts { msg := WasmxExecutionMessage{Data: []byte{}} initMsg, err := json.Marshal(msg) @@ -909,6 +914,27 @@ func ChatPrecompiles() SystemContracts { } } +func VerifierPrecompiles() SystemContracts { + msg := WasmxExecutionMessage{Data: []byte{}} + initMsg, err := json.Marshal(msg) + if err != nil { + panic("VerifierPrecompiles: cannot marshal init message") + } + return []SystemContract{ + { + Address: ADDR_KAYROS_VERIFIER, + Label: KAYROS_VERIFIER_v001, + InitMessage: initMsg, + Pinned: true, + MeteringOff: true, + Role: &SystemContractRole{Role: ROLE_VERIFIER, Label: KAYROS_VERIFIER_v001, Primary: true}, + StorageType: ContractStorageType_CoreConsensus, + Deps: []string{}, + Metadata: CodeMetadataPB{JsonSchema: kayrosVerifierSchema}, + }, + } +} + func SpecialPrecompiles() SystemContracts { msg := WasmxExecutionMessage{Data: []byte{}} initMsg, err := json.Marshal(msg) @@ -975,6 +1001,7 @@ func DefaultSystemContracts(accBech32Codec mcodec.AccBech32Codec, feeCollectorBe precompiles = append(precompiles, consensusPrecompiles...) precompiles = append(precompiles, MultiChainPrecompiles(minValidatorCount, enableEIDCheck, erc20CodeId, derc20CodeId)...) precompiles = append(precompiles, ChatPrecompiles()...) + precompiles = append(precompiles, VerifierPrecompiles()...) // precompiles = append(precompiles, SpecialPrecompiles()...) precompiles, err := FillRoles(precompiles, accBech32Codec, feeCollectorBech32) @@ -1076,6 +1103,7 @@ func DefaultTimeChainContracts(accBech32Codec mcodec.AccBech32Codec, feeCollecto precompiles = append(precompiles, consensusPrecompiles...) precompiles = append(precompiles, MultiChainPrecompiles(minValidatorCount, enableEIDCheck, erc20CodeId, derc20CodeId)...) precompiles = append(precompiles, ChatPrecompiles()...) + precompiles = append(precompiles, VerifierPrecompiles()...) // precompiles = append(precompiles, SpecialPrecompiles()...) precompiles, err = FillRoles(precompiles, accBech32Codec, feeCollectorBech32) @@ -1240,6 +1268,10 @@ func FillRoles(precompiles []SystemContract, accBech32Codec mcodec.AccBech32Code } } + if entry, exists := roleMap[ROLE_VERIFIER]; exists { + entry.Multiple = true + } + // add denom role if _, exists := roleMap[ROLE_DENOM]; !exists { order = append(order, ROLE_DENOM) diff --git a/wasmx/x/wasmx/types/vm.go b/wasmx/x/wasmx/types/vm.go index 77579307..fff96143 100644 --- a/wasmx/x/wasmx/types/vm.go +++ b/wasmx/x/wasmx/types/vm.go @@ -281,6 +281,7 @@ var ROLE_CHAT = "chat" var ROLE_TIME = "time" var ROLE_LEVEL0 = "level0" var ROLE_LEVEL0_ON_DEMAND = "level0_ondemand" +var ROLE_VERIFIER = "verifier" var ROLE_MULTICHAIN_REGISTRY = "multichain_registry" var ROLE_MULTICHAIN_REGISTRY_LOCAL = "multichain_registry_local" @@ -367,6 +368,7 @@ var SLASHING_v001 = "slashing_0.0.1" var DISTRIBUTION_v001 = "distribution_0.0.1" var CHAT_v001 = "chat_0.0.1" var CHAT_VERIFIER_v001 = "chat_verifier_0.0.1" +var KAYROS_VERIFIER_v001 = "kayros_verifier_0.0.1" var TIME_v001 = "time_0.0.1" var MULTICHAIN_REGISTRY_v001 = "multichain_registry_0.0.1" var MULTICHAIN_REGISTRY_LOCAL_v001 = "multichain_registry_local_0.0.1" diff --git a/wasmx/x/wasmx/vm/precompiles/71.kayrosp2p_library.wasm b/wasmx/x/wasmx/vm/precompiles/71.kayrosp2p_library.wasm index 5813e8c86964bf8f21dffdfd5c251e0641827f9a..b56f2924e41449c3c9fb8eddfbc21a66cefdcee7 100644 GIT binary patch delta 109915 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 NKRlgwIBxR&{{Ymg9j^cY delta 110106 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ð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 diff --git a/wasmx/x/wasmx/vm/precompiles/72.kayrosp2p_ondemand_library.wasm b/wasmx/x/wasmx/vm/precompiles/72.kayrosp2p_ondemand_library.wasm index a2787443942c5fbb64f2e8db0a56d03a140e5b3d..09f91bd82aa35cc67852f3f5ec1642467da57422 100644 GIT binary patch delta 110446 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

sjk>+b&@^;Hh8dnICsox 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 delta 110726 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 diff --git a/wasmx/x/wasmx/vm/precompiles/75.kayros_verifier_0.0.1.wasm b/wasmx/x/wasmx/vm/precompiles/75.kayros_verifier_0.0.1.wasm new file mode 100644 index 0000000000000000000000000000000000000000..b2716d8625f4e9147ffcab09ad96410e2e64481d GIT binary patch literal 323675 zcmd443w+&2b?^Is?T56tq`#k0B18UrV~Sjo*0dpU-P}fF;=CzoOMB8&dXhj4i4-7y z5YirF3t~V}1130NzW&6>wQx_$ji<0y*aH)ShtOE+)c9Nm`aC*zSoG4W>q zMp#iS|11&jrSKLL6DwiaB6z#hKm3fpzw6fZFT4Go^>@B}!>#wMTXXMS zYhL-R>WlBV^_A=H+OQ_d=19?T&$^et=+-s&-L)aA&XJ`1MR&jaMMJl4xa*~BZhgs` z4bjDOrMrFIOV;1I{;oeAZ8phI?Lg_g!mVwxRNyYu3JE&H4?|qB*GRTzC7+?s)l2eGSq_vp>)3)p$W1SE72d zIH|``M_MVBlMel>mph`UBaV5BJL+kroTf=7i8~U)YU9ESqwXxq(&|M?<)Wxe$Bm+L z+!fd3YBkH^xY`j_%W=6}uXd_iM^R5RA<+fN1sMse3$iQ)QTnu=Y-zdNQBI;P14Zor zbv!-p%%XZ$uFkJ^bVP9+Zm zR86BOt#o$&9Ix}rNl(|3lw3&_TDp1xRx4de-!uBVy5hx)msKiRcV}7Eh61V;MOkO5 z1FE8*&laXpT&6|~ldfk*(IuBA3xDAkpYqfTx=JKXI+rK$vm&aNlq$S+CchMwe)+P6 zm84ou%AE^JRH+PAV5`8&B(0`tM!o0!SFI$KD)p%LL>);ISD`pf;&PUCWLZ{=YEcI7r#*gIF6D^M`^{cl;e)5Gf6VoTF-jtWu^F@_&0u|1Uu7ml}_x2 zhqGGcb#Z6;rE6aL@^ycZMCF$v&M$va^y2Kr>(;D^?kvB^zYkT`t?^HHmv3Fa;dc7P zOBeV|x8Ad1-Q8{ljI_6s*6w;4s9v_= zuG>)s`?HQ+w4jS?H{Tz>Hhx|F_V^v~3vYjC{O)*X{GRx|@%!S@_|@rKvwujZ((k1I znEsFW^~sjxRPxj0bn-{(YtsAEE$M61*QKvdN76T>Z%ntQZ%W^sz9rq3zBPSk`u6l4 z>4WLp(g)J*>5lYW>ATaN>7(h#(|zeD(#O*M=@aQ^)4xccOh1<%Oh2FgF!@6I#q?16 zrS!|`MEceAFVnB3Ur+xw{e1FcI@`^ir*?Jyd6q=AuOUdApBA}+!DhTPDq^={a8-0g zs;AyTH+;0ZEDEp1pc|R>+CS*F&Ackla`KD}XUkHat31;*_AFc{zvU6-1#fwevKA2~ z2zwL>F|T>+m123VwqD6xL_TFYP$X_RyEYpDQ8Fl8L<|fys8p>+K?6fequNhO@dcq$ z3yB+#PIX3<+n-$0s3^Fy0e$^Rz0s{;Nh49v-zX_q(dbc7ZFDN=ZKMj8Ho)DVT-L}H zWQ}(3+6jVj6fvYN&%25Rr(29AfQOeUM(&tdM$5OEHH*a0J#?wndK&h zPah$K?s4QVu8U zWsTTPf2#@}(5pMTBCosCr_;5~h=?7NbTJC3DbcD|5A$z4x`Ov~AQ>p))m@Q0VY!YJF+7I-<8LlE(iT4Bh0)^GZK8l)W^I=9<@71gn$}H3FJ$RO$mvM5 zwmJl_alE-mNRE;X$)V3D5Nm5R`j;Nh-2D7SQSB1rv{eYn_KYW=+q@phN!G6gX|i^m zyZB!6*M2WfHW2~VO=2scRj2vabH9peJ!YF$6(i6V6Ex#Z8=I-#$rIjr%r+HiNWPKS zjf{-7YvOcMLbZ+K&lN+u;`~Co4zitJWR*-F5yKx@RlIIXkv`Ha4L8fbW|AWHR^Ifg zUxP&I_V)dm>sH+kcW3p@$*Yo$@h10^$1+#R??8l>d&wQ3qilV+LZ_p)@mi$mPfnIx zmfulNYVHvpOFYIkNQ&H{-IZ&QmB{Vz_x%C?)CU4Vr{lHxBXK=d5r=>pmC`Hi*rTmH z+kfIIpctXFEF*6aLc_f;5cnyEn(h}+&C!D;mr}P}JE#J~Txx&ZV5Ls0h%)~Q>4 zkQ8D>JH_uSMUMx*e+H=D6)&b?>1268_Iu=y=$6lHlt4awRnh&R74rM5yApS4qa?0% zZ&iUly06jW;zpbf6g@-~?l#{ZgAH`OMLgK(smG-NAHM4MJzOf$!?z1wtGP?vGiPv? z0Peq{{OkvsDh909qtun-dgkk0xCa~Ea0?6EH^Sa&&&OxdTzQeda2Bh|wIaV-tkSHGS2KX4u(^TsrWu(gl{DQBJ9tclDe9>Cw?2JvsVo zqs4B-8ZJg^u!-XD6KjlSqeFJV#sVc-AIL2(h~&o{+sO0<>W&sqr>S1ipK z+JwPGKXpsw`tvp9eI#}(^EHUQjSheN9WUr{%`MN@xRVh-)kcIUMGTBGbKwcBX&i5EAsJ{PIkZtuee6@$h}_-(hQ4-+=)W6bfxO zdrv_6dMuJfhM)OFrHL}o^`$Q_Gbs>d=q6b0fs@1b^{QtKWXs{80T$)!;* zCOg3enCt|LF|P?0VVx5!#4IORfCWx4ztNS#G1q-f7o%~Jt&DzAqs7YT7YNELqf6Cp zE2B%`%-=^Vqi6D3SsDF2L3L%cjG$v>)KAd4GI|C9T<`mJYi zyt~Lg`ZiM%+nKohZ^UgZrT-tf9c!S$7Ks_x#QWt~VXiY@6V)Ead$HO5+i47zWPrYw zxacMZ$Cwstmfh$>nc5DMsqB6b4>haqCI)l#Q>KA^ZIiA%RFv1!8R8)!S-Xxgfgb7; zRMr;BjUY>0e2u#3rBSSDh)eHvPhE?wkG|iq%WzBGL;j_x=(XwwWi(XWRck5v;to^tC4a^ltR4E8n^S* zm8Y`S&EK#NiVTTm&Kl?nZ;uf$vB`RBvIAE}h}h}qCb6VPgZprPJuxkV0{V~ra0QCN6b#(e(aL#v1`T3^1W_6 z_C~5G9NxUH0e@kOWf>kIYCOG`gcSU|wK4!wLjcQCLr}lhO?m_Yovg%$WsSATA+7uF>Eu_b@h9UNV3}Zp#)2aC4E|;c zm$33CnfjENsA-ClK`mUyNJM-676CIy_cdjt%@D}^;-aLv31*~Bcjf{NQL0hq8LEtJ z@_yUiT0DI|m~stDC3iR=gts1HuSdAhBg{R*HoGAzu=@=3x7b^Y~en3B4)M9f2H8%zTm$O1vBCC1+VZ0 zU*-#5u7XQ6(8}mmLTj(z=V4&T*z`ANlYO1feYMX$z@Wp=W z$rQYzDL7LghOd(KdNT}|582 zEnqX;RkLTfNI3KBUbnfCG7M^F3ssW)-od;f@fn0}hRJG|4N;n`7HRFTQoIG4+a&`< z3W4%CpvaP6r(;Bo3V)!LIRT~2A}>L8GB^vWXXeA&9j%#9jqsKSpZX)_agCXsV{9#w+D%4rO5=vYL;%w-V}#nh z#Z$L%sJjxyTKS1J>(R7w6!^QkpZP4aj%4#@|G zi6qB2zUND$ep&JIqGSHZ@hxu)52!1sk=7!@Z99mZ%K1;wOMu4>aV>bl5wwKBJgO$V zb>7UOmYOM7dnk=NL>S66!;h!hihY5565fko4LS(EH#>hZmYGs?qW97bg9uZve5Xyi z2fkqOCUy%4MXLDQ0msp1a=iw;nphLz4N6>R(syMhBVBlai(~`FVB#)*ZeLMa*I=5H z`Dq>w<#PTDMTK%R>jOf`Ux~l8=x~Wd9|U-GggXoN0;E z5w`3ZRYS3BxQMB2MXp?%R!a6x`Yvrf@38Mv`DIa!RmcG(&*V;yhPK>Y)b4@DXL=w_ zRD0XvxJQjTS_(cc&wt-32Pjw42bok~Q|D%f`h;fE%_4+4ov85DUBE=b zmC_RlV($K!3`l{`;QBEESW(i?W$vLLl`vn-DSe5@)9>*ltktDu4~s&UA!KA0<Zu)AFBzeby$!_H`qYfK?!wf-xO<8>fMciu3l90K4saOHR=A>>Tx6^4F>168c^XB zO;vV(d8lOb0(vHve_fp|yO(r5*K{E({mHboaes1Lvw7a9WL0XC^*4U1zA}2ds&E8k z3g6Be1`G>TFmxD{Gw3D*x}yQzk#o?!gH9|_aR&p+cbtI|5+*|4LzWj_$E>L^LL@Tl zcWBT!8ePk8^I97o5?)tE?-g|?Q>sk(UQn8C>=`ZB*ZTyY0!{%ZB}nfh4bP{nI}OwM zT8%P|7eSEYTHYa?N`3LEdnCSwVjqgHljEQma^H@gx0a{V@eQWyDPJrH_YRg>E202S zVIkyCY2hBmxnZS-s-5&zORUXjenDEnP^m;&Qi@aS)FY~zd-9Cdgt%>i*sX!s5fN(& zZ--?#cy@--kYQ)YutOP4+3mIrUpPC%Sjey^WZ10?rs(!rhC^p(7!MithYb6a!Rm0( zGJN^$3=<*4p^)LAGN3GwI?FI|c81B2;b_QkL>ZWw(G(^a#jgj!*qxl)1@O<@t4UBr zUBEQUSZI_zOt;iHyII52Om3zNm~ib7GKe};xDfpy|AuQc@tS65z`4V4LRq^znIMjU zO9Ck&oas(#&ya6xpk+ksiB>ha9#9CHP@;g{@OV1J&v^8_F1iNqIGj+T0DV`PvZ{Z5 zHtU=$Q_7eQWgHJ>Oi@NUKz*_9xM zlcAWSp_n78O61+bCylxTv#Aqh!=YhMg)AqP1xqh+s8V`9;~Bay^srflCT^5?HJ$Y? z<^?S2x*fBJicy2?^6GsXse^joVevbIdfy(@`!>|O7r}!@>EYRwVnLbGmc#q4YIv08M2Fq)- zjQJcAiGd-lnB*t6h4*qRb ze=NbSinW^U_7TCKCP|t&_6*{6X);-|y&B^H`6D%}**^KCk~S~^pp;lz;;LvMa+|Sb z+`h@`RZP@2H07iUSp7uPjkBuVmH#(2kfzYzZmsH{Vn#YMyK|LB>OT9SOjGLrd;b+U zb>g+%eSHx|eO4-0svVuRdRKQ(K5zblg^Lzn(0k!UcrhsE6F)A&TV8P5x-Y2A`h_0y zC41?uIczWYReQO>zkJJ3a!4qceu@@ZND)dYCf}_Vzf5$QT zGxxPWWsi~Os8#*c=}IrX9|7~If-OIUc9#C7C9*HV{wE{UCwF}yT?9?^CEJ)53;vVz9<*fUYpX_ zW&~Jip&nNQ)R)@Sx96D9UNP@Xl*r(t^dfsMlwwxP(yFrvbuI3Ubq<%HDMvb9{ogp6gQB%T<&NB`n0_`CN); zEv&rSn-+}P1})0A#9GR)@B*{h6<|m=4BZQVN?7QYkceiY81tE|B`M-mhpD82sbLoG znHqbhMh>rrR+6SZ(q^h{sxjBs*hkFuWzUoTS&Wba3%OFGoT(;P(h8`lSRzIX&h~Po z;v~kewr51r@uITY(za=BcZ`Zn$k%Qyy?DPi`J+a;qi#I(a^S_#KxL6UhDfrn0u0k)gLd7#(oto_WP1AYDuTDKXOz;Qu*$&c5PZ)y=*WSDkz!R&eLQtl7Lh=rzU^I? zMIuitAWyDZthNMNK=5mLv<-Q_+yga8)t+yJnn%+-l6V$coeK@X;gdK{q;q^T!pMuR zfg_9XK*&FfHVG>rqkraI^>Vn^o(och!n?5{)4amLgG?vPue5=)5krrLQO{Fz=eGQ{ zruTMy)No#F^jk|rH`rDg**)HqUC_(r$7Ur^E1Xo^IFo3B0)Da%NVGb|=4)&BgsPr3 zyte9wkHz!cMp5c3rN(H~(p>+}=xAMr69F?_#uUKAiIr%|b#}kVLf20Q+TCL@y`EJI zN@TE0S3|H?O_-~N?o+*1qY%7m_3T)08qlb9nm@<#WveB&w#b*wu`Anc%n*Eoo4)G(O zZP!HPU-q9NKbV#ObQbrEcu(zZ=$(zWx904wQ$)!|<9%yv>1lPIL=qtB{`n+(Ts(#N}I3$o^bo6X1Dz;;eMc!RyJ$vGTLp7jZ|eD^IFS6sE?L7n2u-T z6?1Ono{irti}Iz>?id|h?oW2b=sv>H7^?swYIk^)R_M3^fxPkBK~eGucF3zpMtt#^ zLVWQl2qcH-jMcXDbrFkei!=|@cb2P_swShM?k-fpt#|Qy+*c@M&lH@k zR<~<@gV=U*YGSdg6${Ni?bRXn>f4FMuTa)W1wc956`q;)>Zf3@U|E&|`F(Wtb~ZHw z$!}jvF8X6x`(>2t2C?t51|zywpUPT?Qmz{S64S4rOY$4ZM0fB6{7N9;SFRzJ>4lGd zc9XSG$AYH3Yx-k^>R_P8TXRjbLeDST8j~f)qkp-?;Lb*;@ZZsZ9<4N$oz||b(w4+8 z^U1Lz_|5uxzVh9YUq{ohr^SlbtO#A=-&p3B3dME$ zxry0onZ-0c59sG=_gNAwQ1r5t17WUela?M1#Apl#k4^KaUzD>ZH&Zk1C1ml-vjMVy zRTPfkND|g9ax4)JBj&ci)vDaDvh2aATy0hE9;ITt-lfrf?aDFtwguR+U{NpzHzUeH zzL6ePko7Ni^i=#LdY)kHtdFL_1=3T4dUS?QqW2ud# z5~>*1rFgU4aa)CAfxp*Q{oxT77Y(K3GyE)cBOlZG1)`Z|gN2~V1~`#3V_}iU4$ItV z)8v9wDwm;He==uaX}p^5Ok>8x*))y4OVmm~iP$A?mF8_&HCl?-PA2mtO|qX(HKd=0 zxsZRPlm91rY^AJ!^xJB?vpIFt(oE;O=4Rf^nFp`()q0~Lr~+?SUmb;iw-ZfwF(v_{ z3#KUE8L(bk+t8zkE?Gj5slLba>>|6VSz>TxlGYNdj1I%XjW$xlT;B}RTt$9U=m~Ov z7#S+^h!U17wP}uhwUQ8CEB(y zk~uv;c8G}qVsCpoXa>@&&Na}onW09r?J(tJyV;z$154h17H+F9W-Hz4#=wlpyR69}RJJnBS=op}&T?y!q3{r-Rk(=ig`nl5W0acGjb(u%C+)&YX z!P2XrC5EbKqw-zZP@!PJQs`&tY^s)cRK13Z^$f6Z_ybjMsL=g^DzE>2@h#178i&eg zKL=TYb6Ct_SH}!ICst}&8%6A#hR5gjF1wX z3-yz8^e8nuBj6mdl(xkNJlGlbK8#)L*>v*Y?5a^@?Q6}?lQ-f6>sg44G^yM1%9>BC~DRH}Ig zS>!$|`!<#*Va5(BM9U=Z+hh;DbbI2nvuJHCLrM|CDj$u)ORG^V>sGBmBAT9>VT;?6 zxW5Bk*;8{WP{XE(&|IuDwkwR>LEG*>%iL3~*7`9z+^DB;x1rpVxF<=Idz8BZg`=#U zA_1nqrao7>24+qYtRoy(XzU&1N&Yi8%7a&HS`Hth*r|UjxeHYydj=(T)CAEF$j5}- z91T0p$T%*3K%{=69JS|I>U9&KGE-&T=sjR;VGB?|#_Fz+8Kv9W=vZGzV_^XjEG0lY zfa=eFSaMufa7MR1;+ZjN$dADcrSbG04MngJ57bR~@~lQxBTsAHq0J^N|KUI!E8He0 ztZ3>-t2An_yc9{5xXD z`j4jWL2`6@8V{$wB=&@eM(r2@!7LVz6VvKJmj95p7Q$MObKK$%q%-OY)&`txL=nz0 zk2BO;3Pd|!0?skZzt?c~C+vB#db8&x)O&hXb;WolS=b;8>8*eB!xD)Y(2d?W|6LFd z<7PgCd~}j}EtMZ;RnkuUEz;gM`URZ(9&NQmlvs_XeT~?xMDkPYI||z$c{>s4nigFY zNhc@!n@GUEhmd{JXP>g{$Ir-qEM%W-S8HlkwNSAl`_d@N|Er4L8Ymvo4t%Uzy3QG? zwV6Wqo8-Tz)a;Qj$A(Fh**JNaiWu6Y}kD=Q}9l~HTD6!f75XRrYK0bR*%$8`t3?NnMOJ$^93p`{09R4%%xX*T+#pgk4+j z5vK#jiOYyX&u6y(Fl+5U)ON&`(VIwNGf17}eG`Kmi%?-tA=Eq{FATxWEJhLBV&_-P z5#v#t%SDjuluZvzVA-z8!vH1#!Id7t3cnvJ6^FK}L~RLHiCfPs(Y#7z^Ts2)p?JQ7 zc8m0I+Zj!USZ*we^phEBO5QhXNpS+uoOwM>lG z4$t>~Pw!G+(?VpMF43;L@4UXO^_P{=TZ97x8lZa%l(R(F;+0R#k+5|u252$)dwDp(V5u9VK$95xWd(`#b3B)2)!tB~_v$rkV-~N&| zpldNjKia<$yg;M^%`Dy}RAJ_bn|CLHiOs;7+r)8E+l6KIWc$@in_0db$EC*1DF2|u zc($|1H<2a_)bN(!tusrI{*Es_8iD+ zXHs6$G-Ey3O27B>NRH5xk)t=r&mx!3_YiE~7?jyEe>siM7R2e39C%0R+eo zjxRJIos=K>{uDLD`24)uld;jDmS&@key{Tz<9Ix!+YZ(W4SN#4^1!1T@7A?bdmlS> z?7y#PF@%{5-8|ulpXL)$KlmBse8MKed@nalY0X626XkehbA%nBN(TIYU`_25U7Ey^ zd|{VHG}i_Z?%!gTrNf)o3~lUOgLZEbft{MbV^#_mMea51fLfg2A?D?G_|xn-_^6To zS`O0CLirjZ%|l8<1-fc45i9rGW<8cTf24ERdR0oU4pZaN9VQV&wFDKiTNth-@<*^v z#@)#;vTK%f2>6LFR`{Lx+iK2U0gz~fiqu;;CjR?v!H$=j*pOF~PMVlQqBvjVfr#a6 zp=<@F3#@#hue(!}6LUuu6@3XAO?&9%k9vFU>5vA(oZUFVr70wuk4U`0{=$4Dp0%k+88y*gWsKm%2oy>B>7Fc4MONg_%Ii{TO-9-QWtlB$6rN$$yJ7_jcE zpR6hV#YJ{wU$|XKZDAEkR3Uh68mi^vlAn%90?+Ay_$9JujmHu>#s%w%`#b~QeOr=m zUaZx;a60R%2%c!4=6%mzn0+X7&)15<2nxnlZRD>Wz zor8|6h#p6V_z(8y7rW!f5Dn%d`7I+#Lt*zZ%-;?fa&v`#24 zUY;CfxK=o+aIzD5az{G{^Az=gPotCl1LWd-o!HKfdH$trh~g2y({jd4QXTDVLX{ds zVvBguAWT8??4pn(whOq}1OvDt63h=OvUIR6az{f(C8;Rq2*8=2?kt%>a34O~?(uW(z09d2X^O6g4}Ciq3Uz_|>o3 z!l`5nqysHEeV>$<(w)oF17)p=VYm60Lg(hdsYFtm#8Qm53Kb{J#?DX!GWdcNED-B9iQJV*?=NQ?WGCOciUYD%4&R>%|h@5X8M?e|lO zd>CzV3@T7M?qus>+6%zA1VCEryRB>LB5a1&*gh@FQtjz%P)Ro+x<+GZEOUE9@%fe* zIUSzB)|L5TR=1YB)gwK zUvY;&pe4W8$LJa-*j8ZQ3oskOz9QmgCD=}a?}r53+@-S4Ot6y#{}K|gHS^pAyGU>% zB*5x8H^Ckf{2(OY;;eHM>?OeuLjo?0Iyb?768tD6;M%Zr6C5DH$&i5S#Li7{hy*_l z3AkPC+ysY7@UN`|=c~n068t12;1aTPF&rbosgQuX$IeY~oCN>Y!f-xLo*=3s^G=+}oqu$D0lg8> z0p6!QXn5LEDP{ggfX23WAiDgb6c6dH!&UPeIh{IRwfQ$S(x4}oy9usA&2zlGZ$Rwn z2I`&>N#a*=cNOD~60J%|uxePpBm*aL4eS?;a75lpYecJJz|wCRo$BE9Co~6h);ijW zpo$u@87xx>whhV(}5(EZGv_rbG@iAmFdji#K45dv=hvP+dI8d-PS3M ztE8mL-;9oyT@bs`fJCJmC2dqW^CS@L4v2OIM5Bf%c4Hx<6>7v=cIE2O3T=ln?+cmt zhRkD~wpWqc6Er+xfytof2r)`7x`89oj7hYP*u;!`dxv`KAI1I*#GwF)@@?X~5*a7o z8rX|!cq>WaFRg01csyur-i-1G;)_~Cn4(RM~JSL7&uk45!9=H+R7A=*)sQfb}-s;zRzlYsv}?MwoTh8I^BV$Bf$|eOHmP>KgcVk zkbcqz^9j8yOOGgN(4c?G(4(53M6TuNaML`P%AWeF*Pz3(snD;sR48z-LR$|zX81COt`P(J`!mAuN&jRY@pGvRab3cko6+6<7=Ug zdx2XW_p}~%>p^wg&cjaXcZ7lzq7GWJAkZYyQ~W6eIW=@(omEjKng)21KZSE98a{|X z@~3dlMB4!F;7{TC649Lw(w)4^Y#2SJuEuFyvz#z>fPDyeT35a!c6&T*+&bEre>o5m z?jzyux3e=#2_K!VqRK(DuR{ht&ijrgE_=XR8p`8Y|uZ%+qGxFw%67}5n(Zz*dR6V(}mlE+B3OzCm_pbf@4Y%7bQtGVs( zgiHv17rS|PN)S5qIPs8TJM}otW0$MxQMX<|2xA3zxV+&XxN?kruf&f-dKIqlc#y|V z*5ckJy|$ae_kXRLKjd}3sjxjAt(sosrR*dvY&~h32kS{wJeW;4iMYw88#j$~q$O@A zfSb4-Z#^95;S_(PwCmJ&;K_`X3AE)f-5Jn#0F@kgW(k1yZDe?a8} z|Ii%pLnQw_Edzq@0zL`+ z$8*5<0G|SW|39k@&&|IV_%!gXbHMilKMDMObHEP(A3judADjbz2>1x_u{q#}fo}u; zN#JMIkDj=Lp7<3YbxqRtd1bXDD60`*-vZVt*Z~h439yqmLH{0DNw5hIJ87QW*i8Z3 z`90>Ef*tj+DKm~wpsb?&VY8@CN^ynfW8bPWwPtl1+jYkwojh&ktCHVAcM<%i8}(81 zRz2f)*o<9pv+b&WE^f|mX8&$na!+Cp|G@{j*^h%Lm6z4fMffMu0Sv8vnXZO%&~TnV z11U7w)qQPR{L$@j_yf?)?g*|jR%x)jN`Z(#p32YPk0-+`@JSs;K!G2vdNcS47Pcoq zi|i;r;gO=9A%@(oa>+Om5F82!4uYV4x>>#zb7C;Bm+#8`9eVp0^WPG~*c5`3kwyE5 zQPCoS`|7nx#}v9wB$F}Yk8#27fImfZ_~zQU|=ff{avcuO1z8UuYx8y1=uvniPpnW9=3pHobL1<1bmiVCeT(uPXPLm zKyLD{W@{3`w*&tS@FyX%^E~jKz&{K8xa_*m1K$JuFMxk;j`H^c ze-ilCcQQPmC;xunp96lF{7iVyq5lBzgTOxm{n>fohk$<`_&3RazWN;o{srL2fS<4Y zqrkrie0q-Zj{!df{D;8jpQrrez`q21mwqqe z6C|)ceUJwe@o^qZ#P@w;_GmfwjUeNPfSZgTXg%!V;V^$kDCl#l=*(y-&{6&-0eu}1 z*A9JSwu}pYjK3-1-mLs%3@Lj;q zN8eW9+kk%*IJWjV^lt~g1NftJ;NJ;+6!>Fv;NJy&H}Io#!1n+j1ODAP;Cq4Z1Ab}_ z_U9_u`U9jd(Eu>!Rp@X~uhW%T>UF<| zO>6Q;zDZy^eh^geK@Xd>iQ)b?cOaWS)dZ;`cZAXz&M3XgGQg=f+o*NK5}(iu%K#Pc zz!)dJzoG+b4tuQQp~Nx6b@B{cJKtis_8G42dSOlzaE)5}9bcYZ_I{s!x250f(~l}W z6f@$UgjIh2!Grat$s@DIi6cisA36cp`q1&#!;~I0$vw=&DgO3Ru4&Dg&Lq&5zplDZ z0D9C01Q5=iegNMJ{4wBO;hziN4*YT8USXUI-wAv_aIbLAgzwlE8U}Yuc=FXgNG7ZH zI1g6svA>>G?cIMJs(k>kReOKyVV@pU?Oi+^;_s6!+GnaQ&|&^Q)g~K+v#KrlQT{&N zCi@IHvbK$uY|H4Rmx^scDu#jiy}L-vaSs~~u<7!kANeHP2fuH|&9oh2Mt*_Ws4UoF z51S0I31G%x!6rRyBEZIhP0)C`U?+ow2G|&|NnmBcw)lKw0X7OOa^uudJ)zTj!r`}? z^zK#?cStYG($R8T8b`hvd@jR0n8Z%gEHgfrsaCse0dDPb3O3rqNj<1tj`48(`zXM# z_;8lbMW7u-kMgGw#W96qTK+;_)|D%qJ03z`BOM&qJsb@_)~b^L0Z3YvrA6Br3 z8DJB@o&;u^f5O8i0*sAr?jSIev z5&eIKXt(tTp&mPUP`d`a!z7v}QC00S=3&DD#%57>5?CtO0S}uFQIz{RzSxi>;_`KUf-eD3wKmn?&wWZI?_C@!u5bX}M@=o}?(_uG( z-^ACK=!eN`^_^m0CguLw8J|pkA&pSr+W39Yff7EIp9^lDX$U91+V?QOwMdDvvj zwg9%T1>1JgXq^Z!4kEbyE!Zv(8xOECVB;;=J`WoUuu)(KfSH^f^03hWV<(~eTr1zC zhuKO|fl>mt_d_}lNkvb1*l@_lkr?+lFq7+%9~+(bgzgFGi!GEpJ?J(M;fN3=ZrqSC6oc+ZtqSe+kitW_VeRl| zEBP+G$BJK;_Ihh@x|7{Oa%kw3VY=$IxPK>b56Ih%%gFL-KgMxf5$a`fNyx8pjL;p^ zKyQ0Q#<6fu;^J6JEDj0Be%$;6^txr~c(tb6T0xFGi6Z4MXO&Oha=V-{e;FZqL>qFB zq&VyekEVRLg>W);+umQ{Gd@t3zg#gBX;T|X*gfcT9LDvdZwEOknKy8}$hKM@v^_qy ztDl=weadl*J211WA8hREXG0GQ1-cJ0@w@t2SJlOTyU8VwCQ$bC^K1M033uDuo;1IQ z0~Wdm#su_drHRorTZ7j$^c0h9VZsM6TF4f8V0lo_(=0r&Q z8EjF+f4~;>IV<&mo%D4aMz3mqt?-d)$7fV&91?**fV-E zRs-3oxUQmZHPFd6zPzLwa1M^&qj8}N3ADR`TDEKRO4a6|r8s226En5Rtv2lQ>rV#s z8N=N)f?lp}qMrBI%d!M*Hbs}Zsi<^jNR?<^?UXWv6WtOdJO;1YXgkYvq5a_8zr!PwbsR-Jo)`vn8=X z{^6a{<4U(cnn-EoIZ!wp*N|I;9JSvP=_NA^4y~hV%xbe)Ejg=wduLibpOJ;?jD$p9 zZtS?NHFf^q#R7kAx`?^2O+sNLP`&&j>cDAxRh7>Q=)f&MOZC&QAKy3hWXjHz8{Zv3 z?dKbX{5IjeLqB)6kuPo4k8Ua<-)YUqr6LmYmR$ZntfTHN@Zu~5@+y(yFSQpbx3o#= z_w_`Q^@%$A6CZCT$Q$z&^fqXcjpz-FZHq!|$6#N0Wd5aVWAA#6Ub5Z+HI zyx8}U;;Et2JSFs_C82Beh2C~i=ztf7K8eJcg1W%#kYaIAD~p1rSs0Yhf*_gmgILZB zGKrW^SeDR|4TZE|Qz0$)G=-yagKo1d*&R2YuJ#+VOU3lGH*V50JJoWuh^}-l zo(=~UE`@^%p9TjNHsPRJtN{lV(*6IpXh9By$>7vEL)~(N_G|r@Z<0-UX|$Y{n%{`r z_uogtnJ*IPd4!tiNM+6{EjN0x<8jg_QWZJaX}=ogbjWiik$MhM;s<9z{j()H6%u*b za9@63MK(;L16qigCozAOSJEP_&@mEl^g~`y&r3~t%W5+%ec4$`I??Lthp>c~XzFT~ z7?&QnC7e{1bDP6I(v19M`91zlFy_H#T)o;xn$cig?MiBNdyHP7$h?^mBRum7Tjl0_ zIlnvU?r^o$AF7xXHB1i72rOVTsJKNaAlwQ^ zj+U7Mwka#`IEuoTCc~>gnG9ucMB12qbaol68|PFh+)?e?CmQ0V%--@!{x;jN#JOHM z1+;igG`!I?j7n)?7(V&qKX!2J8);k#7ZFuCA27jQ`({~7#=3EeY+N(t_;|Yb%(Szh zWb(6LQit<&zg43%8L< zE$ZLlPC0*%j&^c)hYV?DdN1z`&Q>&AS_Oy|vm}3?L39r}uQ^8{kRGVK&e!Z}BDl6( zUmDX2Jc)F)EMxkOnr0&gW(GS!pRDM%Dejr_?aMf%Gp2S_Pf8hycp%G5wKsD6nHqVy zop!Z}I+7(}Kw6ZCA(6`AR$$h`Jb%|i6^eS0dAg=dMC!T{ewH>9c$2Ccy!CS?=J~ua zb3eouwk3+2ed`F@7nm+E%|-AZq>K1_N52|-f#cAlKSLOA&^V%P$VpqaP`&=UtZV76 z6-1Kl7j{O2>za{%ZcMd{g@la(PRA*Pp8&~G zKwIfcP`c#MM9%8OG@|nF9*7JF8ab}>$Dt3w-V)t#rW%>%x2f+R{Guf?ZG2(aQ5S)| zoHMxu;^|x0nex;bRO@sk;R^{A-47*E_x+It1{Os8DHa*#3Q7>P|C}9VJaa4Xdwdo1`;=x(=e^_ zAsNi50Q4rGV>PPRQ5@1YL_#5=GCJ612hl98-InU28jWY4(1fZ`PV0l20wJ@KYZ^m6 zBV2iVe<|)%HyGg4iD$G^Ip{EEApXf}UT(LQNbz4ELsE4=si&l17rlET@*A8ky54`0 zR=boms`61t~ca5+I+7LO4QS$ zMyT<{PAxa9soin=S-B)qk^iS5<38sFr<} z4x(~u(@gz_Gkw!VNBTK|0T0EiR7JHnf=O`my;c{EyyTAjE$B7^p?V~Q8D=*}sIO}u z7?%2zWF=D4of^5(m%7-1pz39~J#w3}HbhdSHgf-I+{V-aCJs-~f?~oxl)7;t%OB+i zDmL)_^E)dIxYR(-3rQ&Y*yZ=`-vqP{YMs>xl5cM{Cm{F&g(7qPaNeCk;YO5| zKF5r%07_o&Q)z!gLmf_F4J0-wag@yyJJOLPo9#~0X*5X>^s)gS-HlMp3RL3IzVw-~Ys55~=I(I&dds);Z^94>{Cfo?_Q`Uy1q+E64b4vOyA&n5Z# zL@ozV9*DXBty?qBdFE)23ua6driQ}-)+3iQQ#U=~wsD_+u;P~SJjFBmQhw?l$D%}$ z3mIM3fWHyLSrEs3l+^=Xp0fJ>O8_lo7fj#zRfij@U+7o|t=*NGfbn zA;cUb)HPLZ3KE{dGafS|;UDdmWsQU=jd&SibZ$*>kA<4xF6)s$#l7Y26>e+kky|aG zskyE1g0JpEneaLZjN+=n=N`Myt6M^bv#Q4~y`XYkv;;8S0MU)V^bZ8N)3?*z%Ed?G zgoqN90{;i_Tj)tJyEqStXE9sLE8E{(;eMgBn7tzK`ev2z{8^m7+Q?ycMEnZ)nRm-;Ce1_5(7 zzILPUL`anR=@s0|dpi+xw|1f>N@Pg9__q@=C-aG_^3Y${sJjoSnFH?2lx>A651SH_ zWPiv&|LdZiHQ2*iPCF^+kp-Beays*mGYg{@FnJ-v0YTnOG%zrau^){>RU?Bg+ef+I zY?X^Z>s+-2>Qxeph*G(el>+M`3sjkxAnlgb>kItrZJH|by3xPNp;sr$eM*RB4BNL3 zm`Su1QC*g958n~j6&6pFl1{IQCecLgZ*Jm(;dLj9Hso9 zZ2Z7!(V^tK;kpHxm&*;df=HL^YJS~mlXnfiD(E@}1A?3MbF<7SCiWR-uijTMOc2<$`~&O~ z^)SSc$bS7?qQN77%qm|r;gBMiv{nn#SLH)X#MUv@s9B*O-vPZM z<-+DLBrpQlz-nW;l<{E(d_OWwu+>}2rRdhMVRI^!Z2+QdGxzwrEADB86DZommNqHh z>?ZDUQu$CMAtq8H9E{hQu@sLZ?JsqY2;Z;i9QS=OxhMQT-woxfi)1wy$l39FF9+&@ z;S!TppPo;x(H2&Yo3EOB*;LX(KUAD+WBl+AgWUIpx-WcJLI6LoYkFP#78h!7PINCp zxZ)SPWMIhsl%>F@*;xF2h@|IW%-n*&E4&$_CS8_ZM~w*v>@pm3p(jt^u)i?mQpyz} zhpww2X}`}=v~s-ZJr&1gZVdR}H)}~VA#&wDHCyzRN&F?U*Q#4X&tsc#pDaP?iZr-E z@Ik93^(|g}w9H_sj5z#;a*}S&RJjS1M6wh(#3FiZw3Ogg|iC&~HptNWIkidN>o{2$E|bzkc{A7mSe zoAI-v@~Z0VRt-P(etjLFvSros*XaQz_pB&hmD@|Ss`qtU6p@g0i#=tl`h8SsRq?tl z8&@5RHmw>S-n#X5pL+Ypz8-CCmR1dK|IX3$`6$isxEY_*@bT^M-?*tL2_F3}u(Hll zGt>2{H|oAB+=*z9(g9$@|NOcA|0CX*zZJ^WYGUG@`niV+nH1)4vr66OIev%9ffO{& zXbQ{K8CYc9h<~`m0r^J6Kygn8-uSq`X1@G_8oGXz6k8Oz+w)=ly_Raw-ndq zIgqM5!(@;#XM}^jkb=mW#J}2DU^YM)HPJGVAZx*{XG7oLBBlR=d;_Do4Fk_t=C{sd z)F?@wmhnJFB$O=I>E|XkArM^MtSi^U?Oa&87)2sQSJ|nh@ac4FBsCX<@irMqxj{`# zmrn<8EJ6wid@@s?X7}yr+mQZ-6T@Op$GYYEvnt3fMhhFL5QtW)(5!lrH)Nqbbwe&g zdWGgw8?b>zp;e#G1LZ69bEU7vW&RV*e{Hn@afcgbMGcvj8SxLZi!{UO^z0b0$TwYNpa~MBnfcFkE}Mj;~Ra-Gi9CHWqs`0ZHodhO0ij zWj1&r+m@li#1d}ONtWI{=$3M~PTTyVjfL5)wYsk%H*cw(J|z66au|F`f>2=8)R9S? zGB%~A8_DoCnIxgyAIuTVBESHUcq*kAPgbzZBCzr5V>NWQz1N^tS zsM(4T5HuD&ikTWQg^2;Ih?$x3p7Rb3`qQmeXoxP&=egYpEJUW(X5BTt~>a2@#8XQ5aAI>pU5>(A5xv&Nnx=j5Ph-AIasc&9{4B!4D7IK%i< z_m+2@aG`(gg*$p(>RbT6muBaiV%v)qhVf%}3U7l%XM%By_<1ftGlX}K+ah_ba z;u(L}^~oh0*wC4ZgZxLsb|RA`$gUB+*VuJtSdT1(LNNYO7)k@^xw>u~uN00i2$6k3 z^5D_L-3&9$QHtK=q1WFdiDOr)kljQ?%9g>yCEsx5y<4bjA@D0Es=fC@(M{kHCTuGI zl(hodTrNg_w8&zs2>KFhy1LP!jzA^xuPM+UHPtFpc)OvG;)Y{XIg%~MCSR#50Zfn@ zJl14~bSj*`Cuy1|n+o5+Et|rc$!kX|na>U$UPEyj8E^t(NfYSr`o89j#}wq!4VZr% z5N)Nnv5(~Pp=uGM=+HHu62Q!SZO_n+atW5US}CzBw;)a(!2;C-yJ$`yTgQLe$95?N zx)l_d=yIce>Q2CgVA{y2Au^YAG3skhkkoeaZ6ZIlWN{;s(TL}P`;d@%zx2c`rJ3kc zHlMFF*vs^|eVLXe9;xi**da5QEm_z1*DPseUHej1>rC?tt7N^fjgUqL6Y2MJt49}6 zti{l6^W$8X@9#2sBTS*&F_8a)>cY)n`V&Qwt8Cz=JHl8u-Vt{AcU2~;&Etn;`k{(k zr&Q~m9RtM(jRv*rYhMoE`tW}BWWY|e()er^wx$w7wHSB*^O3tgxwu1*(yfnOQR}r8 zNe9wL==ABHIMTn^{`oJ+Ryr%4)y__Rx<`wyO_RqLGJ85FLf;aC^2ac_^0a&vAX&A3_9@ZU|rEs$iYnS+48c} zajLC zGT~g|arP^M`SE#ie(5nhIQA)E@1QQy+Ky7(C2I$zSdqzREvjbH343ZM?$#I%$%)`l_orMWmib?&>}ATLnHC2kTE85~+) z)l+ZlNfC5$lH)W%p2^HZ$yh8K1I1j*{{*?$XYrWwE#(WTTH8`Qf5dRRki?juqA1VH zBJK`DK5eEQNCxRrzm+q#lJsLm6-7!0&S^UuM3+ORjvdZuvIfpD>W66OA405nDML}( z%tQorvN1?wyu616k)ZO-Zv1m$E7yO0f!Dct|-|S(m@l0OQ%>9yi z9UTga-Xez}Dl1cj?W~H+#db+>2Lo!k=vmjS+5$Ze6&}irw_SQbRHaP)2L~m}j1u@C zj1~I)tf4Y8L%YCc8cQ)49)nUgs#z0b+EO)RYi?exDl?=|kxq@cwp@!0kW*vU8JNle ziJ{Q4O{*S7hiZm%2n>*>HE+sXzu4F5s+&~_3zMqrO;xg*SS|8@ z4NNkpNxelS1Kcbsu{lLOG~U31iD)#gugAz~d0WpU>}`pkH-&qNZA46HwIX4iIuO}K zzY=MlzFD-1+4&FWY&!|mOig`X$&htxKWoN1&8VvSW~};VtkaBYKi`a1--vaZ(ArLR z3X<1qz5La|v4jlI*>SJb^shy>Sj_YOC0^gGC3G^=@gvsdCF4xJ7}@D6S|@}!rel7_Ko{i3^B-HXe#p!C z*1Qrizf!=|2vw^ENK{Jx#^QIREy9ecf=Z(Ikk%4O%+ONdaip;@y%Kv>4jPMQIf zLo@@*YLK4P$;<)rhnO~`Oc*Nc4DED<#4dCzn>EZY7Uchsmd=TrO5vl~$Qmaxgei`V z5E@~$AW2M#;e41)B62iXon>(Iwy-7@AmtDdn9tXGr&cnTV@CN4T4kPnBIdioVycu7 zEn|0C(^AZgQg`ty3T_wGiaIvH2JRAVrWmncB%o-&%1_qRCznU1pxwl9P}$%v14{-y zyn+qdTR~8gbsW-&z*KyUHLGeubdlIod_9%s^+rF(5yoF9o7?O^vvou5c<7dh51YOq zgXUoaPLL0M`}HEE1d>butwoU!>{!W%%vpFvVDeFI$wwyPAhsV#s7N??Ug{GTTv%v= zVWRe3L{uf34v}y`H^M=Tw7dn@}!tEFj4Ai~7QFY}<^e zlrCZ9PDMmdPYo%vRgrG9jKMMhxmbo=!HK|VL~jp72#7{k)6M!}K((^mF-z;F{M5yd zNDC1b4VN?sft-T`8lVYSdx8oc!Z2midz>VuGSzt{J2pRL2C7H~D(#O^U36TASc?%PTwYWrY& zSZE|(f5$X13IZ;rS_-@**Tpm|d)wrN#_pg=beEQR?l7LjyJU$`Zo zx#Y7AskfhI;|&*mYUBVNb4~@;#dWt)J4?MqMLVV%a_Zn2S#mp%f#S1%V@?roHkii> zo#y2c+vbKMF=v*}BVybkAl|6q8gt!VkE23js2l26%bGC*)$Z2M@1ySFW@)r2J=81}rH9?Y;f!wvH>(dfJ4TzG zN>^kLH_Hz*)Z2e<$E%g#Va&&E;fXb3|HLKLf{l)j3VhNqJ&d$Z`zJSLVE|9I!AAmk zVg^iSdZ?(9wNY=4o{m`izy(jPwfeahSoFJoLvE2hB&NJyj=&b9mOtm=Pqvsjn!c*hSDQihFIT;) zxn$L4um9l3@#Sp`HCeLi(vc6cnQN`fHbC9(S7(Fb2Ar$AQU6l(6-!z;@4Nq1pBCh; zmh2%OcZbJ^o7rd+`^59U^f03kTLS`@_IWOeuVW!wV~JsJXqbi3b5z zk0X-bc5C`DlYlV+&vEU;T+N&pCj%KN)URZLAH_ko4ZApO&3UE1!%8oC;{Urq-$PKbZuC7 zR*@Iro9-HFcHawsyWPdl?V}c5#UiHb6kIG8@d?DUBh5-?B|!AcDTr6&Z2CRLMa+hk zsAdY!X5)HxQKJr164#*(Hn8(vedxH+&EkwUPAsB~MeeE_h4R-;6L!f}4ij9w0g@J} z(u>3k)L7~|r5X49eKo(;?frYKA~$XdtP6h^?Z2Q{RBLooT34}Pu-OIcx@exRSY;F! z=w`eH#RYER-Gfc-=Yh2(y}+x+N!E=c7Zvj~sYWl}2?+#uaAJ$#Ho5k-!lg90ER{x^ z0+eHZv5@jebhCb*ub*2qH73-e6~WaW$#o!EP%u5t3Fd1Ow4kuBurAQf9;-)9+gA*0 zk6Sp@oDcN{Kbd~2nlggz9*=YbNPF~tpD^`!Og)B)EkTTHWMManzMjB}0t1nu?J5?^ znj+g}9?kN`Lb#(E=r7H`mud?VOBtRm4BGP*Q587k?57@-%u4VTkk{j@(xX(AhcCr$ z30J(LG6oaI#TtC4AullTFvkaNi66+?@-`93IT&%1J{O9~MWu1Sw^&SX$C*@Ih|to= zY`8lq2NYdOK6nW{gQi=4EiLSOi7$uAjMC@>3}_2k*h>!H&MZWRyfJ|=6u^1|Xv>4zMOx||b}sffBfK^w_` zh*~orI@ZSu9w`V9so3Ze(8T#S@lBGBD(jp=BZh5et#3_5KHxtct zz^8cnZM$`bz{$6>aAG!qlLsyk;B8ajeTA%8;}$1UKjx}1n>f$^CZ6f2)*R$_@(UJ)Bn86!1|L}cxJvBc1 z(k0Pietzu(H-7Tb?|y9C-z|yy`T5h|fBtv>_SJjtx^ziYz#-?u`A2o+6^pdwXiFZ~ zY-k#z{00!k7}faXEX0_}nm{dw9v$T`S( z08I1l@v>W;U>CZk`f-3TnN4ye|PofQM?Jy7b59!3_X^e{WDowg&feQm%9b) zv_Tc6%Ox8~E5hRUM_uFwM^{oh)loWQ;Q^xnZ0}PP`=;dN2pwMg%fz=f+#1Ml0tiy| z*m{x3uYQLB(2~G7u~ju36Cf#0kHK}$1ppUGKln)_3X)Ba9O1D^nz5`E05)?E(a;=$ zjq1BoM_g;hArbGo50yDWcnd)Oud2gektB8=Ds4nV8eA(9J@BP7JZccrA(0hS6Ks$V|191+OGPW}lAY zlf(sE&s4o1(r98rwkh38?O2OVd^^?xy}^5Tf99t5Jp8fSo`{y1v;N>+@BhayfBchw zzVlvQa20Vfc=h+ceZx04ZT`$P8<#{o^y1#nKYI7$-`MfbPmyDc5WHM2#0^k|Sq~D} z3et5C*y}hR!HDoBY|an^!yknhn=mrNZ93E>>+!+SI3Ht$nwc1>tieG0m+0w635Mnf zxdp=>y+IDQb5gt(&Ea*QYGap~QY(gF&_Re2?5MY@q~sO8f-9TlM~_{eDQ@+OH9=jJ zzeLsP;j(6**7zFV(yZ|!dEg$kL#)6fJES`csqQt+;ujuPn93%1pJagMS^xKNALB4w zYlDqKOcj_`mra&TYqFglkg`%y%_|+>^>B{wvDOH`@L5!{On<1=zM&qoL4v$`Epso4 z0X&}4AP0}BXV8cG^Z{K--`hAylitC+hcuTUvrNbq8=O$A`iU!ijlI-JZP>0#(Fa|Z zn+s^c#wlv|Nu-JiTYB(#JXsu3aw-Z&cj6uuh9QXaU?(eVqW2p@xN*z^(Z}dQ6S_4X z=@5^vdu7<62OKM6_g!vPvbKiV>tYtT4j=Z!m)dELU@C>>QL?$wkSG6?wtMh;FZzga zHadn&%Yu^MRdv9D{?*#Utf)jJ`+a5Rq43ohpQ9~xd zW&-_`8v}Sp-9&(7YZGA`1`!;ASVZiZ~gHHKf4u*az4M``}L21;LF?JeS6vOtB>Dv{ZpU)=|dB{_&lJ` z_wD}0kG}WLTW0u;^^vW2{`8s8U;A^mPHn8)e?0oz`@eMCJGYWsJL}d@{%q$R-@NWm z|IK#R!Q0-s>B~1C{OGSAgIM+A6apqC>}e?wO|%`2lMepzTZe9V|4m;!_y`|P=l2tT zdi%rQ{L=65I6*$c$>1mU{_&x2y`NrhT$1+l`^VRQ^yxqS==yj3nCu0=fBWP!hd#ai z&)YxE_g;Q~_TYWbeEzAgeRYJu%`HLBNp#v>4VQ~e(!Iudx0lt2XA=S zf!%li>VcO-(0rsenN^*FkPVj)MU_?l-tQpNA;RfZ5bo?%LAN0YSCYWU)Um1hj+|EY zx00_)2a1I01AKU8N;d+R&0Z&nh|fv~$Hl1QNiUh1mb&~Gn4#7ea!JMlxix1OH4tC4 zM__ZpJuA`hLKyiDy~3Kq5`EDN&61j@MyX=jerdC1`{M#ZyB&~wn{97R#QIw&soA&^ zZPDtGq#Mt&+jKV)BYNVUj3=fI5y5?vhylE4KmT+_vxnmYypKETHg*(z7&VcfWNG9aYrr#f|R4|9St;$L_uB`yXDs zB&rtOgP*+fx=-GF=iMLd7Z{bJIyipkSMK}nq38Yy@vvG{2Y>eDM;^NE;hjH!54)HQ zMRcTVK=>>U_d3MQ8fBo&Lsd#TQsA$uFv%gH2{tXsK=VJ3A+oWtS?f^@!5-%;@3(tc8RN_QpoL8Z4R^}kX&p487&x;v>aSGp&u4=E*R$qJSrq*P3z|<-ICVNRk}5;pQm(NT3@YnEUllfbVpi$mC{{l{nbi|w0MEi z@wEOLrMuJmYnARv>#tL~H?6;3D}Evs$2a(q+YU_p_}kxoA3C@LNZ^C-zxkfAAAjqv zcN0lzAHSvLm{9t9A~7j_9g&!nzLrQ#N?$`HCZ!h;iAm|JiNvJzRYYP^dOneul&&Tc zlhX5uBc$|P;s_}{hd4q?&nAwL%#zL`j*!w-OT>tz#Y%)cr7LJ(=@9KJT~7N-&!l~& ze?|LB2WelaqkW|Vw6FA)w6F9Pw6FB#w6Am-?JGTl_Qe4&rG2F@qkW~sJDX6tg!Yx5 zM*B)%O8ZJrrG2G;N&8A)Li;gaMEk{2v7 z*>K^KIB$)+?Zo{zGGUqoVBNrLJ`VjOXpPA4G@lVl~LF!hr#nFR?^wAd09 zL`(FW7+MmQ2%#lv+&zR4GHsaSvF=stmlxeU7p2vlzd{qsN0pyaw+|MhVloP%@Q?{b zL@L1C5kiG1(QP!QK>q|O`GjtvWh0R8GS3MVND+nEXetY1b_OVlStn|<=BH>?h5nHs z$Q76z_#!Hpya6Jrz(r#S>!@rl@R!l_|U`kIZ&5pbRHz;r7^w87P5

*j2K=f~%4)XolnLjZ>Pw#>_fr%w`oW-HMKMYHi|xvnbCjIwmwX3F=JAb}cC|OoAZQ|G+NA?Jn&Q|SdjOP)2PVp< zFDK;v%ZAy*F zku@Hetg!~5Du>tDJEf0Y`K}&^4x&mwyn_cPtLtKuY8&tTDHY9|Qc>l|ia?0wNZHRM z_%K7=oTIVv^l&gZ)Ag+G!vdn13$D2Z2C&#V|HNnPti9-T)yvyoxGD$Z96nBcne(y> zlXw@3x!%jxU)o5QM!0`5Y33D322I{%#YfaZy;G}Ti#@V+DlRYOWIz?0lOe_0D`s0h zymO4=u!_5mUU6kFi)rB<2fVD$a_fxQ^pv;%+61`vXY)Z4yW|;`?k2-x4#YYVDmPEkg#E1} zNjpjF-~fk%v|GvvHnPni0WoKci%qB4Ch|!~*e3EJX|-*Zku-#pJUd6lNxMKP1!0@I z)Yo1beCW0(fBuv2Klu3xc&>i*PCvf+2cP=M_kQx(z5FitefRaZ{QUmA@7qq8dKxGV z-m&>TpSpkdk8j$|Zy+}KkIx)$d-pu{?JbC;1q!V{KJ(<`5B}(9-yG#PPNsvu-S>l=9{k}? zzk0};$OeCX|1FO{@PkLbe9)T61|PfgJvTjY&qH6_&+iBw$y1Mh>^FCB{>GQiP>37ozy9Ly-v0BaM?WaF?oqcF)0Rq= zOXWI-Y(An72#-nzsEcH=CD9VHg2AsWVjehZEzlewVUtM`b}9y$Cn3ld@92f5okPC- z*36A&rjh5AG5>-TEoeVSkE*5h_}~`1#n2}G#ixmPp1qz@xIk_{`qs(Lq*g?5=sn=m zLT)})n@|1)J<>S*-~4m*ZDD#SZBz!QZ8~2A;sjyvl1-=_@++6{VQ@`R-B4iK7hTZJ zv8Qi|#gp>SP6((<2hvB^sT^@M5bM}jIyPzobXA>o`W5#ZTYYWS9mqa zXk0%@AJKZ4q6DqS$@-1f13F+@57U+Gh`q7|t%qq#(0Z7*WISj~(0Z7*1g(c@OVE0l zwqzo%o3;e4hiOaDdYHBZt%qq#MiZ|sLF-}K60{zsEkWyH+LE!vYfI32n6?D1hiOaD zdYHCkJZMYMdYHBZt%qq#(0UB0{}Vx5g4V;dC1^cNTY}c(Ono0sy|x6chiOaDdYHBZ zt;b3mf9ka*Xgy3@g4V;dC1^cNTQVNBC1^cNTY}cZv?XXg&S#mL-oqq`SP}smjaU)^ z8jV;I!EU8!CdQSbnLwivOCms{5lbT2p%l%;m{K$oXf$F;1ZXs3Nd#MzqL~;~ie>_h zMl6W{jYceqV82o{6BA0&OrX(-B@v*}h$Rv1R*Gg~Tq&9fG#ara0yG-2B!V4E(M*gf zMKgg$BbG#fMkAI)uth1FiBY9!CeUcak_gaf#F7a1D@8Lgp%l#o8jV;I0UC{162Wez zXeP#$qM1OW5lbRKqY+Ca*r61eU`#2>2{an9qyjV=vBZKcO3_b@Dn&sdtv(70G~f~p zr1?idv4#W%1&VG72AUNV6e~$kPz;cupg5g`5Z{p5f(YOJBn0>_NYF|_-3!8d=Oje; zu96VkJ0jt-6!?5dTfskR9FqKtsI~QFQS{F+UDqH*7V(SYgXtOZs6F>1EfASpvqeZa z#0A1R`~3eRI{1!_YcFl!O~wyUXKA#FLTDm}+v?@jWIlbDf?~E3kqi=%3=)wH5|IoN zkqi=%3=)wH5|IoNkqi=%3=)wHk~Q_Z5|IoNkqi=%43bfi3{oQ*q((AGw~1tsj>V`~ zNq2~3kQ&J#yaKPNuQCTl}+kd zdFy~yqw;6sM3U zQ=CpH_2kJEr;sO8oI;*VaXPNllP6Q0LY_=<3VAZc>6lVap3*>`OmPZ%GR5hrQcs>t zaSC}d#VO>;6sHqPJ$W+4Ddfo%r;sO8oQ^B?C)1xw;cDc`^rup|8hJ`RdBUF5D_o5{rJg*c zo;;;Sp5TU#%9@$lB6i~TlhY!M8{0X3QJbs(Ej=T`WCj+BM&tZ83}zNZCtxH=a=f$< zi=yMeI}+VzL?X9llKBeavM8E|{(z(xr2@%ZY;{TIV8BW;TS^N2)zKr6%)~{EWCljL zB-62hCdtvb;GZYC2~N=3heq>ZntLji`!$a}?oUy8>~{aueC%?K@UrHvZD#G9{NCYC z4&STpH_bv^k`!K+-Sy2vCHLFrW9A-iKBkiy68FL8+t_`q`53wH$1C8O{}8WOkKp)e zepKAgqZRAdqvH7jzdBUIdW6|uL@SU_7w|={#9i*R6{y1(^Qp&eCEqmnEcwpqM)r+Xja??BZY)`yl zGH!DcHTNHs{rf?)WNgTcK+jkV>pxiyH`HG_t8i?5b;WIYTJj6#K-K)42tIO&pcS*o zY>zJv3FBJHz-T591S*lGeCzL|pI$dZ}E;isX5+|JfkasCY~qWmRkk=>70 zpg>!v$OwWTC6 zPGT>X1FF)A(I7g)!PtF=djI=&AI`dR@hwGmK5=jcD_0FxHdrijBHzE>AB*6y;{9k4 zm!ek_NMyZN`p8C&lNJb|`Kg`2XO(S*azo}p^;Yt8NCIA&dJ3S*g4s~W>`;YC3KxV9 z;gz5e5|Q_X1WbTu>uxORh?2yLy~_~DnCS>G{qQ#R5SEge6HL0n^NXi?S#ICfW-c1e~Tk2J>=L=Y)vIF6?9o2~m{v zqqnF|#(O{=3tSX80!M5@PvK;uqLQ{1sRXc33Ga{@bQ6GOx#V+_xoCx7E)OXZKVv~~ zzMMZYg&?YhiM1Bd!bW1Zo242GzLWLD-X+b!07EPTWF(lihJ$xGNbI|=Xcq}?Bpn5F ztC3VDM}k^OI80z!ed>}$QEE@Es2B~pW<%6m+a)vljtArjxT4V}lQt6=0)tr^t!PoL z7P-%VHFL-3e-qW-lR*_UFSrqQMqCu}sL0as%qR3tTxMy!(7DBFvXD!_qjdp( z!@i3e2eD(UD4ZKCyv%2?kF5jF&{g_BH8xAhI;_r7R<`TDVgNEs>v}H*BzPml%{)?i z{SVFA?8*j)+2yCNd2)&YI|B}gY&s))!5d$rK)~y|`&7%k=#B4x| z^8YG)9bsYC@>}BC=UNe;yz{i^0v2*YCse(|P-{p>s-)^>)?@x9sYpGQ4LCy%H|rc) z8DW<*UkjFRtQ?vlAdNviNUpDphEGCpGD^29WwJI=2tW}Hc8)gqbJd1Mw%sj;7z0<} z0s*gUeX9l)tyRf;OTII%Jr?uiZu@>^h-AaVe6ef-!tF#>78Ln&xWClE3N&a;`hE?oU_RbWg~N`0cka9@@;)- zO%s_43fLtqf(S6xM(;3nXIMfd@Am4noZrfZ$inoM6+W9FJDIJYYztWn{4u(g=U=cgP45$5Mzf$Y`4?mHfw8)4Iu7WF z&!PDthnz{s#+3`Sd#Z1DvCpBIvm6-F#rc;k$1(o%8Hlc6y*)R0jg==I_ zr9@_EHZ^bYIo9|b!otZ4u?_V^na_8L&nG+%`OJaV z38AeMavW)vxzd-p!j}=QTNVrmk3Q?0V_#rYw>*J(S`}6zgg*vPT1br-i(wxTyDYC( zj^*VVgd?Wn`jB~R$gJgMnQ@+>w|)}1R>5lA7BXq=Ste}!+iJ8KxH;q<3wgCZEw9CX z&JD6VL!KQWkJc`}S0)s-A#e>+Je9#s-7X8Udu8huFD-H{S9XUI+r{X?k`Zpb10WKj zSl;s6uqSrgRXk6U0!6bUW)2)I6E2>Zgpe)J1MfUIMMBdC1$(?b#k|+}W5q(q@JI;3 z;i)QhU-?PqPF5ggP7yAHbtkz*`XCNO07E8Jl-rR<^ykF#ASR`cXTN)Ae zz8Um(4Uf-(H`MYL{kbSe2?=>$`Hn_>Z4qyP>x+HF=g~&uAFkRUX&--KaX#__vXJ=a z!=aONbn92Y^1v+zyZ_qy!)k_ahaGAAGP)gW*eCJalj=Zj##Vel`UD(*#Q9htJzp*~ zdChjN$$e6qi5D%6t|BR{*E)0gH$MQ}NAV8|126>!zYD!QQGfc2&h6ZZY*j$1d4n1P z`Ifm+m?VRwb)XCHHa>8SrX-WgOY11r46`{+Gc0+LP(!?z+xM|Y7G1OgbGTv(MtZp*KQ*eoVv5kEN)p>} zpgKrd|Bkrjt9Y|7-o_La;zRQMdT4Kr+IsYw@Ne)*t5mSKsu1;ubB91{_{^ zqH(mU8;1Y__p8xj2amdQNISK9f;Nh&Mfz8LIJHkoA+1(VP&8J)_97}!CxDQXlTD28 z3&7;_F=mIQYUcfmV4Mk1buO`Jh}MdMKQ;J)nC>8qB0^Toaa#I^80o2q3f!MkMQU{T z`KALnaUxwoL`s8Q*osuZE?M7|;97QCp~3rw?%k|Z6-p5g+)@ks!cL*c{Ft9aYWPLC}6a=j&5sn2_6 zczfoXcuU+;X&&?`Us04_m|}_g!n7Afr_m7qE_xF&33y$7lg31N)3W>pROGCpEDv7@ ziYQW9RE#EhZEp&_J~2O=LKb6MLwH$e{bfVEEy<9pVldRVmllH=5b_H-=l=z|xcDmbg9fi*k{jtDIP0CrRbu0-`y@uP&O?dQRJr`7Ih`|ItLav4 zZ^(DVENI9TAYsZ1FBIo*Cg5pp*|CeU45QOPbqlt1WZ}=mwU-{d@X^{N)U2A+CS*N@ zZmFm2%No3C5NNWyR%zONQL{8MzDkq9N<(V^(3ITUk#1)R#M0a1diiUj z+Rji^+jF91fV`QhON=@}V~ZmD+eSJf+LYowT9k}96^T^SniiYP0O{v zX3MdL*~Kt;%rpY0Q0bXbns9?C(l!$Vl|SCaiugXo{^9~NftxXXMzcez4%1(_nCX+Y=rzsi*)zg_bMB5NwK5^1^Q@zBUMvTfG%!k&X zba%*hZA$;zY)!c2y+)*LG1;QN8j3`+=iiC*SJX~r{-g#15{jfTx+}Br0(`2+d%>=omV&;H*ENjLMDtogC!(TyXMlkHp539hN==u>)^xK>Y-L8B?toG z5+oqKXL#*5+PY>nQiC5^O;COxtD4jPW7Uj`S#qby0w@^(Xk2p3UpPRER@~g>=1FX^ z;{-;jUElA1B{$ncR-=SL(I|0={IZsWLl*?Fv178EYNGtbjchqENY`1AB4DNc6J}u6 z5EW+mLa8dlTTB_b%t~$Y;V;=SnRf!o!X+S4uy#^*v8FDq5NikJkbW&ZDS=rOE5LgX zdeGRsZUn+!LS`8D z{dxX7%6$L*ME{-p=Dmi3`j}5qA9OTS2)%=Nz>De6Ed42nP|Y@={`AwZkfeazN=kfx z+!6rcWDStwxKRN1`^2CI7eA{3FUwgIx@78}zBqw!b#J2x4iT}tQu0_%VnI3cd005lPH7WYKM)qxcO z-_k{fZ(th-l@uosfrZIV^M=bLHv_i3kuO0%9yVN%7{J)r;dOL92irc}Q;MWhmUQs$ zFJ`W;?H>LKUJAiP*Iw({vrld(85ZcZLN*xlpjefjYqLtgG3G?yVcwV(^g56;7o@9KsJyH1g7W*KOJb`i7Pr46WCfxA;q#-50IW{W2;CRg-rbRwHfC3vU9axPGEQ65rCm@2na=5N zny)hW8_i*F^;z`SX0rW-UWK_+*#Ax3>judF=TAsM5xbl3PTYy z1rPeUL;IrH;}rNoHf4{KN;D5vr+##IyN$k>kShPSakmJUbW~N@Z*tq!Br#(+vuX3f^c=cnXQVzum!Qc-lV>glmFh_-D&lbXON(5Yp&jQ*a58^MJW0_K?|4I}+x~j*Du;D!AM57kfB*;CzGy z38{Azgn>m`amH7vy&Y^U)|!D!DpMN-In|M|AR?hYwF{uB!e>1qMZo6!Fj~;Ej`#S~M^^6VR6PF}(D%%{M z{iR29d73rc=u&~+{9c&V^XP*v4q{$#?253Rq&N@abNrPfuqW0h?VZ*V2kFYGi?TaI zPOMpmvGTFomi!)zwU#zIyjr-hRVG|o=^cL0=+&M95Qrph{vR+PivA~Z2;{go$=*Iw zOF;XyBTP=(4GXLG#7D zDrw^M%NGXx;Bmx)R-??`Wc5{FhqZzVL8A~i(A-bY)o{^$T}~VXbs9FGI)wh9oJSi; z2PPXxF3^1fB>AKXnwqkK8RM^~E{xAea_ni51!mRf7*ed%%^g$@fM}EF)OP~Lr8NmK z!5}(s%(IVeNfQAj)oaHL3)W1>d34hzhgGbQs*!*mo=XATzyaW=0YqkwC?En@v6pIt zUjSWIrgCWFzVx<$y7C&Z2th!Ah_#UMipScr`=mfUa=C03UU4^07Mh zeBZH?eaHIA+i}diT>GN|FYm@LKvfMy(J zu-g_eaq~NE7!^gi!LJOf1Ue8yHJF$D0a+uJ#N4DBgI<@2ypKYUFXYy=B`};p%c(;8 zB+Gj_e_14)&sZb_&a_vkXE6%&{joeGQ^&=#6Grc;`4PCMp;mO zs?u7KD?5y$R79+CMJMyrnAHghmg*xwV;UO@_47|r7%#0Y^}kuy`RR~O>C(zP#p_|K zAd_W@*h&z%FMdwU{NyF@CBS<7K zj5*;gom3D}P^8Oaiq4w-wKr4Go5MM#DaPLHWl@j;h?y1!-oc_g2^HiO?sYN%jTzT? zyYvT-a4?gIx}tzu7C7!z>vL0^_Bspe0BVHrso=CvF4Q8EGNYT&(TO16F7G&A-* z?w?JUo=^d^;X5S6k4%vz{R0)F6tfbC9&71!YOiVu@vT*CJy75BU%TpH=@;f#l4h7&G%u(r=~K%#5;Y$3IVwBBM0bO^>mEUwW5(Z^GZn2hC^ELgo5;up zP<@#Ib--v)f<%g8ZOBjya&qyZ_(&-?L*~aUbFa@V%SUZ-KJ%k@R;1q%{}D1XN>KEvcd*X2|afhv& zj3>crzwSXzW=71VmWi|}9(L!oW@8eKHJODWnP1adYaV5*OpKwdaiU~0qF|~vU)^RY zXc>mBR%s$HD$<>}pkAb5tkG`BeK7_5aLJ7mxRZ4YRA5I+(k(G7&?&8IK+YAL<)$Ge zMHRt@VXv`*f<2o$+4+C|v4FX2I7%+ij%ibYH}L!yJAgQa8cmN!;x9>cS-?6tV9OiR zFpsK*Nz-a6aU1|a<~3&>y28`wjXKJ^Qs|TV0(hZ^B7CNI^AHflxUdCODa{27BUC49 zjI;tMiu^N%BEob~!DG7c%TE)t6(|C^+Q9pzNjmLy`k;WeKjqiagON0+gaG-GPDs`@ zXx?p`U@zix?Cyz%w3oV#!cAd*jUISizoyMDX?3WFg@4#Ta_T}^VPGoN_ker$VHSkS zrtTE|-mKN6%osJw1ceFo2nT9J9x&C~mPy4hSVlWWGJMQ*Pbbkj{1)IWf{20s0!Zdb zNRs17rlTWKB9#4S>AAxqU4z4&>I_Br=#_P1{so&(x-GunE=x3-x#FIE-0V`I zENomy9T2u2tpT~QI}ytBhv8sI0Y|v)Z3??z&Tc{i8QE7uT!W+38EEsEMYb@e#i9Py9*3i-L>NB4s-E ze+3l8^ZOj+E*k0S=%{sJ&Rr^3v|#ifDEqx=q^A=1^dvn!o%9S3t!N09XXbuJDz^9_ z&Rx>)mRte{wX$0`Un6FN)T_I7dSu=n?n!bXZb$+Xex*q7?n713b*3gBfdn4ttnMD= zSk*lp3Z1$Ke#9x7q2=;!-PNHcKwVws$204gOYvOAJw&!j$YvjW3j`0!+|`M1!8d4i zSfJ&^Q=&|m@>t~kede#~<|x|t&|RZ~Gi)VU=T_Pf=~_-D>fA(I=c3R#g-V;!xw3nl zY~^Eg?%MxY=Y%o_KKJ&}IrZb$ZT&DUdmDV`GKT2^8N%d1`dX7C;muFZUl5(!LcWx| zWo6qWF<8Zd!HQ}B4>HsHsZN^JCtLn}FIA(9!N2}fxDP-8NwH=yUd@rn@T2U*z(Y>@L2c=AyoS(54 zF}_3j%b`aT2k4gGwU7H(UKmH($+DA)g& z@1|svINFCcFrPrl>QN!3vK9AU${q_+^V-W!ft1R2xWA|Du^_dez3dc7scgx8oU+G) zRBwCPDUedxvb%}0$AXkpewYagt30Gk7rzRHuORh5DcOXSeQ1N!d`iM)G#Bc5-L^Al z?vxdi?>KH(-OwVqV5!b@fB_%%GI|EM4=r)rHFD5V#e-Fv2!S9rKM0v zQE3~gql%(~4O%P;B{(T|92~GTl(~{WA@!A2%srx9_K9rc^2^-l=(D=H?RlcRd>RvP??V#NfDk58fJW99^M{64AB>xsT4H(d_BFJ}#^WaDadF{o> zB#>r$=I<*_1PKQ13BBJuJ6FMf1ijrylDNw8s`{a^Vb0s+T=cWU_zDDTz=O_KjMR-t z0*MMpZV*d_s#IJQ@{TxHv9i+6$flxE67@E5i@6l%*XiJSm@VyW#vBE}*U%sU2)Lk( z&NBn*uC^%@xO(am(^hc>2C?p60}JrWcon*~E?%zivo3g<-jO;33xc@9U75H?n9kJj4 z7fqmJQcFJ#EiqLH>QtKhCUmhVzYyESt8(+M8hGCiBQwNMbzVd)x&4)kVX~J-Z{Q^@ zTnsonFR@nsleNmv(CQm4$G+%d-#MS@ujvCyE_LOh&=tfa-<865rKRJvu4K!>sLb^D z6`R4%i&;J%!Rab}6>m@hyDF#*Bp_fRur$)qcE4{&ZbmKOlFQZ~W5qN~LzY7pNx#?c z8hk}I&~KNd1(1TlE-|G|{0W$71uKtH?h}8Buk^(C{`5M7(n-D5y3E#{Ejd=9?_lOS z!8dwov&MPCxppSY?HgW%8CG^pB%UnNrh8F6T?)@T(>Jn--IaLX#40_mgnBoRYei14p<(SE1G3$~PBov_4 zFj@mR7MrY7q*B!&@)$5UVUm&z*mG&L7oYGM5t zt~a$zrzv7Eh~ttltPn--P$nsUpuvL9L&r`>?f2SVKsp$Q8XFRs)c^&PA&B4;EG5YTM(o#6d*rsjMPNIAidu7%fwal*I@cR zS(AncUAKqre^Ji=C1#^GodEsep)~Axa9tcK{Y%`yydZxDG*`B{e68tg zZw{2OfYl}8tJO`q~+mZPmjbOi7d)pb#Xj4cs{r%LOo)7=lRYcIRq((sh~ zCwi_+K2tXn%Y-nN+0tH>HHj}$W@2(T(FDwKvpEJVxkIQ#`CvON;b6pP&;j1Sugn~2 zA{9RXe}^q0y{|Q9=f8`|L=(z8TWyzh&nI-90JvIgY;|fuM>)5P+E36D%ub;zLb;-n zDsjxpf6t;-k%OfM%S9QB(!z9qsd3VhbXWK_QEEJYNxFkc(g?H_ce^slU{rrT|4srO zI~3qR+kXJOpSP-?H!gf@0^8m|i<`hs=c{nDA{r358nfLCM|#qz6sgihQ7RC#a@`Kj zt+oD_t%bt7Gu<*S5?wUZx3*Cp*_r>roXHHRnEv>+so>X8YeTzZn*F;IK=G4-bzT5)Equ%hY$g9 zLndWhqFN-vW;qkGL#Xc0-pFQ7+IXlQc&Tfm{?HiKxDdfD$G)c!Smfxbp~?j&9d z4FDw4sYdM+&23cMwCvi#3AA*Z^-fz0HB+M+02L0PUK2Ws%t-CWy697LP=Y9bI+mE* zB^E=RNXhL*L8`vImS>E!+z)=7Ibz=Gf-(K&Ub2}@)I73kRjJa-xySO~AFBz3?CGW{ zOg6gIVZiC;y^TAK&4+8cTL#=*f+6j30@8G{E<1aqj)G>odny@mAK1Vq`@d_GmLH*~ z^VJ%Lq0^zxo)2J;zZk7?0(tCo55#NTLkvnBf`jL~O8DtcSlu^VOkdT9Zo?&KbBk;- z9rFmwd|#-B%xp4jrp25gqHaek#qInb^yzo>si8ihfhZTp4;9C&Y*6eoyPi~xxbY%He+F5*uz6r z;PBD^gEU^9jP%UP(o(5Xu2!q{=Kqp7lBnK+7Hg!Z)>*4{b#-^w>pjzGpu@c@8*yB) zTJ1VPD>+%&eH^%TP9xKjle zsNlHzXY$(SWGFvqEfQnUa@|QTH9Ma8=I==WN1r1iG|13B;x1d&=-?u2_vpO@W-oZ0 z*2UH7EMYn`&M1&5TBFz(dN2{{epEe}uiOX8z2&gn&xYJYFSMRKquleL6K)GansNKx zv*@*_aVxrKW6EgMhi~yn*X$b0xr5yA%2w37A;ld=7}<&?CqTbMFkK-^HidQxStMPH zhOt7r`PX6Ow!@_mQe$U3nzKt;aRtY->2|KgK+7cJ79S}-fobzq83CrU=|#tKdiCyX zh_C4ioDg7zijGy?^OOiVR83vdIM&cyj6PQY8cS`8AeINY;S=C9C1Yu$*Uddk$4Wi! zF@rykoEos9q#mn?7rY){%a&Yck|`^A)=JsK(_W~BA(epO~?R@*o{^jP=-tIUST?yB_0%wyrU z41-mE-<*MkGmH5&0tqZL{s->OKs_qL_j@IuYbBsDFKXNv>YgdA0b7^`@fa`(Qiw~2X-zt4?x!`9i-ZxATuB@KfQ-0(#4*4yMxsMp z7>N*daliDhp@gzw2iuAT>+1`2L}E2fJ4#LaTQ$J}i#sXQr^zaRbMz_^5Zc)Q@it-C z76Ae=JI($71k<-SsV%5Ej{~eUj*`s&OcJ;9N{*peZN~EH)){D67fo=`uL?P;@03m& zRpClI3rPL@R1H1B^mM^GwJ0Tb)AzJ0v!}8+NuD^G!VJ1qyDf>T>rm}z7@;USDybr6 zST1T;AFv=)A1K->n{||=E7|R;E__DQq|cPmXDw;|nO1WpngX)9QT*t=a#LK0OWXRc z7zrn6^W^nVqg$IUPUkLzy3k9v>%QiJhYU=4aa-F9>w~+UH&ZI-Qn8I{7WpE7HYP>k z3bUztZ9DZuO^kLLA+0)X`T!b>MbU+_Xa9;$vHOfmYB={uOZCRhe&8*>5n-6EsqO5k zbaZHHJ794D(W>q_YA7?&2_cd}mB4p2z}?-mC&#E6zn?QoDTgxm)ydIST1^P3DxOk2 z2pf!Ka(#6A0fqHwzhbx4OW(hbSK*REX_nuStm>o~)v0w!w zVSkYL>N5p+TbJ4}!jml=XhX?O(5DW^b{;n93Gfegho%oe48h6S&|VCF&uVmQKX}rp zE|1ed18rhmsQ#=fWp#GNx%}5^ZAKrP z-?FnB&+DUJ(i7GCM?jKm_~&~;7QXTUiljYp8LBwML;?ZM5N=K)dnJw}8y7Q1>NA8= zUT6WK(2lZJJQZf9A;yxe=@6lX`3kp|`k5x=uuaGQl$j=*Ce81s(%x5UhGknqU0v>- zEq>?vP|?<~FI^|uj*7RW_2XM25VOKtIMrIwV{qCJAAjRGgd5(c2SW&^36_##`)yx2 z5WBnKpu7J)aRoW3K3p`4z7ZQAWhbocJ`-9%&l+NvEi{RuM~XXb<-xh8Jk{a#cV(mw z1VJEJDYzpH@naQ4ij97lKan0*^cB6u0_{Z&f`+@Ul|&{f3dMRm!A2iy2;_(1b%%nc$TRL8$;7W;TH^rcq2#-xOF*0m3Dx zCCVi*Ueq{wNxCikSR-}MR=lJ3RYNedgh3slE-6mdP%mf=wSE$+2)qsv@f%uG{5z{p zoGlky+Q|;m%4O1fqs@l^vwtl%`>W3R!>TTUVzkJozsMv zkdz?~jDRO6SsBb@~w+ zdqK;<>vD?7D^)~d?EZ+1#?aS>-l7H95T|syAs!NAFH>Dw->38$bu)(QBYdxS(F*^U zMY!q6K)J4fatoOOlvL3h^lc$?gWiexJ&M|jh0vyjDoG@rDY-Br2y)uS2}qeDD^R^2 zCQCXZ`4BiQc3T&$r7wKtoJD;#{6p8Oul@RS3Jjnrw3_%g7L-})m-@F=N-g?l*0D!J zxn{w_uisu@ET>e-pRr-;$2^`C^l7$=8d#D&A2jQiN!dx7qneP?}gfO^(JB`5QGhc4xH>X!{GOj{ae{1=i}n z6z+%lz=$m|dw5hQfv5OgtP`L}ND~>001Ck1j6l|Oc&D?H#qv1;)pQQE5`-I49jvY`PoV zzGr=?qV3EApy^E1_Q2HDbb#s4Vq7Q38l83k0l{Y9PU$-)j-}NgjZP<^rlz&PdXy6o zv#jPEK(?ffG7CAe(@;0Pp1OPXD8Q3LK~E&>764;FXJ89JNdO9ciR7!m=_(ydHAgY? zz^R2M$4+5bLjDXRoM`Cqq6kqcZcUpePlpjb^#~;wnap`sy!Yt! zPdu91EBVdpi{kH;bjj|8Zkf-kb6gbf9N0GBKw*ei3^~Cz+o~(XGVQ#fumMhuo zYP`B?!*=(j+FF-f?z$W!$0Kpr-B(%bel=&rl`bE?<;ua)n@U&l_uXH4{4orgpNlrY zEFOy0APZI0Gvc|kNOo>$Am}Yj7hk~q+0*H7&=b-KlZzNp)TG-crqQWMl?Zjb)6u{c zfP@8h8k-J0OwfX3$$bew)>q_v6*Ofb!gAj@ul|# zc+h+SK7$JGDo&mvCd#4(B|a8kGP%1H=;2eZn7>fDilj*q(!t~3zPT;3&}N#^YRLbM zAraK?^%ySFE6xBL)B$mStvCWIpkw4SBm2lI6X>3k3y+EqUM&+0{coeakriVUlO@&&4Ia>4xQ84aOB8iuQ@mr98a-TDl)0+VhP1l zdQfEbDyxnfQAFzeJJvY~*2Fjhu7+4?MP!!^D`?X^ShA#;cL7HqT!tbI8V?i{8wO`) zR0|6)$$3Puf*eq;foN21*l9Lhsse$~8$g23xzFN@=Fp(XM zT(S9G0OjZ80iy#z&fB&b$k42CG zMDPw(B5un=p2sU2*`f&VXDQZFBNZSGEvob-!LIot&R5C$78rbzHT7w}Gx)UoYT9cM z0Z|RU{WscJ6ztLZ^_qI-J9EAcb)gR!pw!@FGq-6kg$Tk#UoiAIV+EVUDHhUDX3v5T z2lXOg7<%^QSF=hu?;)ppd5$;{CY!2}e{HNQ8#xVgQVA6@S3c>WtOo;V|9HC$%>~Kn zI_p%-S&Ol`xIP;Y$Rt3`>DEeGQiY46Q+ylB-0z~ZtZqAJ9~|9(TOd6~j7IZo0KBH3 zyMDwv6f-!==*TxEjcg~HGwXzpil}TpY@(hD2oRa#ohW(v$x^wgv{rvccCzA0ufDQA zm)QeZgt}}`1->oCG$y|XMCf39MSW4s$AflGeZGj=G_v%NMH1JXIx69$n7e`6=N5em z_c^ENqed4?Dw|u(7h5%FaP(K3r}37L^REQL_R*g8iu`k04bvc>(^~rqo7?`im}eCv zI&@;LYV4=2ITDK}%qX#-wYJNwEf#h$w{BsHnMtNxYzFcsVCJh7_XC0N_wDHGrd;d^P|9kzDUjWsJsZbpB$-a3yF_rWI z5*#Di0dCOJp}bK&fajSfb0Unq>naSiH&|d3({?m(2~h`;JC~&L&O<1KxBG7`t2ptPtSE_iDr)h=EnE9|6eFQ>+do2$sA_wN(9jX=n`HgbI;hA?TDx$zHn zh{@Mp!VD$(wTZVHt4Fps6%nW=VCo;5J%!MdT^ZZVCj#r{{Rxu+8Vd)ko=Y=E4*Fo{ z-!YmBGQd){AY9_STMl0`g|MdI4qIyMuV0c9jj}#lc*M(6$|><#>tU;n#d6m_qQiIn z0#wp{gkO+9Z)~&9+q}^~i=;#kBcL#)KeQZyj}48Ey)w(`1J-@LMu!21Iem;!al*zt zIQPOnV1fCHOpeSs7?m`~>4~+6waEqEFvV=^D6L@j>BXwwkd|{?CdWLqsE{ZDidaPk z?fhC2Jdq7Wn`fI3_Zt}7~JjsGI?Ezp1WEaUqjR*6qmj4jD z6TmP_nPuWKQh8BgF_!AljN<4D(o|j-Ic+-36hIDBsGhSO^KzN{73TT)d9!wznFV}6 zjV*gM{38@?juA7{2#XK`scDf6;3QXeC;C++wgDs}XTEW3+T%fJ+8HfJT=iQ+?q0DX zG{zkrHd!)oXZBPbI}lJtLo2|tb*gE!*CkCWpoR1WKAmL=pAJ2MEs4x7NHgje9qhRl z9UOcY2>}!2+iFpqewPp;5Pqr!!GS^^HBc5oG8yo&G(=BgYG#m=h%WN(Uszv#k2G#L zaV8y%-$BGiAZ|MsqlT|w03?N$bG=0U{OI@Fx1t*cgB|UDR2(+j$ej^tSr9mZW{7zy z4*>=aTdJq`uzKheJM&R1g5p{~svsvNvpSvC1G1-3nw7u-n#oJN8G$zHr|N^Wk+U=c ziEObp>C)pX8eP0CBqk!CG{`DxZN0A3qEHCa!DC3sp#(lEZGml^PYQGNI z3bhA<9=PKPS)>9X!p;JqGoirBwg2Aoyob)S{^R_e>?ESnUF?XrCTGEV@}ml!g^WW( zw_~xqc9;WqB-&`i3+$=;;0EDr->|0FeSw(~a>j${rt{ZnAA-QGm-t#{F4+U;JRg7+!piTm~u}EN~K-Bm?Py@lFb?16kpTsyo11tf-ps*C+w`6 zE=ELo`=01~C-9HXh~baggkkNZY`_EyFT4of6toxf+soKq%HL@og#8i2F9%LG9e!(n^} z9v@EUE3*C*;~|BvJdm6E%SQP;G?uBUFe%GY@R^+mmS+!8vx+2%2q^#xNni~EKaL@~ z+z!o@d%5vt5QyaMgXv}%GxTAj4b(L%#x$9JYy+PLANyZljISa?vE>!E#X)~IKk|dp z#elN*>CR-9w+NRSFoS-vfpT+$kOJr=W<+d{7!r%UVGXb*WKV1tI(U0xqA@ybB=vQQ zH8CbxDYpLh0qsfRVh&WMwd{*^0YJC^I@QeBL~H+Hs5Tc8ctC^3;u z!win0bHU))p1i@aJ(|I>J(nNryuD>y$1>KmCK!?PF^%>1~*%JAmLI$Cep zr^x)cWJlmKf5-2JBXB8!O6^9+;tzuYTkjFGwSuVIDh&tiY&~@yk=F=WjXoK*qJYQJ zg9*o8U!tEj!CAx7OSoAWDqHs$=d4Cgn_SUZbf3*BOX|#)8N({MX2lMZ=IKR`q#jPF zIcU^B$Uv&T(-S0Yk$@7Gj0}_tTL=Ck0VN3&>TTt}4yex4%I}$6`SYf%d=^>@GD3Y%SY%X=sKv&Q@VUK_j?nUqKG<$^JV8AU z1xo3$mncO!s0NjI2-}8!`D_$zRl1o-p4Y5m@~T-yZO5#NbaSOTO3X_@V=1k%FGT?} z8^r}Cz0Gqz2shd&1<@cIk^0i}8%V?#`RA1l#NstV1VOFZwBqg^B%Gh-R?8oYG0p?@ zOWRx1pxZB;R0iG3QYMSE3{AUk`+%d7;WM4ATa^J-U?_~uFGo}l?wD~8#9OQgz(TKM z$Mv%3PLHtXme+c}KZ<2AjALQCrqO$(=vL6;8ydt%XRg{!xq*f`qV$qMn^U?8HG5MF zV;xWzg6+0iKubfJOBlYIGL?fzco{cIN;k3>W9%S?ozt7GOK*4gMbhEHtE)Zu!D%O&=tLh27SG`y5Fe6}E0lD(r91|&`$=;#^ zEv8sJp=~jlGd+CmU*nbsk!a*m#9fxYWaG*6Ty{;Mfohg}TKdFGq$t2yLxXa<|YrSjO;g@>Gs#8A|j?OHf7O`H8Sm1n)CEW4(1>zk{-A9eM-pWR3 z5u{cD7ZAQnS|Q*ShHH8o%!xX1dLlcqOqfkRX8K54vP_+DmbtfAn# zjX=*&`{$ij&9213J>YFubzA)VZT9{~`#XlGCzg!Os-9BuLlOm1|LgfFU*tN=EKB83 z6~-~j1M2YiS^GN*`D|8oKYZ(xDsR^QW-?Pnu(L8)JyQnj)Mj0~sVm9fXHD#pu*c_n zBeVmUj58xAWN@@GX7KvW`!-w9V()Vefa^-(Boh zZB;#?s&qg?AGWEgCwx^mTIR9Is$@Sxo-OwNI{V8BiL62eOC5x;kVvo8I5;C=SWtDD zA5`sJ&rc=XmC?p^?xxWb^QWw&F3zF^8D3`coqhs9BoJbnJ ztVO1dC5M~p6fO;Nj3y9nyH+u$NVJ#H zkNfvpoT9q6lRf@fla^>BH_0x6NQ;v}s#C&IB(zF3sg9lKKDd2UvQCkm-yKuyOvD-T zNX@F*&UAq&e{_5vt`DUPs4QWTyi+9O^)2E}{6aUg#$lC;59=0FT{tJZA@|(}2@U8K z(?C~&?oE+xue#hP{{WY#ciNLE4*XjiaF|BA@0D(2Y_%wyiR;XMs)HsdX!zg8O(34G zck}<_C-QZp1e%DK@Lvw$O-6)CG(tz&q{9K!37eXgPH>V96SJAqaP9eJ)qQB%CM@C9 z1ox@vGmVJdschP;d{OPbl;C+Koo^#sn#eTS*(tqa^w4|4h1U`I+qylavvB4|a$shi z!+h2njLnzyUG4BEIw#NI<4%xPQbtXHYl;mYSW& zFqNfJ0I_&eJY{#*m=Or%Eq<1W=OEB-E~*B33oDt(SP&+SAdd+FsEuu7`;26ILBC$h zK3m>^7#_cNo$n`X&};o=BNf9}Aa#V9ovDH zLV;K5ApWV-p7AuZH}Elp5D*K5v`$7B!2{`hzDojzI3ClbsomhR1G9mspI$jwxn?^Q zL~c6R?b1syk+O$Mgi9uUwuIz1-JN+B!pg>a5C3$1K`n)clTd~GJf_`@Kpq!l=Qc`c zJ+{jwmK^E+5-3f&uhbB;N=$aLqkqR57GjOemD=vb@4c9)>;3&DKgK;JY2-T9NT(Z3 zxQ(UX~2|0JkXOnbiiQ|0I9oU11!<1y;Kl&eyn73T&t`5F#ig4GG=jYJD)O)@4Ov|Uwm^rJrclI31fY)13Qj-f2IKXBsH9`k=;ytXO zM#^E{h(q)0H%K}?Y8oUlB!+iafIhfq`M~_4sOKrkyEWv+62vlN2~v@JmcJKZTE5i) zxRYIHRX31v;;U>z#aT&^ZBFP|sEEq|tRgN0sC4zJqH&7&igdfFFFkIh1>rkAZ^#o? z$A%KOg&KCL1{<^3M&I#iEGoDza>G7aZrDd_Z?|&e8^x^-ZMltSAooPb{b!+dYmI3#3Q=`ndWf zj!ymh_~HFJ7%DjsD%npZl<#O2|CoyJ4aGlpc=3r){LxT+FU8g0-L3wz@SAuM^4=5j z;sL1}V90%_Eq5AnkK*cL(-d;!r5J95k#~WgCKP4OX$raVD)5UXCAZvh-L|&eU2kI} zMBff24&}x|xf?^dZ7PRpFf)17a?SR3g>v`-T6_2b>Q)uX$^Xyy4&#H+%6Q0)W1pWX z<;DmRIJM<&*1ad>z9;0~t=x9c%HCFPZutszPlVj~{aM}k{Z-`X!ko9|Zq|((he7o~ z$h}{=nX#Jd5^um%sE}Oi41JR(4H=a)mKIGYcPNx&(csBak<;DO0$W3Y>#)jG!7UjL zp#f_(ByU76r#igcSSW`>qLteg$}u5U09U-J4dFRsJ=+-y>`(zti>E{5A>aN!CI%*{ z?MC79?W%|L#=~)WJk*2_j-RDa(>&>dEb!3{Dt`lhcr&qO>cWXbzS+D&9K)FaT(eJe z_=IIJX9VmT4WuL8XPCOVE94nsRY`2C6bo$i_clSi#*gETzVQqFC??zfup0O<4Rq1A zRc`HmNUuL+ujlX@9h$$b#-reTVuK*i0{=^V?Q4DQ7g2k-P}YZX!bQu#8t9coMGCFd zpL6s_C)98*I5rvDNmk_T>H4!we;A;=lbW(1Zx;IoPw@@*(;&PiATqXN=9I>^@QxDO zjA6Oa{*H0gk%UydMFXC14Q$DEfi2krTf!7`UU{4=%fjTi%b8+fKIRYc=Y*k9&3-E`D&2((LHqa)25dPH%I{Zs@gWqKgD0lH z5!MC#(Xi>xN7S9Yp*tTrygL)2x<^BGSkihz+UfukFv&>l3EA%n+3_-~cy~aQi$r)b z7AZ58DUda>6M;eUY#D}GviH~XWDYktz(D6Cjp?YyBF8ZyYBU|0&LpXh$ife+-nc%? z#8Ct^{?k=4a|;N=FxGtth?s;muodY=wSZ~fyaKsHE_ad+IRcr@=i&PNRB%ZPlyIzn z=|A*YUy$$ZdJc00q=)AzP^-Tah@N7h!@;-WY#=$D%b&8{(_uh_VASZA86a$| zgm`u@B~nQuIgqvKhM;)Sw1;lh1Ii4fbxwnguwBEV!wTu8>8A35@$}Hj!(^j9m7Wt{ zFVm)S$&7}FaBDZrbOK|cqfQ(R*lg}zqu_O&@d$kE-^=L8x)ar+5)GjBDo_mg4|G@V z5_}4gI_5zu+lM48(mS<{+3%%H(p9Re7GEkYO%0VR@i}zj;~ZlQM;wS0CD;_ z{`E;Z;G!!4PFv>|3rw&=T1M$TDJ>tjd2^$0u>0*r-?gNbEk2#@e{U}cBi=!ava_t6 zhZ7wQA|f;FG*qLiknE4s8rDS{Wrl_l5*thm<_#Kf#C}eg0nLd{)}WpX7_UqO=r&}O z*dbEtvZr4z^9!FdHTyRk+huyk@Z3v8PX)a)Wl;T8@((G3frqF4@W7RaC|}qMeP+oy zDv*B|MkEC#9udXXYV-@N!`Hm($$b-B1E!#Jl}x(ye5oQ@@#yjZQU z^riHyYzvElaW+w)Z&c??#k3)7I^d=P5H-|An;-c}g$cmT(k4L1 zhyv?*7O90_L){je+fYVhK&7GimWhm-ZOjNaY)u28T4|c;3o=g@ENtoZXnK0=nRXKOQ`j?G)JL}j#YGdjwbX&k zd=fFsP)0?%Yf%C_sR?8NmseI|qN>?zJaT!`2}alyRv@Oh1L7prtV*hCLzqxZ6&Kz7 zVT`OAByEqIs#wK@DkV8(*)Yr25n*b;K97qw-`3N_>H@ID>kya$ff7`69u69eCO%uK;<|aG=c}AFZ;v*ecpX zJ>6Q_m}T>6!!mmBhb2yxx`Y-}hQ-~19Dk^<+@a=&1z%&MvqeX(U^4%eSx~suVl86p zJm9e0M-m|}aTs`|xFf8rW-qnH2%G#2HkUB2e>M&D+WJgUH9(JhrxQ$Fu9cN}@?W|&!xL=1Jv9&g=4HfS6vslApPJ~t)uFUYbZ=%Z9Mmgr5 z*I9nO_9D;`9Re4{bDW!o4T+Z&ung$(`2tFat<=>~rd^)y57utg`Ko6N*rl`ut!FW4 z0Rlo=B+O5vBK(8nV26T$02nn1PS~@$9mXLL3%Jk`9wBhZ3Fsct!YeBZzg88>XN-eF ztSUxo6B4!(&>rE~S%eQ+4i!04$a7i-$)sVFwuv>MJQWa(D>eHM3yLtQoK|Fa8@tbHzz;9j7D zq_;t!U!b_0Alm$l8n9rl%;_sPO3)^F@#2^P=>V7huHp~5WSBvx=_@(wnw=CId6^o? zU|M_#rc_a#BK3@QKwr-z&I5@#V8QsUCME-C=RiWcE0r`lXr|H0aWD>*8XE`6FOHc! z8g^)8^ebybJxOPWZQzg?goHktK%wbL6#dHS1QZ%f(jJZ(m>u5HeJs5g7KTTBpV}?q zOk1~5d|J13g;AHfC6J)uZ|fGIGkExJ0StAkqiPn(M|MjF5_Ya{gcpd=@#Y@IPAX?= zvDnRK?5A)@{w10ZYYGMr5a_4c$}FBHQ8fyDwosTbCjG+_NQ0z$yntjfL|H!}o#Fn%b`;mQ-*Pn8z?V zpqGWF$1q~$>Y$1nS>kn#NTE_=H}`B87cjA(7?l#(`~SL$cYqrCM{pY<^H@B@-)rL` z<9~3UjBEeN+f-1IyhHd}Xo*Gc4g#>uhjK^aa-#gk#M`CgMWYL|Mn~_oB_u~e4!nTH zh`VYX_&02xDv2evb#Zy4L-75369%o4>eV&Rw05#LwRFql}_Py{G$MO^E4Y$2$w z3^R)8EW2T;z%axNHVQ>((}ECf6N0id>XT=2S?$A#5z0gZQ6ELnc#35)wl@lm(oW%KSf zUyooS2to!p(bV}~7kQg7G~zl1h6ZxZA9a?9B@ioG>tM132x-VFm=}=;xgc*_1`C=2 zJZu9{!*%8_uKf=?hs}Q$TifAY^4~3d$yIC6P$_A@0anry%hN(YD z!KSCtueK+Y$vyXxl zHYOM%`95NM)ZWL`c5dIt^_beSO@k#x3Pziy9w;oDQc4FB{?iU8i3l7U5=X!SjTyIH z!y&0WJXKdiVmGpG(SnmVU5UrOO**7UgbAVOTq7#AKV)$p_Sq6A=bG2ixW$#^=}XLp~_AI!a=Wli3sY43|;8VinLI&zwm4?l=PAs&fZ$5Y7FH^-y1^8>9e{g@7KCtCsrBoWRIvttKPz8~bBO40sH0hIJJNUh0YNMki1a2Lbhj zy19>1>@qQLD7Kok#>t)u+yru#NhnuqaWJNma_%Xn^Jhp__n0<{zoJfAFl2uRbzf;c zg}9oaEt&HFCGCCS?JBD~@BQceyZ79CvqKUH+-UYW1PPF6oCb(_QSNgkBpA?08DD0` znW3%kTR-=rV`9qKHjrx*>1|7=yi=!*4xOfoCTb#?7HwvVdR3ID)TR#Fw8b`R)TpRw z2Q8y0@AtRXv(GvA66inj;qHC*-p{}FthJu??^zFCm1&l6YZ#f!hL>GGt_6fdUsT07 zYvgX?fqpFN4^|_ET})&X)hNp`ag|J~49KJdU|B>IGgdCrixFUKp(mE*+;&WxAqR9~ zI8tay#HYwDHXNV?Yf7wJ)xJzsRPaZG^U)!F(;9NCq&na*Dy7ikTVnn;u7a+lIE>CVgU5pDg zM-*O1byy5JbBgdy1pA2k3g%?+$j8%=T3);z*nsSsYKyyN6rOz@SvqGF=46GM#4>BK zdb2YM3)s7nDX^9K^tcxoo6}8|m0hCEPZ6>MSU`pF?O$&&HxZ*Hy+(NvA(v|SVQ8qH z@k^$gyaQyZ(nA>sTY;~@wBa1IusGoxFMt1Ea=>Yg@C}dUJj1RoM0A>`zv3J~U5G9X z5;NMm4(m!IbT=mdfy+s3?8xfjyB1~(U@AL1wr`2>uaP20XjDu-3B*`ym|yU_6s)w| zNau6=I5Wj;@cs3)mu}YG7QPVsk>ElxKEx`Z8d-kvt;A!XebzV*uu5yr;k z^?XTK0X3}V?mKjo+co;LuIi*0TC}}i=yiOGl*mWRx%;*kvbcbEDs+sU_uW~4C=vYcL1KzC^(KdfH=wcd+^iK?)oc@v z7{*B42V-PlKBG-mEcDEh1Q8SrA%XZEs!f6_scHV5Az#*xNJq6vt%XOE%@70fBYRuS z7}ey_#^gSk4lEL*8SaCX8fqDMN$s#PdB0u*9Q19HIfVD~1-C2orveVQ1p*tF5qi#r z1=1HAXiM>cituKK2ebShCXVm}_>}5Cth$+3eul&Io0f~is$An$uBJ-h-K#;SEBS~G zm3jPJwYy)@rd;vxT0ijcdPlN}!GH9p$zf(mTF)Ct?4lxE@mAp> zp&-8xrc`JJj!HlbpIlgAE*5wo7QnZk$}!gr^5wH-dtm|G`PRb2vA{7EK>2B!J3kGd zURdB{EPzMfx`apHG7aGEvlbp+SO7P^weVOhfGD7CH?$x(ei}Zzu)s`&A})Mu0T;f( zzG*J}G#p=80586^fEV8i%sSX@+BfsJblWFG0^w7m;Q=V~0R%iqjzskWFTMrhH*W7Dk8eHj$Y;cmgMbJ+o`lx+M{wU0p|=m{f>2&Ga6F2XcM9FsWd92)8VfYJ6k9mW-*W!`!bGPg#6=&%!VclZ@J{Tw9MQxg-V+K zoK%@w_#tXIiwa95uUW^)tMEu&R)I3PuFLuMlwrjEgYG4~hr1pi#2OK^VA$G)%L;TL zCtV3ZJwSb_x~L@JthnLF`F5#Y6p`Mj9d9u4ogv#%J@RdEIh->*`mq)&c&wMa8JuCx zXvk`XJW8=AG3)87DhE62XWR0mwqv08e5!6V#ZHN!nhIZgka%ClWxZaTkPA_@M^Ozd zku0hWa%I;3jnwoKw_->>tGjGg*0tP&_Xa?j^kq^)2QZ}r9=_9*tkM^y!kE5DRjxNSm}sV~5oF8JX^q%(bTweXbI{irmJ~aq)=O7CNeOA$M~*9 z3+I$e?kE@gCOvYwLPVr~-9b#KzP3F}L~Npg>DaK5@TCZD90`fO7^uv(no+edg5_x1 zsw~f$tlhbbdch95FOaL0^h*w`ke1&6SCSi-Ib~@PCaSENjall4q<@=ydQuir zfJ6uIKpg{YvjxEAJeOS;oenR7fwaM7@_|HrgI`@e)GrY|b1WuV!!OSFI_Vd2!9r9u z{aztG9wuxGQH3eTEjC@AvrQZ5`O^AlN)Wb*UjKT#C&es5pq-Q&7JnSkB+;IA zS;#WRY&sF3SF*JHm3Ugs2!cKdf@b{ydyN<&1sx)jCbUZf=%$fBh#BIi38w0ahlwa4 zYLNt}l7%m$WVOP%TLElqXL$3RB7V{50`BiXo(PEWiR4;wZ)AA!8SPsq0z0GM5DLn$ zcmxJzfvMg}tv5s*TUqIgeA(L&24pEkyP-l*Jae+8WI#>;=Ex|v9rD9x7^)Rt4IO@h z@%o7^Qd=@L>5^h|AFCDs0AgZC#0V2X``DrKd|YWH8VP2h@*Lk-h%Z$73?FRQ25ua$ zb~nl$YlAEn!yA(^E;Pg!OWVIw%hEdAsxz*-gfI&iXZkDVLtbP4MMx zx8-%_d-hJ|H-gi{B5AeHW(3j^@`n!Ic_Yd(1#=4O`7FU0;2(=RA<`rKlU_P}xLcdu zHcky!Z|ycYyG7A3i-$H7rvIR&r_0dQH zB53+G96r%7ufAcN5F6dMb-$Mp2noi!tpgwaqq6l8kmm6}YF#_d3c3iX*PTHFHjP7W z(|9V&>v!b4(_I***pxy#Pk@qcW9YE0YW1I~ZX6ZIJ;!(!9woHm*e}RMH-uOSFw&pz zHt&>B#H*=pn*?a#=yz($by%FIWR=TBh`K4*Im9mDZk@lHwv>$-yWi4n-K@Ic;#TxX zuPB*8siTV-YgZRWd(&a^393A}m`?7#kzF@bqdDfYR@r)$OB40I+d#kC^+=&hmnx$u$J)SyJdoKeM@s58)d45?2U7mqxMQ4_c;ZJIa zn#P?HNF*V$Te|^~Tmkg*jS56(S{# zmDM6i6zKo4SzDkcx+x}ETe2+6!@kp1V z;T}rZpsx3t_kL?l#jk9_lCP;I7@3sy379l*#UKDMy~5!H-q|W&_f?+th*nJQ;zQPW z<=t?EJ z;-T<0-2GXC54f{$kuI#ymC1^wxq>&Jur>?iHtcH^y@sQ&k%3SqsruAQ{=yr%zad!R zXfvAz5AJOsC;XwMDAiL~6JDiSm#sep_p!i=m6;Jb40TKazV*2tWDH(!C)gUrULPj_cM5NUt zR{}N`AO3$CU^n}@FQDS|NNntJG-(sTlaAJl`!g+h?48kQEk8|#0_$9C)wUY2s9MzH zm{>(@co^{ycZcre3tMQ))+^}{xGc1MmNCQEeC5)#bFVdtTAJf~5GRq)b?8chwVp|} zgF?aIo#Dj8rp%i)#@u1*KTu|@W)K$^IA+!3L=MS(Grz1P93W}aLqWOI4Aw@ECfj5> zM-(2!bj3M>wrw{hqPphSXIRxOP^0PrNY zbr5*^ItcC^gko*^6sKj~)b7jeiJ`5rStAE1kAY!s&q1E>965E9u%h^Y9B!gEI^3w{}3pto^$=S?8RGLt*=^ zc8=$~m5LwxtlbS(5L;WI9fOr@0FM-%LEe48q$YB7WfzrDO+I6xby4qM$PB&vslDLn(2qk-h&A7Tenk()TNG5;Lkn}^$o>`D0` z13psCblr*v%bG+G*U`SlGQ`(_gRc+t1>=LyhCpyHoZDC4dqT!>5RDB`HWuPyn=qQ}2>XIl=ddi<>Y17vF zTo3>gZc{PqngT%B*gskW@b*H=hrp|@+!~obkM>&xquK}H_RjP-_^N$94**DKT1{Dz z87uA$pM3B_zB^TcW0@t;`91B%o&XIxqkgDMbW-@heED?v>aFsu-sn&Qfla0<1Y-6B zkbnno_wE~+NNMSV9X4k67Ce3$i&d!RVx6&U9G=jH7AoyjB&WIvn&ZF#ut1F3`Y+ru z^mWn}JxMDR4pDhrs-?}*Ag(__CQ@-~J*QgMQ>U#TM&bDOvkAv9O_F3re>4rUIM~5E z|7@XHyR4fg7~9=HSvdB31_WfU?%9Rp=k0xFA$ie40XbbLAg2h(cbru~Cf`qO^1PmK z-0I222RjjsqU~atJAla3a zIUPiUwaH6NMuroTPeyVAQlpeBOkJp~>~g{LM>`4asH_fx=fWx8a)7Y_ZXeCX_Ob~T zx}3#rWb$ey*~ii))fyQIR-c#c4|Ip`Du<)}3cY-jtrPXISj$8`w6DXgSy%WoD)3IE z#QM~wS@Kp+3L9=yeE8R1I`do0xBfeZgS}8+9PNKW{SsE{;WlY&!+K@4OjE;uG4QB| zW{ObCY*#Um;ibOj1G?_Jb#8?jz_d|Uz;virkbfX`(BsWB*y9#7k8aH!K|SE(9yI75 zVofvfzbke4-z(E3(A#g?0|&6k-p3TY8#P^LzE6%*Knx?7cod&JJsmLmA@9a}yc00Mk3>Awb z#;G|%+tT+ldc0m*&=Fz*pMlz(Uu|q7!d(goxHIo@2z0n=D(XGofl)R#woeXp7Xwf=Hu%{vrdS`GEe>>W!N4k;rOuog{-e$i8oB`NmV872 zttSBI+Tx=K>zn+CB}P}gjU83H)RKlPD&;z#R%lz|_aHRSM!C`)3D%ZGJk;~7ka866 zs;zjx$XehRPy?+{<4*neFclcj~Mk@#m&eFi)7_x#>zzo zkNAdg8%&udgh6mSso)`tp;c3oLx!!GoZFt>=Q(3*h=~cR$~oSR%1yAxx`um4lpsGL^a%xMp$d>U!zGqQ#trXeb8BP z0gj?c0QR&t-mN_K0vy%>wpq)oGp`$vC!ff^eb&Mb!^kk2?vYTGar;+u0F}l(Ms=jJ zJCOTfiK@I7z9>&Ga5At=5$prUrTI8sZs~Z+6ozTTO35EuS}Hn^i_!eKE6J#hOY)L_E_VY^pCM zliPnu1FeM6vcmcOLH+pEGW4J1sRBV&OH82 z9ej;|^}z=Yca})}WI0OhY^1XGA)c^yyY%~@{lVp*fd^@GlB5M1;VG7a>?%CcM)U zlxETG^+tIs)EO|-`(e>r^uVIGxXxy{A3$IbWeLkvsl2#DK0U+eAc~WetBCHiIQO zCme1om-O(v*u$(xa6-crl3#EM^COX_!GRkPm@3j1(Qb1ZY?|#Z0~=Iph576PUnU1) zuh!P94)0=ayZv^`J=<)Nf>l}@vmMgpEHX4=T``a-+lk;Tkj$I2xg4edTuFJtJ1hs%Re-Xu7__b(n?IrYpP;+$R>-@l)8TSSvcXKh}OvtX-L44Dc*B zGCx~KeI@_0YM+g@e|fNW>kcGAeRs$D?uzxzDq~90P80`#k4ZqQIvUg8`~y2W6Dxkw zQj&tzxIyWt?e{ucM?LjVE6nexoJKHufzSI(A|Qh<|WyL8qEqSBG>|OUiTa>@J;5Z-=!mEzjM{=~pI+>S(*z zxV`8%2g!frw}0{0aL&(}xC*>R{Zrx(mmPrE+r=EnzBbt=5MG{bAyI~9-CR2OazYTg z981S?UZP-~+kbgEde!-=U>&|}aA*x08!I*0VAX;(@KI}EuW^q{@;6xvihtyQYnu1B zJJkXjp|zlh)^i75zQ(Iowi&*;ne+Ar!+9dx9wowx_>r{6&QjJbaF)+U!zc7GG3h~m z6Ms&5xPJq*hWmGiI>g&82MtCYGYmVl8bW|WFEggqn%pP!$Rm1?t^@P{1>_W3a)1=d z1Bjx7zAfYw$@^!CiAM4kE}TzG&7EBZ5g_8jt*3aybDN&GJ^a6uX(mZ(Mbl)2s6GF^NuqXj+Q!6p?BV%uS7z5@r?^>laa zwvsGwTf2+L$<`-_*_f@qi#e`)J3$^J^5!kpqOY^&w$lJAPPtgoAS27Z5xpyyPW~M$#iCts2Tg&(iCO9CnSuBZ ze{CCpvE}8s(iY6W{{75dW=n@ws#IPAm73DB;h>08o znC5XNVHV-7%=c28smkkYM`e~zRMO(fjTd-*RslYsCLSJ&MQp?KIlv7n$kOL$ z$?h`@w0xx@BM-CPsl688*=X2+xMbmzfJJ5os^Ly>01H4}R4-a+h8Oxv>y&+PuR`w3 zyKBSNM+{r!au9M!O?qJ`97Xpx%fc7H;QxpV{E*;Ou}Zj*g>h~kViSj;>rDa@&0^}fB7B=aanoZ z9#$g=anCkYwY@BMjEhKla62o}kP+-M!4raohKJ!XBvvtH!iaX6j+J3Gq%KHsSSue3 zE@a6ACrh2?dlvFjn^bk)wsHQ7A&i&j?_$V0+I1;sF%2Uv^ysl|^az0cUtI8-altce z)MD3+7)j<}CX{TbxzNT}A6X`RVb*h}^ZD=Ka8?E*BiLYDm!z#U&;-B-Ua{iwSK<-* zGVO0w5leN287rVK-Y@snsubT;CZuvZ`?HXizeKs1nXwhV1RLrJxjbJRE;9@o-9-|TUkjylFV+jCKa;(W?Dm%mQ z>oC2@4|$r8L3f3|4nPvZ9i|Y@2uH_3z}u#yxBvs*@Lm!Bi5{%JKdz6-Z(pC*Ahvuowmg@$!LXzpcJo-bA8~ zzyLrPoqMJI0mm}s3Q-slAHn~%S`%5iX*(7oxGQTFOc+Y^l|Z@0+XLc!WW)Tp+XX!^||*4;j0wmWE*E{2ClCpD|)F7(GVnXRLHE zLO~x>nB11m?iibFoW~ti|Nr6z4>8eyJdpqACbZ`}TjZR6-=|IJ`g*D}OQPlTX+6fcO^+vAcb>J!9wMtgV=q4Q zv|hux>eXQ4D0~PERspk(z2a@Vx{68Nqg!kySI_R6R1DbUmBdsp7^8KDlB_<}K(F4j zR|D02MyoFQ%r#KCVB$cJ`#`U^nbCxJEO6wFfF@|!Nx_|T6I?poL}kfjeWsgF*6$z& zH{}av9P4Q(alJijKb}(?hIQ~QEJ4cQf=~3wCv4(kqAms`2M)z0DDvkHQnpX(S%@Cf z=4AaweqkLI#nAMD9o&K!*og@NWAP=NS2_e91ckJ#A{l!U(Y`FG@^sO)%tXv|@>F6C z8gLe=ocX!rR;e9U|M^?J545nhPuMs&Myy6=!$+49Ozu{yM>*jDSTX+O|3Dc2yM*VHJ7ez_vB<&VeL4M z4RaLYw#X-Of8aKvRSP|BK=vLRlypX&SR|~}nO{~C#V0If+|mwK5BYl#JXwPz zA&<)UYeX==Oz}x8vC2!7UShT86derxIqZ5lA}fmx{}3|DVS;Zh$E46@`}h`%F&?#p zQ32!p4)LA7-GZ%J?yzh+cJCT*Y{DDcqQ*v9+t1QH)quc6o5N=6bpnfhUhmbc^J+E- z*%7-pCa<8ji#8@N=a(eS&thAlX92uor3W6`il7{QUas|w%lxQz*t5*PqY*d31CJ5b zc?}$b7?I!ZzLe|Trbvv0`?#tl7u7~|E)Fb@>swRMk1IBf%8tXL-okE;K@iRc!r~-@ z`Mh7%&BW^7zpy$?Ayy5BCB9p&?YQ{fm?%t@GFV`$Jgf@X+RqX&!nRj~X}>>j^75=1 zD*gs5&E5_zM@n1SQdWzgBuB4~3 zaiguJ?3UY@9MVF4_1#t_OsNvA z4ye;eimLnF3+rC)b?fYB>Mp!))oJ24-Fl~2hvYpde!t6}4hq5ds+H1Pd1q{eS%5OA zceS^&%3CRE#Z_mCBW2K$snYJhl14t!u309yTdxM ze2!^DAjRMV=YT+NrEc@gwk;V*zi#nx*c=2R?+`5&-qMJ-)T+kU6M5p?nuymHBQf_s z(=Q9k%LW8e<>W%jAn1N_-)BDef!{p++ed$8Hpv2Z<6(E1sc=g6gIWhvB23@{lK4%XH75Tc^>Q7>kYoZkpc1lE#B>z8R4o z4ad=ft!S8#Iyp>%+vp)N)yaGsL_okW;c++sgLd2Mvbl>W=~l=jD3Xbvm4%lT8*`1Ov=br-2^sBKq6xzpv($p`kUmQ_A;i2wX0ZX z^c+q+B$cFnvlDWac8x|DQ!nG1AmJI;Oa@{yi~_ZT0f_kIUup9W3MmbgYYA#S%&R!| z*v8EtH2kM0TBCpBIaM{5bSN-63>(N7f1I`7QTLU?m>NKgb(GU>z+R29=q z0XU3J8cIFir~~$l?n7|2Iils6XANB_Ju+P!r!L;2hzg;wIjU_gHK>(Kf`~$a7Cpgw zBUuJhVDS#}22Mg}?F8O;SAjFLon z=|*kSj7DR4t&>P@pk|n)8u;VbfX^{i_Kpj%c2>tudQp10wb#q*DGjqzC7)T?%aV~& z*9!0Ka$He##iHq*tWjWX;p7+AV(35Ot)OL_JTMyzDKHcZapA^hIxvtMQWj7$Am<*C zE3GC!6?n#K3=|oDOKh{-BJqoEHYP8#=PmNb`0wlJHtbZr|J1zRHz6kgO79CF#E1`~ z#ddzJ6K;dRz^v)D1WhcBdt2#96}(rM8sGot+E*Vxwb`m}qEZ6*psfdm>*!jTk3NjX zf_wxQWLLP|bNYm#JCC<@*|nW|+)$bzxPcP{_Log%doxo#YJ!kh2+D)Yu#zJ$tG@tW zD4Ej|4a2M~(56mdSA*S}>ftMq z2KD=;$)(>l`saNzQ#xO@6wvu)qEKv)TFU{&qwkxaGfU}39=^`*a+a0wkYZHYs3zJK zxSI$8wk>nebC6GFnD=a0C!mF-5xebpgqq<#(U_7dxUho8`pwL7 z{t9e1pjW-z0yfi-qW!sC)5#>eYk5?a$f+BXf6t|yveJJ&uQa@qHdKsbLv&fin#-k( zra?-p*svNDzjUx{@Nd`qx9i+`VA?!FwW!ODVUCo-z6Cf5@FQNcfEc3rfToK-$#AxM zIZLVmIvKwmV8x}KQeicU_Zq4fpH@X;)Ft}qaobqbZ^6EzThQN^EuR*J)Sz0c8DBEd zm~Fq3kG16J6}LIl11V?pwq=16TrAhH#zsj7 zR?=UFu8_+(2iSHcEJV3qFKxAo-wP8BfL=T@5{7D`-8VE+bsc%dS5{i;0`-hX2nv{C z5mdCxnErKZ(y_QpKydgL?OPhz8X_;ltU=4(bQkFm-eJiD^oOmufQ0|A8&^izc90Cs z*oIMF%dpOd>3i(hmjaD8EIGEUK6Z3ND*P_VnUm0M(2gz%pW}{2br>N+6B%O*F%Yw! zNcBmy{Ye5byz?{7tci(MgS7!Or;`BncKmuWbtXT#9YPi>cQK^KOwq-IyeBfZ$!j)f^{Ne*)iIf6}^rAa?u?&Oa8E$Vxx==U*K{s>`0|~)pP+F z!?UMTgc1BQD5 zM^<=?cOsDICh$^hp80Ah*CxyW73u)=VQMho(#BnQZ6&8KsGxNd^WLvOP6n@_*{>jf zwh9VDQ3ooZGF8BYALt1H>O}3?>cBdw+-21$jHO8tloho*YJU64b-S(tn??tR(k~&t z(VP~hX~9SjNYIGxeC#e$-H~!gxR}Fw>EH0nwG)lf+Jq>f3wB}vWXm|S8QC0})DuGq zrbHq8S!mgo)Ib6sZPH9(`da_RUZeD=7Kl@~sffGR{VUmc(rMOS??v^ES&)ZVP8fdG z2Ye_p3=y}^^1zB*3x8s1VC+3xH5B5F3v3Eqe|}|D(JMv2N%ldf`?cm_tvG&CX<^$n?$+I zWoG~};E?|dno^e}VKWHZ04KovKlNBsQR>9pR0edaM8VV)*b63ZR@7A#PobCfWh)~dlD3|xB7Gb?X@ zYQ-bQrE`e{y+)E=Bc%$i(x25dB4KS}+6)Nr%D1Gh|CIw<75y}27@BGR5_mK+ypqZ% z?Wfn$qZ%VDI%Unk3||#3u(Xi(6&OkBW==@Jp)t{ptyy_Tm{e_M5Z9&_`Ee|(cs614 z3CLJ`Q}N$I%Zu<+(_L1}q>$%ntE8m@vE{Pwb96NMa@u}jPseo>0`K}L)CVnKw27iW zRni&LYfY#9^~@9LA}LtFI?G&Lo8nnhb*m5)%l?BIh${Ak033)FB>Zp6mp$E1b=r z=qQq&tdL0c(f)~~%_7{C5T9(>LG=wkO;&~~OOXb#`ZCY-ZA@+l=k!7|#rA?~edQN< zPo#jGIPtdB@&wRBy02Wnk^&eD+1?rfse$3~!iR^1G{F>l#t}~AVab=?dqd@ zUrbiJ@4sa?-gC-ZQZgA~MTX!zqy&e-q65!~gX)0E;E(%mZ65?ogT1)z&qkE4Y$cin z?YDm0W9&h7xhgF_qXl_2VkRR1o4{832&-oKDArQ1q#*qnu>#@6J%Mz@5EI>}_zNRC zi3wh~U($-#7M5J9lFP*sR#2Qc+`se+!pxa^sPnbB#wFH}<^iG7LH+SM`LWC^$4%97M0e3cTu&6az}7CrCfr%-=^UWe`e>O~EbH;OCVriD_^HJDN z4-(=jeUbI^u_Oc;GRhREYz%3*>m5xgI`j!%{@3y0(cfsqhadiK^5QF2BqJ{sEasl?$8xog4ZLKdO4U&9Xo-nfp=ApC!b39%zO24uLNG%eEz#fd++8IdFv0WZmIdfc4mL2YG>YK zB)JGkF+R`|8N2vu1m+`E-z2a5OT*qg+zZAxij(oXdp}{7sC0+4D&zxdn5S$yZTD{S1jg1wfix!Oy4U-S6F49WEdx7kE zkgQHyu8Gh%qbKPRvd&R9H~^ObCx;%01g@T33&PceSsaC2J=?@|+cQoquAW^JN}fS7 z#o)6!eaJ%=JTr#@?P4=!8kdnpj6a3QsaAX`8{q(PGxrUAK?3y4@-ob*1AJkJ{H``A z7cWyCNC^6~hSy-1(toW@)-d3h65co??{CpZuMvNvZpOF)%rLNg0ovz!f6CYLNnN)WK8`tXW{*;e;WkCygKE@BtB%iLqKr_!os=g)R(^PJj z04rJ2s5NpKd`xY**p`GJS$AyARU+oOPc@6v2zwUfu1)g}gjpD%Mwf(*R+*nqZezug z@M*Kg&7^3L6x?Nb{kVA(M?lfxoX~R!$FV6aWyRKdO2P#Ji64H%tUvmc)$|6h=vJv` z^4t2#YYsNtOso=7<#3;uCKs-4P`z4<1;kj*i_M_GOwaXB(5};_&(e!DzDC&JBP%se zSZziC6{aBX_>gxTZ|DVE!P7cv0A^;cP#R0hlA}n`jTE|9(T+)Y9*qP!Y=+R$v7*JM z=pySvqumdmfJpwPZ!N6J1W1L-h#+erBe*bVF8-DIL|XzH%l-CE6;+0F-JnV8gkJ9_ z)sMZ3vgA4wPr9BpW1f%qat4990vnq2b@&Wgt^|@sxVx%^+5C+5@JbOO4!|&hKo|3?lAHgW@S6u8=fN{J9!~_d^qJs1Z4)v^SpH^N-iSmF3Mmv-gqVGfQd zPJ<#3O8oPF8=~3Bs<}AYYlJV4TICODE*NkR+%g09nKO7=&C>bWPZ-l%pGyhjr!bMFLAvkFUsxb;m5XF`45k-4(tQ z54FdD%Z4HIGI0!rV6`6An+ts=O=(EHzhNmyeSlb6yX0wO#06NBMZ=muYVs&x+XfXe z#mG@Z?K?YpRf&{>VTxiAn_m~Ur%`wMD-nC!i;#19=5nZ*kU}?%=2hE_4XRs0LuUu>S`FY|CJx^L?@9C)HZh zCnd94u-DGk2n8l#3P-XO-8i=|71rw5YEKnD3<6LsE0MI1ew|KRT5QnW#BNbN(YJ&Z zmIwdW#?nP{F&#lOZeqJY)I%TSvf57W372wOD!(q)u|)9Fsm?iEF7Xqjf0XDrr6jCU zx`)=3b^__2FNF*fN4g-4c}UirA%61&<%@WP7@P>QNMg1<7pn&bwy~3TiXPxKoT@W+E$x7Q}qE#KPuOvQK z>RXWb3cj#ezZk4TpjfR>l=Jjry@e5MOxAEGckRaHGV9q5c7mf6`JD58g`0+_tmc0K zKwNo8$%mk9^O;ZLz;yUg5pV|pMFG~+KZE9!BZszeL=$p090$uUHt4}0q=Xx^#jSjn zFV!OCXFQ1e4i{gf7DbquH~Y03j%vNN+uE3{(h#o5)|D-naQ^@^lPkaGU=~)>U+MOs znD13XbK00Zk0+u4N)t!Dj+wUPN%6o6>wShPL+v6mVNqL~?BdWa8b)NIKuA@blq7=Q zDm(UyH0_+fpwvGWWF!1)TV#NSZ2e#l(%Hs~8_;J2yl2ZI1;uF;U?6;w-V7VLgXz2A0-%j@q_R{Sa^=jI1E<@@&xOm`24`ms z*(W+0i|%Tp1()S=l)ypES`{ubB{p0nUdd=j)+UJ~+kk1N<))eU#D3^Ik-7o!>7V^q zME@ZNUZjWCLgGItf|tcF(!K%&&r16R@Bl3>eTGp!-lZPpGgG2`zNjc4dWe+I+Au)* zIh9nD&q@q$l)By$Z$J^U!oN z;gdELY#x

Jqoq*@h6pjEn<9w#~ljG(qT`8L)({c@Cn!8Icn( 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%0DSns*QUDBe;YV>p+Zx4qXA&t?68lCiFg$ww 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%0AyARIBMU^qC@J!JH;eEnquj4Y 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�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