# Infrastructure

Glitter Node Validator is a node application deployed to multiple running instances that are communicating through a shared database. Each validator owns an account for each blockchain network configured and secretly stored in the vault. Each validator has an internal scheduler for jobs to perform periodically:

* create release transactions,
* sign release transactions,
* execute signed transactions,
* delete old done transactions.

In case any of the jobs fails, the error is logged and the validator continues with the next job in the row.

All validators are connected to the smart programs on configured blockchain networks that are processing multi-signature release requests on the target network. Each validator represents one unit in the multi-signature process which is accepted by the network only if the configured amount of validators signed the requested transaction.

### EVM Networks

A multi-signature process on the Ethereum Virtual Machine compatible chains is provided and secured by the [Safe Global](https://safe.global/) infrastructure. Smart contract operating on the EVM chain accepts release requests signed by configured Safe account. Validators are storing transaction data on the Safe Global and approving the transaction execution. Once the transaction execution request is accepted, Safe validates the signatures and executes the transaction.

This process was tested on these networks:

* Ethereum
* Arbitrum
* Polygon
* Avalanche
* Binance Smart Chain
* Polygon zkEVM
* Optimism

### Solana

Release transactions executed on Solana are signed using the deployed instance of [coral-xyz/multisig program](https://github.com/coral-xyz/multisig). Similar to the EVM networks, the smart program on Solana performing the release transaction is expecting only the Multisig program signature. Validators have configured multi-signature accounts with the specified threshold. During the release transaction creation, transaction data are stored in the account on the chain. Once all validators approve the transaction using the Multisig program, the transaction is executed. After signature validation, Mutlisig program signs the transaction data and executes the transaction by calling the smart program.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.glitterfinance.org/glitter-crosschain-platform/token-bridge-v2/infrastructure.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
