# GNUS.AI Docs -- Full Corpus
---
source: /about-gnus.ai/introduction/
title: Introduction
---
# Introduction
GNUS.AI empowers end-users to participate in decentralized processing, earning GNUS tokens—the native token for GNUS.AI—by utilizing the idle cycles of computers, mobile devices, and any other device connected to the internet. Whether you're playing a game, creating and rendering your own content, or solving complex algorithms, your participation in the GNUS.AI network is rewarded.
GNUS Blockchain Workflow
## Purpose and Mission
Our mission is to democratize AI/ML processing, allowing individuals to contribute their computing resources and be rewarded. GNUS.AI is creating a seamless ecosystem where users can easily integrate the system into various applications and games, fostering a new era of decentralized and organic growth.
---
source: /about-gnus.ai/why-gnus.ai/
title: Why GNUS.ai?: A DePin That's Different and Disruptive
---
---
cover: ../../.gitbook/assets/Screen Shot 2024-02-20 at 10.59.45 AM.png
coverY: 0
---
# Why GNUS.ai?: A DePin That's Different and Disruptive
### Revolutionizing AI, Ads, and App Monetization with Idle Device Power
GNUS.ai is a blockchain-based DePin platform that harnesses idle computing power from everyday devices worldwide: desktops, mobiles, gaming consoles, and IoT systems to power AI and ML workloads. It democratizes AI by enabling efficient processing on low-power devices (e.g., iPhone 8 or older GPUs). It rewards users with GNUS tokens (multichain on Ethereum, Polygon, Bitcoin) for sharing resources in a peer-to-peer ecosystem.
The platform runs natively on Windows, macOS, Linux, Android, iOS, XBOX, PlayStation, and IoT devices. It bypasses Docker/container dependencies for seamless AI/ML across ecosystems, with low virtualization overhead for organic growth.
At its core is a unique patent (US 11,451,393 B2), filed January 29, 2020 (development from 2019) and granted September 20, 2022. This covers a hybrid blockchain for fast cryptotoken transactions, data verification, and payments using unused device cycles for AI/ML. It prioritizes low-end hardware, offering censorship-resistant, low-cost infrastructure.
GNUS.ai disrupts the ads and monetization spaces through SDK embedding in apps and games. Developers integrate AI/ML while users earn GNUS tokens from idle cycles during usage. This creates shared revenue without ads or paywalls. It transforms app income models; no other DePin offers such native, cross-OS in-app earnings.
GNUS.ai stands apart from other DePins by focusing on low-power democratization, not high-end compute. True decentralization means access for all, not just those with expensive hardware or limited platforms. Based on analysis, projects like Render, Grass, Filecoin, and Helium are generally considered fully decentralized in the DePin space due to their peer-to-peer structures, global node distribution, and blockchain-based incentives, though they may face criticisms around practical centralization (e.g., hardware barriers or initial bootstrapping). See the updated comparison below:
| Project | Focus | Decentralization Level | Workloads | Platforms/OS Support | Key Differentiation from GNUS.ai |
| ----------------------------------- | ----------------------------------- | ---------------------- | ------------------------------------ | --------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| GNUS.ai | Idle device power for AI/ML | Fully decentralized | AI/ML processing, gaming integration | All major OS/devices (incl. mobiles, consoles, IoT) | Native, non-containerized; rewards low-end hardware; patent-protected crypto payments; app-embedded monetization |
| Octa.space | Decentralized GPU cloud/marketplace | Semi-centralized | AI training, rendering, VMs | Docker/VMs on GPUs (Nvidia/AMD/Intel) | Relies on Docker/VMs for high-end nodes; not device-ubiquitous |
| Bittensor | Machine intelligence network | Semi-centralized | AI inference/training, predictions | Subnets for miners/validators | Relies on centralized miners/validators; high-stake concentration; less idle consumer device focus |
| Render | Distributed rendering/GPU | Fully decentralized | 3D rendering, AI graphics | GPU-focused nodes | High-end GPU competition; no broad OS support |
| Grass | Unused bandwidth for AI data | Fully decentralized | AI data scraping/processing | Browser extensions/mobiles | Bandwidth-centric, not compute |
| Filecoin | Decentralized storage | Fully decentralized | Storage for AI data | Node-based (not device-native) | Storage-focused; no AI compute |
| Helium | Wireless/IoT networks | Fully decentralized | IoT data transmission | Hardware hotspots | Network infrastructure, not AI/ML |
| ICP | Decentralized web/compute | Semi-centralized | Web apps, AI hosting | Canister-based VMs | General compute; more centralized governance |
| Golem | Idle computing resources | Decentralized | General compute tasks | Node-based | Broader compute but less AI-specific |
| DePINed | AI/Rendering SuperCloud | Semi-centralized | AI tasks, rendering | App-based GPU sharing | Separate install required; retail-focused |
| io.net | Decentralized GPUs | Semi-centralized | AI/ML workloads | Cloud-like clusters | High-end GPU alternative |
| Gensyn | Idle GPUs for AI | Semi-centralized | AI training/inference | GPU marketplaces | High-end focus |
| PingPongBuild | Idle hardware for AI/DePin | Decentralized | AI compute, blockchain apps | Multi-Mining app + SDK (likely Windows/Mac/Linux) | SDK integration but narrower OS support; requires high-end hardware/dev skills |
| Others (e.g., NuNet, DIMO, Nodepay) | Compute/IoT | Varies | AI tasks, vehicle data | Docker/extensions | Container/extension-dependent; premium resource focus |
By tapping billions of idle devices, GNUS.ai scales AI to trillions of operations affordably, avoiding high-end competition. It enables cross-OS democratization, token deflation via burns, and ad-alternative earnings. This positions it as a foundational layer for accessible, community-driven AI. Learn more at docs.gnus.ai or gnus.ai.
---
source: /about-gnus.ai/why-gnus.ai/works-everywhere/
title: Works Everywhere
---
# Works Everywhere
The flexibility of GNUS.AI is evident in its compatibility across a multitude of devices:
* Windows, Windows Mobile
* iOS/OSX
* Android
* Linux
* XBOX
* Playstation
* Nintendo
* Any other Internet of things (IoT) device
This wide-ranging compatibility ensures that GNUS.AI can seamlessly integrate into existing infrastructure.
---
source: /about-gnus.ai/why-gnus.ai/customizable/
title: Customizable
---
# Customizable
Each user will be able to tailor their A.I. or Machine Learning algorithms according to their unique requirements.
This is facilitated through a user-friendly customer portal, where data can be uploaded securely.
---
source: /about-gnus.ai/why-gnus.ai/fast/
title: Fast
---
# Fast
GNUS.AI utilizes an internal [Directed Acyclic Graph (DAG)](../../resources/glossary.md#directed-acyclic-graph-dag) based blockchain, executing transactions in microseconds.
The emphasis on speed ensures efficient processing of data, making it an ideal solution for real-time applications.
---
source: /about-gnus.ai/why-gnus.ai/secure/
title: Secure
---
# Secure
Each application will include a Two-Factor Authentication system.
The system uses Time-based One-Time Passwords for verification, and the process is made more secure through a technology called Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge (zk-SNARKs).
---
source: /about-gnus.ai/why-gnus.ai/secure/secure-2fa-with-totp-and-zk-snarks/
title: Secure 2FA with TOTP and zk-SNARKs
---
# Secure 2FA with TOTP and zk-SNARKs
In our pursuit of enhancing security within blockchain applications, we've integrated a Two-Factor Authentication (2FA) system using Time-based One-Time Passwords (TOTP) verified through Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge (zk-SNARKs). This approach ensures the authenticity of transactions and actions without compromising user privacy. Furthermore, all user and system data related to 2FA are securely stored in an append-only database using Conflict-Free Replicated Data Types (CRDTs) backed by IPFS DAGs, ensuring data integrity and resilience.
### Overview
#### TOTP System
The TOTP system generates a temporary code based on a shared secret and the current time. This method is widely used for 2FA, providing an additional layer of security beyond just passwords.
* **Secret Generation**: Upon account creation, a unique secret is generated for each user.
* **TOTP Generation and Verification**: The TOTP is generated by the user's device and verified by our system to grant access or validate transactions.
#### zk-SNARKs Integration
zk-SNARKs allow the verification of possession of the TOTP without revealing the TOTP itself or the shared secret, maintaining user privacy.
* **Proof Generation**: Users generate a zk-SNARK proof that they have a valid TOTP.
* **Proof Verification**: Our system verifies this proof without needing to see the actual TOTP code.
#### CRDT Database with IPFS DAG
User account information, including 2FA details, is stored in a CRDT database. This structure supports an append-only model, ensuring data is tamper-resistant and decentralized.
* **Immutable Storage**: Using IPFS DAG, the database ensures that once data is added, it cannot be altered or removed.
* **Decentralization and Resilience**: Leveraging IPFS provides a distributed network, enhancing data availability and resilience against attacks or failures.
### Implementation Steps
#### Account Setup
1. **Generate TOTP Secret**: Upon account creation, generate a TOTP secret for the user.
2. **Encrypt and Store Secret**: Encrypt the secret with the user's public key and store it in the CRDT database, along with the account information.
#### TOTP Verification with zk-SNARKs
1. **Generate TOTP**: The user generates a TOTP on their device.
2. **Create zk-SNARK Proof**: The user generates a zk-SNARK proof of having a valid TOTP.
3. **Submit Proof**: The user submits the proof for verification.
4. **Verify Proof**: Our system verifies the proof, granting access or approving transactions without ever seeing the TOTP code.
#### Data Storage in CRDT with IPFS DAG
1. **Store Account Information**: Account and TOTP information are stored in the CRDT database.
2. **Append-Only Model**: Any updates are appended, maintaining a historical record of changes.
3. **IPFS DAG Storage**: The CRDT database is stored in an IPFS DAG, ensuring decentralized, immutable storage.
### Security Considerations
* **Key Management**: Secure management of private keys used for encrypting TOTP secrets is crucial.
* **Proof Verification**: Ensure that zk-SNARK proof verification is robust and secure.
* **Data Integrity**: Regular audits and checks to ensure the integrity and availability of data stored in the CRDT database on IPFS.
### Conclusion
Integrating TOTP with zk-SNARKs and leveraging a CRDT database with IPFS DAG for storage offers a robust, privacy-preserving 2FA solution. This system enhances security for blockchain applications while ensuring data integrity and user privacy.
---
source: /about-gnus.ai/features-and-benefits/
title: Features and Benefits
---
# Features and Benefits
## Features And Benefits
#### Decentralized
* GNUS.AI turns your computer, smartphone, or other devices into a powerful team, working together to solve complex problems.
* Instead of relying on a single, centralized server, GNUS.AI connects many devices in a decentralized network, utilizing their combined computing power.
#### Secure
* Each transaction is secured with Zero Knowledge (ZK) encryption, preventing your data from being sold.
* Regular smart contract audits will be performed as an integral security measure.
#### Integration
* App developers can use a special Software Development Kit (SDK) that can be included in their applications, enabling them to tap into the unused processing power of your device for AI tasks.
#### Rewards
* You get special digital coins (cryptocurrency) as a reward for letting GNUS.AI use your device's brainpower.
* When your device helps with AI calculations, you earn GNUS tokens, which you can use to buy things in apps or convert into other cryptocurrency.
#### Compatibility
* GNUS.AI works with everything from your phone to your game console and everything in between.
* It easily fits into various devices, allowing you to contribute to the network regardless of what type of device you're using.
---
source: /about-gnus.ai/features-and-benefits/scale-and-cost-efficiency/
title: Scale and cost-efficiency
---
# Scale and cost-efficiency
Building the GNUS.ai marketplace as a Web3 protocol eliminates centralized overheads, allowing for unprecedented scalability and reduces barriers to entry for new supply participants. This enables GNUS.ai to connect potentially every computing device globally, creating a decentralized network that scales far beyond the limits of traditional providers. By forming a network from the available billions of worldwide consumer compute devices, GNUS.ai offers on-demand access to boundless compute supply at a transparent and minimal cost—often as low as $0.01 per hour or less.
GNUS.ai's pricing is driven by an automated supply and demand function, ensuring that costs remain at least 80% lower than other systems. This dynamic pricing structure allows GNUS.ai to stay highly competitive while offering users massive savings. Unlike traditional providers with centralized infrastructure and inflated costs, GNUS.ai operates with no CapEx and minimal OpEx, further driving down prices. Operational expenses are taken as a small percentage of the already low hourly cost, enabling the system to approach near-zero costs.
This approach completely redefines cost barriers associated with scaling machine learning workloads, as GNUS.ai guarantees users access to affordable compute without compromising on scalability. By efficiently utilizing global compute resources and capturing latent capacity, GNUS.ai offers a flexible, decentralized solution that meets the needs of both developers and end-users, all while maintaining cost advantages unmatched by other systems.
| Provider | Approximate hourly cost for ML training work (V100-equivalent) | Scalability |
| ------------------------------- | -------------------------------------------------------------- | ----------- |
| GNUS.ai | $.005 | High |
| Single personal GPU | $0.28 | None |
| Gensyn (projected) | $0.40 | High |
| Single GPU in datacenter | $0.40 | None |
| GCP spot instances (unreliable) | $0.75 | Medium |
| AWS spot instances (unreliable) | $0.90 | Medium |
| Vast.ai | $1.10 | Low |
| Golem Network | $1.20 | Low |
| AWS on-demand | $2 | Medium |
| GCP on-demand | $2.50 | Medium |
| Truebit (+ Ethereum) | $12 | Low |
| Ethereum | $15,700 | Low |
####
---
source: /about-gnus.ai/features-and-benefits/gnus.ai-network-vs.-centralized-xai-100k-cluster/
title: GNUS.ai Network vs. Centralized xAI 100k Cluster
---
---
description: A Comprehensive Comparison for Prospective Node Operators
---
# GNUS.ai Network vs. Centralized xAI 100k Cluster
---
source: /about-gnus.ai/features-and-benefits/gnus.ai-network-vs.-centralized-xai-100k-cluster/1.-executive-summary/
title: 1. Executive Summary
---
# 1. Executive Summary
The GNUS.ai network is a decentralized, cost–efficient processing system that leverages the computing power of millions of end–user nodes. Each node earns GNUS tokens as compensation for contributing compute power. In contrast, a centralized xAI cluster built from high–end chips (such as Nvidia H100 chips) requires massive upfront investments (CAPEX) and ongoing high operating expenses (OPEX).
Key highlights include:
• Minimal CAPEX for GNUS: Nodes are operated by end users who supply their own hardware, electricity, and network connectivity.
• Low OPEX: The GNUS network’s operating costs are limited to software, blockchain, and coordination overhead (only a few million dollars per year).
• Profitability via Tokenomics: Node operators are paid $0.005 per hour in GNUS tokens. With a built–in deflationary mechanism (10% token burn per processing cycle and a 10% commission to Genius Ventures), the token’s value is expected to rise significantly over time.
• Long-Term Value: Holding GNUS tokens can multiply the effective payout per hour. For example, a token starting at $3.40 on day one could be worth around $25.80 after one year, effectively increasing the hourly payout from $0.005 to approximately $0.0379.
• This report explains these concepts in detail and provides tables and projections that compare the GNUS.ai decentralized network with a centralized xAI 100k–node cluster.
---
source: /about-gnus.ai/features-and-benefits/gnus.ai-network-vs.-centralized-xai-100k-cluster/2.-introduction/
title: 2. Introduction
---
# 2. Introduction
Modern AI and machine learning applications require enormous amounts of compute power. Traditional centralized data centers using high–end chips (like Nvidia H100s) demand huge CAPEX and OPEX. These systems often cost billions of dollars in capital investment and incur ongoing expenses for electricity, cooling, network bandwidth, and storage.
In contrast, the GNUS.ai network is built on a decentralized model where:
• End users operate nodes using their own devices.
• The network distributes payouts in GNUS tokens at a nominal rate of $0.005 per hour.
• A deflationary mechanism (token burning) and commission structure increase the token’s value over time.
This report is designed to explain these differences in simple terms and show how node operators benefit from participating in the GNUS.ai network.
---
source: /about-gnus.ai/features-and-benefits/gnus.ai-network-vs.-centralized-xai-100k-cluster/3.-understanding-the-gnus.ai-decentralized-network/
title: 3. Understanding the GNUS.ai Decentralized Network
---
# 3. Understanding the GNUS.ai Decentralized Network
### How It Works
• Node Operation:
Node operators contribute compute power from their own devices. Each node provides about 1 TFlop of processing power.
• Payout Structure:
Every node earns GNUS tokens at a rate of $0.005 per hour of processing. This payout is made in tokens rather than fiat dollars.
• Token Distribution & Deflation:
• Of the $0.005 per hour, 10% (i.e., $0.0005) is captured by Genius Ventures (GV) as a commission.
• Additionally, 10% of the GNUS tokens paid for processing are burned (removed from circulation). This deflationary mechanism reduces the total token supply over time.
### Why Decentralization Matters
• No Centralized Hardware Investment:
Unlike a centralized cluster, GNUS nodes are operated by individuals. There is no need for billions in capital investments.
• Lower Operating Expenses:
The network’s actual OPEX is very low—mostly just the cost to maintain the software, blockchain, and coordination functions.
• Scalability:
The system scales by adding more nodes organically, with each new node further reducing the circulating supply through deflation.
---
source: /about-gnus.ai/features-and-benefits/gnus.ai-network-vs.-centralized-xai-100k-cluster/4.-the-centralized-xai-100k-cluster-explained/
title: 4. The Centralized xAI 100k Cluster Explained
---
# 4. The Centralized xAI 100k Cluster Explained
### What It Is
A centralized xAI cluster is a traditional data center approach that uses high–end chips—such as Nvidia H100 GPUs—to deliver massive compute power. For example:
• Compute Performance: Each chip delivers about 67 TFlops.
• Scale: A 100k–chip cluster would provide immense processing power.
### Cost Structure
• CAPEX:
• Estimated at around $6 billion to build a 100k–chip cluster (including hardware, data centers, cooling systems, etc.).
• OPEX:
• Compute Cost: Approximately $1.75 per chip per hour is charged to cover operating costs.
• Electricity, Cooling, Network, and Storage: Additional high–cost items add hundreds of millions per year to the operating budget.
• Total Annual OPEX: Could reach $1.7 billion per year.
### Limitations
• High Capital Requirements:
A centralized cluster requires enormous upfront investments and heavy financing.
• Operational Complexity:
Managing a centralized cluster involves dealing with high electricity usage, significant network costs, and storage complexities.
• Scalability Issues:
Scaling a centralized system requires even more capital and increases operational risks.
---
source: /about-gnus.ai/features-and-benefits/gnus.ai-network-vs.-centralized-xai-100k-cluster/5.-comparing-capex-and-opex/
title: 5. Comparing CAPEX and OPEX
---
# 5. Comparing CAPEX and OPEX
### CAPEX Comparison
Negligible (only software and coordination CAPEX, e.g., $2M over 8 years)
### OPEX Comparison
Metric
Centralized xAI Cluster
GNUS.ai Decentralized Network
Compute Payment (Hourly)
$1.75 per chip × 100,000 chips ≈ $175,000 per hour
$0.005 per node × ~6.7 million nodes ≈ $33,500 per hour
Annual Compute Cost
~$1.53 billion per year
~$293 million per year (paid directly to node operators)
Electricity & Cooling
High estimated ~$61 million per year for electricity alone
Borne by individual node operators (minimal impact on GNUS)
Network & Storage Costs
Additional expenses (~$100 million/year)
Minimal—local connectivity and distributed storage
Total Annual OPEX
Approximately $1.7 billion per year
On the order of $2–$10 million per year (true OPEX for coordination)
_Note:_ For GNUS.ai, the $293 million figure represents the total “compute payment” distributed in tokens, which is a pass–through payment to node operators and not an overhead cost for the GNUS network itself.
---
source: /about-gnus.ai/features-and-benefits/gnus.ai-network-vs.-centralized-xai-100k-cluster/6.-payout-structure-and-profitability/
title: 6. Payout Structure and Profitability
---
# 6. Payout Structure and Profitability
### Centralized Model Profitability
• Revenue Per Chip:
Charging an effective $1.75 per chip per hour, with a 10% profit margin, results in a profit of approximately $0.175 per hour per chip.
• Annual Profit:
For each chip:
0.175 × 8,760 ≈ $1,533 per year
For 100,000 chips, this equates to roughly $153.3 million per year in compute–level profit.
• Challenges:
Despite these numbers, the centralized system must cover its enormous CAPEX and high OPEX, limiting its scalability and increasing financial risk.
### GNUS.ai Payout Structure
• Base Payout:
Each node earns $0.005 per hour in GNUS tokens.
• Distribution Breakdown:
• Node Operator Receives: 90% of $0.005, or $0.0045 per hour.
• Genius Ventures (GV) Receives: 10% commission (i.e., $0.0005 per hour) plus 10% of the tokens are burned (a deflationary measure that increases token value).
• Annual Gross Payout:
With approximately 6.7 million nodes:
6,700,000 × 0.005 × 8,760 ≈ $293 million per year (gross distributed value)
• Conversion Fees (if converting to USD):
Should operators choose to convert their tokens, a 2.5% fee plus an additional 1% fee (total of 3.5%) is applied.
• Effective Annual Payout after Fees:
$293 million × 0.965 ≈ $282.7 million
• However, most operators are expected to hold their tokens because of the deflationary benefits.
---
source: /about-gnus.ai/features-and-benefits/gnus.ai-network-vs.-centralized-xai-100k-cluster/7.-the-deflationary-token-mechanism/
title: 7. The Deflationary Token Mechanism
---
# 7. The Deflationary Token Mechanism
### How It Works
• Token Burn:
Every processing cycle, 10% of the GNUS tokens used in the payout are burned (removed from circulation).
• Commission:
Genius Ventures also takes a 10% commission from the payout.
• Net Effect:
The circulating supply of GNUS tokens decreases over time, which—assuming constant or increasing demand—drives up the value per token.
### Benefits for Node Operators
• Increased Token Value:
Even though the hourly payout remains nominally at $0.005, the deflationary burn means that if tokens are held rather than immediately converted, their value increases.
• Long-Term Appreciation:
For example, if the token price increases from $3.40 on day one to $25.80 after one year (a 7.59× increase), the effective hourly payout in USD becomes:
0.005 × 7.59 ≈ $0.0379 per hour
• Incentive to Hold:
Conversion fees (a total of 3.5%) further discourage immediate conversion, incentivizing operators to hold tokens and benefit from long–term appreciation.
---
source: /about-gnus.ai/features-and-benefits/gnus.ai-network-vs.-centralized-xai-100k-cluster/8.-projected-token-price-appreciation/
title: 8. Projected Token Price Appreciation
---
# 8. Projected Token Price Appreciation
Let’s illustrate a simplified projection over 5 years for the GNUS token. This model assumes:
• A fixed annual processing value that yields $29.35 million in value burned each year.
• A starting circulating supply of 20 million tokens priced at $3.40 each.
• No new node additions—the model focuses solely on the deflationary impact.
### Year-by-Year Projection (Simplified)
Year
Circulating Supply (Million Tokens)
Tokens Burned (Million)
Effective Price Multiplier
Projected Token Price
0
20.00
–
1×
$3.40
1
~11.37
~8.63
~1.76×
$3.40 × 1.76 ≈ $5.98
2
~6.46
~4.91
~1.76×
$5.98 × 1.76 ≈ $10.51
3
~3.67
~2.79
~1.76×
$10.51 × 1.76 ≈ $18.52
4
~2.08
~1.59
~1.76×
$18.52 × 1.76 ≈ $32.60
5
~1.18
~0.90
~1.76×
$32.60 × 1.76 ≈ $57.25
### Earnings-Adjusted Valuation
If we apply a Price-to-Earnings (P/E) ratio (common in technology companies) to the annual profit captured by Genius Ventures, we get an additional multiplier. For example, if:
• Annual profit (from commissions and burns) is $29.35 million.
• A modest P/E of 10× is applied, the earnings–based market cap would be $293.5 million.
• With the deflated token supply (for instance, 11.37 million tokens after Year 1), the earnings–adjusted price per token would be:
$293.5 million\
\---------------------— ≈ $25.80 per token.\
11.37 million tokens
This means a node operator who holds tokens for one year sees the effective hourly payout multiply by a factor of approximately 7.59 (i.e., $25.80/$3.40).
---
source: /about-gnus.ai/features-and-benefits/gnus.ai-network-vs.-centralized-xai-100k-cluster/9.-summary-comparison-tables/
title: 9. Summary Comparison Tables
---
# 9. Summary Comparison Tables
### CAPEX & OPEX Comparison
Metric
Centralized xAI 100k Cluster
GNUS.ai Decentralized Network
CAPEX Investment
~$6 billion upfront (hardware, data centers, cooling, etc.)
Minimal—nodes provided by end users; software CAPEX ≈ $2M total
Compute Cost (Hourly)
$1.75 per chip × 100,000 chips = $175,000 per hour
$0.005 per node × ~6.7 million nodes = $33,500 per hour
Annual Compute Cost
~$1.53 billion/year
~$293 million/year (paid as a pass-through to node operators)
Electricity & Cooling
~$61 million/year
Borne by node operators (negligible to GNUS)
Network & Storage Costs
~$100 million/year
Minimal—local and distributed storage
Total Annual OPEX
~$1.7 billion/year
True OPEX for GNUS: $2–$10 million/year
### Profitability and Token Economics
Metric
Centralized xAI Cluster
GNUS.ai Decentralized Network
Hourly Payout/Charge
$1.75 per chip
$0.005 per node
Compute-Level Profit Margin
~10% (i.e., $0.175 per chip per hour)
Genius Ventures: 10% commission + 10% token burn
Annual Gross Processing Value
~$1.53 billion for compute (with high CAPEX/OPEX)
~$293 million distributed in tokens
Annual Profit Captured (GV)
~$153 million total (compute–level)
~$29.35 million via commission and burns
Conversion Fees (if converting)
N/A (typically internal accounting)
3.5% (2.5% + 1% on token-to-USD conversion)
Effective Payout if Converted
Based on contract pricing
$293 million × 0.965 ≈ $282.7 million total USD value
Incentive to Hold Tokens
Not applicable
Deflationary mechanism may increase token value (e.g., from $3.40 to $25.80 over 1 year)
---
source: /about-gnus.ai/features-and-benefits/gnus.ai-network-vs.-centralized-xai-100k-cluster/10.-conclusion-and-next-steps/
title: 10. Conclusion and Next Steps
---
# 10. Conclusion and Next Steps
### Key Takeaways
• Decentralized Advantage:
The GNUS.ai network uses end–user resources to achieve massive compute power without the need for enormous CAPEX. Operating expenses are minimal because node operators supply hardware, electricity, and network connectivity.
• Profitable Model for Node Operators:
With a base payout of $0.005 per hour, node operators benefit from both a 10% commission mechanism (captured by Genius Ventures) and a deflationary token burn that reduces the circulating supply. Over time, this deflation is projected to significantly increase the token’s value. For example, while the nominal hourly payout is $0.005, holding tokens for one year (assuming a price increase from $3.40 to $25.80) boosts the effective hourly payout to approximately $0.0379.
• Comparison with Centralized Systems:
Centralized xAI clusters demand huge CAPEX (around $6 billion) and high OPEX (approaching $1.7 billion per year) to operate, resulting in high risks and limited scalability. In contrast, GNUS.ai offers a low–cost, scalable alternative with dramatically lower operating expenses and potential for long–term token appreciation.
• Long-Term Growth Potential:
With modest earnings–based valuation (using a P/E ratio common for technology companies), projections indicate that the GNUS token’s price could multiply several–fold over 5 years. This appreciation is driven by the deflationary token burn mechanism and the network’s steady annual processing value.
### Next Steps for Node Operators
1\. Review the Model:
Understand the key elements of the payout structure and the deflationary mechanism. Recognize that while the base payout is fixed at $0.005 per hour, holding the tokens rather than converting immediately can multiply your effective earnings significantly.
2\. Consider the Long-Term Benefits:
Evaluate the benefits of holding GNUS tokens over the long term. With the projected appreciation (potentially 7.59× increase after one year, and even higher over 5 years), patience can yield substantial rewards.
3\. Get Involved:
If you’re interested in joining the GNUS.ai network, ensure you understand the technical requirements and the steps needed to connect your device as a node operator. Training and documentation are available to guide you through the onboarding process.
4\. Stay Informed:
Keep up with GNUS.ai network updates, token economics revisions, and market trends. Regular updates will help you maximize your benefits and participate in community governance.
---
source: /about-gnus.ai/features-and-benefits/gnus.ai-network-vs.-centralized-xai-100k-cluster/final-thoughts/
title: Final Thoughts
---
# Final Thoughts
The GNUS.ai network represents a paradigm shift from traditional, centralized computing clusters to a scalable, decentralized model. By leveraging the computing power of millions of end-user nodes and a deflationary token mechanism, GNUS.ai dramatically reduces CAPEX and OPEX while offering potentially significant long–term rewards for node operators.
This report has compared the centralized xAI 100k cluster model with the GNUS.ai decentralized network across key dimensions such as CAPEX, OPEX, payout structure, and token appreciation. We hope this information helps you understand the benefits and economics of joining the GNUS.ai network.
Thank you for considering participation in the GNUS.ai network. We look forward to building a future of efficient, decentralized AI processing together.
---
source: /about-gnus.ai/features-and-benefits/tokenomics/
title: Tokenomics
---
# Tokenomics
Disclosure of Funds Raised, Token Distributions, and Funds Usage
Tokenomics for Token Raise Distribution
## Compute-Driven Token Growth
The following graph shows our [Monte Carlo](https://my.machinations.io/d/gnus-economy/8683592da7e911eda2330626ff1c9bc8) simulation using two Enterprises buying AI/ML processing and three games with 12 online players.
* Multiple Revenue Streams
* AI/ML Processing revenue, as well as Crypto & NFT trading fee revenue
* Crypto Token Advantages
* Mint & Burn allows configurable profits.
* Investments Scale the Network
* Investments are used to scale the network by adding nodes.
* Monte Carlo Analysis Simulation
* Monte Carlo Analysis shows the network effect. Faster network scaling increases GNUS token price faster.
Compute-Driven Token Growth over 700 days
Circulating Supply
The GNUS token is itself subdivided into units called "Minions". 1 GNUS = 10^9 Minions. Internal SuperGenius ledgers use 64 bit values to hold Minions, which translates to a single GNUS wallet address being able to hold a max balance of 18.4 billion GNUS (with a fractional/decimal precision of 10^9).
---
source: /about-gnus.ai/public-roadmap/
title: Public Roadmap
---
# Public Roadmap
* [ ] **Q2 2026 -** SuperGenius Blockchain Main Net released.
* [x] **Q1 2026 -** SuperGenius Blockchain Beta Phase 3
* [x] **Q4 2025 -** SuperGenius Blockchain Beta Phase 2 and Security Audits.
* [x] **Q2-Q3 2025 -** SuperGenius Blockchain Beta Phase 1 and Security Audits.
* [x] **Q1-Q2 2025 -** SuperGenius Blockchain Alpha Phases.
* [x] **Q4 2024 -** Official Test Net Launch and release to the public. 200+ games and other apps integrated into the SuperGenius blockchain
* [x] **Q1 2024**- Customer portal complete. Presale customers can now redeem or buy more GNUS tokens for A.I. and. M.L. processing.
* [x] **October 2023**- App user interface development. App enters Beta phase.
* [x] **August 2023-** App development, including mobile wallet, mobile SDK for game integration, and a standalone app for desktops.
* [x] **2021-2022**- The COVID-19 pandemic and the Russian/Ukrainian war hinder development.
* [x] **June 2021-** Minimally viable product (MVP) and Initial Coin Offering (ICO) allow for continual development.
* [x] **May 2021**- Dapps on the Ethereum network complete and ready for Initial Coin Offering (ICO)
* [x] **April 2021**- Hybrid blockchain development begins implementing fast and slow blockchain.
* [x] **October 2020**- Coding begins on implementing the Directed Acyclic Graph (DAG) fast blockchain.
* [x] **January 2018**- Integration of blockchain into A.I. processing is started. Sample game, shaders, and SDK development begin.
---
source: /about-gnus.ai/how-does-it-work/
title: How Does It Work?
---
---
description: >-
GNUS.AI combines Artificial Intelligence (AI) and the blockchain to create a
powerful and flexible system.
---
# How Does It Work?
When a user interacts with an application or system integrated with GNUS.ai, their data is processed on a decentralized network of nodes.
These nodes, distributed across the network, collectively contribute to data processing, ensuring efficiency and security.
***
{% hint style="info" %}
For example, let's assume you download and play a game using GNUS.ai:
During your game, the device you are using experiences periods of downtime or **Idle Central Processing Unit** (CPU) capacity, especially when the game's demands vary.
This means that your device has the potential to process a lot more information than the game itself demands at certain intervals. Typically, this processing power goes unused; however, GNUS.ai can tap into these idle CPU cycles for various computational tasks. This includes tasks related to AI processing, data analysis, and other functions within the GNUS.ai ecosystem.
This is called **Distributed Computation** and forms the foundation of the rewards system: the more computing power your device provides and for longer intervals, the larger portion of GNUS tokens will be rewarded. This incentivizes users to actively participate in the decentralized network, fostering a collaborative ecosystem
As the network scales and demand for CPU resources increases or decreases, **Dynamically Adjusted Resource Allocation** adapts based on these network demands. This ensures scalability and responsiveness, allowing the network to adapt to varying computational requirements.
As you can see, this approach optimizes the use of your device's resources while allowing you to enjoy your gaming experience.
{% endhint %}
---
source: /about-gnus.ai/how-does-it-work/idle-central-processing-gpu/
title: Idle Central Processing (GPU)
---
---
description: '-Where devices rests, but A.I. awakens.'
---
# Idle Central Processing (GPU)
***
\
Any application can have periods of idle GPU, regardless of the device running it. If your device can download and process the information fast enough to run the application, it will inevitably have idle CPU and GPU periods. This is where GNUS.AI steps in.
Let's revisit the game application example: A user is playing a resource-intensive game on their device, utilizing the GPU for graphics rendering and the CPU for game logic. While the user is exploring less demanding areas of the game or during loading screens, the GPU may experience idle capacity, triggering:
1. **Task Activation:** GNUS.AI detects these idle moments and activates its tasks, such as processing AI-related computations, blockchain transactions, or other decentralized network activities.
2. **Background Operation:** Tasks run in the background, utilizing the available GPU capacity without affecting the gaming experience. The user continues to play the game seamlessly.
3. **Efficient Resource Allocation:** GNUS.AI intelligently scales its operations based on available resources, ensuring that it never interferes with the game's real-time requirements [(Dynamically Adjusted Resource Allocation)](dynamically-adjusted-resource-allocation.md).
4. **No Overrun or Interruption:** The user enjoys uninterrupted gameplay, and when the game demands full GPU power again, Gnus.ai gracefully reduces its activity, allowing the game to take priority.
---
source: /about-gnus.ai/how-does-it-work/distributed-computation/
title: Distributed Computation
---
---
description: '-Transforming latency into computational synergy.'
---
# Distributed Computation
Distributed Computation involves breaking down a task into smaller sub-tasks that can be processed concurrently across multiple nodes within a network. This is especially relevant when larger tasks, demanding substantial processing power, can be divided and distributed among the processing capacities of multiple users.
**How GNUS.AI Utilizes Distributed Computation:**
1. **Task Division:**
* GNUS.AI identifies tasks that require computational power, such as complex AI computations, blockchain transactions, or data processing.
2. **Task Distribution:**
* The identified tasks are divided into smaller sub-tasks and distributed among the nodes. Each node independently processes its assigned sub-task.
3. **Parallel Processing:**
* Nodes work simultaneously on their allocated sub-tasks, leveraging parallel processing capabilities. This significantly accelerates the overall task completion time.
Managing computational resources highlights the flexibility of GNUS.AI to operate opportunistically during periods of device inactivity.
---
source: /about-gnus.ai/how-does-it-work/dynamically-adjusted-resource-allocation/
title: Dynamically Adjusted Resource Allocation
---
---
description: '-Empowering systems to adapt and thrive in the face of dynamic challenges'
---
# Dynamically Adjusted Resource Allocation
Dynamically adjusted resource allocation refers to a system or mechanism that allocates resources based on changing demands or conditions. In the context of GNUS.AI, it involves the intelligent distribution of resources such as processing power and memory to optimize performance and responsiveness. This concept works synergistically with distributed computation. Think of one as monitoring the demand for resources, while the other breaks down the available resources to efficiently complete the tasks.
The result ensures efficient utilization of resources, scalability, and responsiveness to varying requirements. This approach helps in preventing resource bottlenecks, improving overall system performance, and enhancing the user experience.
---
source: /technical-information/MASTER_ARCHITECTURE/
title: Master Architecture
---
# GNUS.ai Master Platform Architecture
**Canonical repository:** `GeniusVentures/documentation`
**Composition repository:** `GeniusVentures/GeniusNetwork`
**Role:** Canonical composition and integration map for the GNUS.ai platform
**Audience:** Application developers, game developers, platform engineers, maintainers, reviewers, coding agents, and LLMs
**Last architecture review:** 2026-07-28
---
## 1. Purpose
This document defines how the Genius Ventures repositories and submodules fit together when building a GNUS.ai application, game, wallet, cognitive service, node, smart-contract feature, or third-party integration.
Its main purpose is to prevent developers and coding agents from rebuilding infrastructure that already exists.
Before creating a new subsystem, library, protocol, wallet implementation, game adapter, token contract, networking layer, AI job service, proof system, or dependency wrapper, search the repositories identified here and determine whether the capability already exists.
This document is the platform-level ownership map. Detailed implementation documentation remains in the repository that owns each subsystem.
### 1.1 Normative rules
1. **Reuse before creating.** Search the owner repository and its submodules before adding a new implementation.
2. **Use the highest stable abstraction available.** Applications should normally use `GeniusSDK`; Unity applications should normally use `UnityGeniusSDK`; applications should not reach directly into `SuperGenius` internals unless they are extending the runtime itself.
3. **Put changes in the owning repository.** Do not implement a runtime feature in a sample application or a token rule in an SDK wrapper.
4. **Treat samples as examples, not authorities.** `GeniusWallet` and `Space-Force-War` demonstrate integration patterns, but the public SDK and runtime contracts are authoritative.
5. **Distinguish architecture from deployed implementation.** `GeniusCognitiveSystem` contains the cognitive architecture and implementation inventory. A documented GCS component may still require implementation or integration work.
6. **Do not silently fork common dependencies.** Shared native dependencies belong in `thirdparty` unless there is an explicit reason to isolate them.
7. **Do not update a parent submodule pointer before the child change exists.** Implement, test, and merge in the child repository first; then update the pointer in the parent composition repository.
8. **Preserve branch and submodule intent.** The branch and pinned commit referenced by `GeniusNetwork` define the tested composition. A child repository's latest default branch is not automatically the version used by the platform.
---
## 2. Platform at a Glance
```mermaid
flowchart TB
User[User / Player / Developer / API Client]
subgraph Applications[Application and Product Layer]
Wallet[GeniusWallet Flutter reference application]
UnityGame[Space-Force-War Unity sample game]
NativeApp[Native or third-party app]
CognitiveApp[GCS-powered application]
end
subgraph Adapters[Application Integration Layer]
UnitySDK[UnityGeniusSDK C# and Unity adapter]
SDK[GeniusSDK C-compatible native SDK boundary]
GCSAPI[GCS API / orchestration boundary OpenAI-compatible or native job ingress]
end
subgraph Runtime[Distributed Runtime Layer]
SG[SuperGenius node, ledger, processing, P2P, storage]
Processing[SGProcessingManager]
GRPC[gRPCForSuperGenius]
KDF[GeniusKDF]
Proof[ProofSystem]
Relay[evmrelay]
end
subgraph Cognitive[Genius Cognitive System]
Orchestration[Router / Planner / Executive Controller]
ELM[Semantic Core and ELMs]
Memory[GAML / Objective Memory / VTG]
Verify[EIS / grounding / verification / arbitration]
end
subgraph Trust[Proof and On-chain Trust Layer]
ZK[zkLLVM]
Contracts[TokenContracts GNUS, child tokens, settlement, bridge]
end
subgraph Foundation[Build and Test Foundation]
Third[thirdparty shared native dependencies]
VMs[TestVMs]
Downloader[GithubReleaseDownloader]
end
User --> Wallet
User --> UnityGame
User --> NativeApp
User --> CognitiveApp
UnityGame --> UnitySDK --> SDK
Wallet --> SDK
NativeApp --> SDK
CognitiveApp --> GCSAPI
SDK --> SG
GCSAPI --> Orchestration
Orchestration --> ELM
Orchestration --> Memory
Orchestration --> Verify
Orchestration --> SG
SG --> Processing
SG --> GRPC
SG --> KDF
SG --> Proof
SG --> Relay
Proof --> ZK
Relay --> Contracts
SDK --> Contracts
SG --> Third
SDK --> Third
Wallet --> Third
ZK --> Third
VMs --> SG
Downloader --> Third
```
### 2.1 The shortest correct mental model
- **`GeniusNetwork` composes and pins the platform.**
- **`documentation` owns the canonical published platform documentation.**
- **`SuperGenius` runs the decentralized native node and processing network.**
- **`GeniusSDK` is the native application-facing API boundary.**
- **`UnityGeniusSDK` adapts `GeniusSDK` for Unity and C#.**
- **`GeniusWallet` is the reference cross-platform wallet/application integration.**
- **`Space-Force-War` is the reference Unity game integration.**
- **`TokenContracts` owns on-chain GNUS and child-token behavior.**
- **`GeniusCognitiveSystem` defines and coordinates the cognitive architecture that runs locally or across GNUS nodes.**
- **`zkLLVM` and `ProofSystem` own proof compilation and proof workflows.**
- **`thirdparty` owns shared native dependency acquisition and builds.**
---
## 3. Composition Repository: GeniusNetwork
`GeniusNetwork` is the umbrella repository. It is not where every subsystem should be implemented.
Its responsibilities are:
- pin compatible subsystem versions through Git submodules;
- provide installation and composition guidance;
- coordinate cross-repository releases and integration testing;
- record platform-wide architecture, conventions, risks, and ownership through the pinned `documentation` submodule;
- provide a stable entry point for developers cloning the complete system.
### 3.1 Direct submodules on `develop`
| Path | Repository role | Application developers should use it for |
| --- | --- | --- |
| `SuperGenius/` | Core distributed node/runtime | Runtime development, networking, ledger, processing, storage, proofs, node APIs |
| `GeniusSDK/` | Native SDK boundary | Embedding GNUS node, account, balance, transfer, pricing, and processing features in apps |
| `GeniusWallet/` | Flutter reference application | Wallet UX, account lifecycle, secure storage, cross-platform packaging, job submission patterns |
| `TokenContracts/` | EVM smart contracts | GNUS and child-token rules, bridge contracts, settlement, escrow, access control, upgrades |
| `thirdparty/` | Shared dependency build system | Adding or updating common native libraries and platform builds |
| `zkLLVM/` | Zero-knowledge compiler/toolchain | Circuit compilation, assignment, proof-related tooling, verifier generation |
| `TestVMs/` | Test environments | Reproducible VM-based platform testing |
| `GithubReleaseDownloader/` | Release support utility | Downloading GitHub release artifacts used by builds/installers |
| `documentation/` | Canonical platform documentation and docs.gnus.ai build | Platform architecture, developer documentation, navigation, LLM catalogs, and published reference material |
### 3.2 Architecturally connected repositories not currently direct submodules
These repositories are part of the platform architecture even when they are not pinned directly by the current `GeniusNetwork/develop` `.gitmodules` file.
| Repository | Role | Relationship to GeniusNetwork |
| --- | --- | --- |
| `GeniusCognitiveSystem` | Cognitive architecture, specifications, module inventory, and GCS documentation | Defines how AI reasoning, memory, routing, verification, tools, and swarm cognition use GNUS infrastructure |
| `UnityGeniusSDK` | Unity/C# adapter and packaged game integration | Wraps native `GeniusSDK` artifacts for Unity applications |
| `Space-Force-War` | Reference Unity game | Demonstrates how a game consumes `UnityGeniusSDK` and replaces ad-centric monetization with GNUS participation |
Their absence from the root `.gitmodules` file does not authorize recreating their functionality inside another repository.
---
## 4. Repository and Subsystem Ownership
## 4.1 SuperGenius: distributed native runtime
`SuperGenius` owns the C++ native runtime. It is the core implementation for:
- node startup and lifecycle;
- account and transaction processing;
- the block-lattice ledger;
- peer discovery and peer-to-peer communication;
- distributed processing jobs;
- CRDT state and replicated storage;
- IPFS-based content exchange;
- RocksDB-backed persistence;
- subscriptions and message watching;
- proof generation and verification integration;
- gRPC-facing node services;
- EVM relay integration;
- local secure storage used by the runtime.
### Do not reimplement outside SuperGenius
Do not create a second P2P network, ledger, job network, node database, proof coordinator, CRDT store, or peer-discovery stack in an application repository when the work belongs in `SuperGenius`.
### Direct consumers
- `GeniusSDK` links to and wraps the runtime.
- `GeniusWallet` consumes packaged runtime/SDK functionality.
- GCS execution services use the runtime's processing, networking, storage, and trust capabilities.
- proof and relay submodules connect the native runtime to ZK and EVM systems.
## 4.2 SuperGenius nested submodules
| Submodule | Ownership |
| --- | --- |
| `gRPCForSuperGenius/` | Protocol Buffer definitions and generated gRPC interfaces for node communication |
| `GeniusKDF/` | Key-derivation functionality shared by the runtime and account/security flows |
| `ProofSystem/` | GNUS-specific proof circuits, proof orchestration, and verification integration |
| `SGProcessingManager/` | Distributed processing job schemas, generated interfaces, and processing-manager behavior |
| `docs/` | SuperGenius developer/runtime documentation maintained as its own repository |
| `evmrelay/` | Native-to-EVM relay and bridge-facing runtime integration |
A change to one of these capabilities should normally be made in its nested repository, followed by a `SuperGenius` pointer update and then, when required, a `GeniusNetwork` pointer update.
## 4.3 GeniusSDK: canonical application boundary
`GeniusSDK` is the embeddable native library that exposes GNUS runtime functionality to applications.
Its public C-compatible API exists so that C++, C#, Dart FFI, Unity, mobile, desktop, and other language bindings can use the runtime without depending on internal C++ classes.
The public API includes or is intended to include:
- SDK/node initialization and shutdown;
- initialization progress and node state;
- account creation, recovery, selection, and secure key-based initialization;
- address and token identifiers;
- balances and token-value conversion;
- transfers and transaction status;
- developer payment flows;
- processing job submission and processing status;
- native memory ownership helpers for FFI consumers.
### Boundary rule
An application should use `GeniusSDK` rather than link directly to internal `SuperGenius/src` classes unless the application is explicitly a runtime-development tool.
### Binding rule
Language and engine adapters must wrap the public `GeniusSDK` ABI. They must not duplicate account, balance, pricing, transaction, processing, or node-lifecycle logic in managed code.
## 4.4 UnityGeniusSDK: Unity adapter
`UnityGeniusSDK` owns the Unity-facing integration:
- C# P/Invoke declarations for the native GeniusSDK library;
- Unity lifecycle initialization and shutdown;
- persistent application data paths and developer configuration;
- Unity components for balance display;
- GNUS-to-display-price calculation;
- purchase and developer-payment components;
- UnityEvents and scene-friendly wrappers;
- platform packaging for Android, iOS, macOS, Windows, and Linux;
- Unity example scenes and prefabs.
### Unity rule
Do not create a new independent Unity networking, wallet, or token implementation. Extend `UnityGeniusSDK` and keep it aligned with the current `GeniusSDK` ABI.
### ABI warning
The Unity wrapper and the native SDK can evolve at different rates. Before changing P/Invoke signatures, compare them against the exact `GeniusSDK` commit being packaged. The native header is authoritative; stale sample signatures must not become a second API.
## 4.5 Space-Force-War: reference Unity game
`Space-Force-War` is a sample product, not a foundational SDK.
It demonstrates:
- importing the Unity SDK into a real Unity project;
- initializing GNUS services from a persistent game object;
- displaying a player's Minion/GNUS-derived balance;
- calculating token-denominated item prices;
- triggering in-game rewards after successful purchases;
- replacing or reducing advertising with GNUS compute participation and token utility.
Reusable Unity integration improvements belong in `UnityGeniusSDK`, not only in `Space-Force-War`.
Game-specific scenes, assets, progression, UI, and mechanics remain in `Space-Force-War`.
## 4.6 GeniusWallet: reference wallet and application
`GeniusWallet` is the cross-platform Flutter reference application. It shows how product code composes wallet, network, and GNUS capabilities.
It owns or demonstrates:
- Flutter application lifecycle and navigation;
- wallet creation, recovery, selection, and display;
- secure local storage and platform keychain integration;
- token lists, balances, transactions, and token detail screens;
- runtime/network configuration assets;
- GNUS processing-job submission UI;
- WalletConnect/Reown integration;
- fiat on-ramp and token-routing integrations;
- desktop and mobile packaging;
- application observability and UI state management.
### Wallet rule
Use `GeniusWallet` as the product-level reference for a Flutter or wallet application, but put reusable native runtime functionality in `GeniusSDK` or `SuperGenius`.
Do not copy a complete wallet implementation into every new application. Reuse its packages, patterns, or extracted shared components where appropriate.
## 4.7 TokenContracts: on-chain policy and settlement
`TokenContracts` owns the Ethereum/EVM smart contracts and their tests, deployment, upgrade, and verification workflows.
Its scope includes:
- GNUS token contracts;
- ERC-20 compatibility and proxy behavior;
- hierarchical and child-token behavior;
- ERC-1155 token functionality;
- mint, burn, escrow, payment split, and settlement rules;
- access control and ownership;
- upgradeable diamond facets and storage;
- bridge-facing contracts and events;
- on-chain proof verifiers;
- token lifecycle, transfer policy, and reserve-backed behavior when approved;
- deployment scripts, ABI generation, tests, and security analysis.
### Contract boundary rule
Business rules that must be trustless, globally consistent, or economically enforceable belong in `TokenContracts`.
UI behavior, local caching, node networking, AI inference, and game mechanics do not belong in Solidity merely because they use tokens.
### Source-of-truth rule
For deployed behavior, the deployed contract, verified source, ABI, storage layout, and deployment records outrank older prose summaries.
## 4.8 GeniusCognitiveSystem: cognitive operating architecture
`GeniusCognitiveSystem` defines the integrated distributed cognitive platform built on GNUS.ai infrastructure.
It separates cognitive functions into independently evolvable components, including:
- ingress, identity, session, policy, and privacy context;
- Executive Controller, Router, Planner, and execution graph compilation;
- Semantic Core and role/domain Expert Language Models;
- GAML governed long-term memory;
- Objective Memory and Verified Transition Graphs;
- grounding and retrieval;
- verification, arbitration, synthesis, and reputation-weighted consensus;
- Execution Integrity System attestations;
- secure Tool Intermediary and capability enforcement;
- local, private, swarm, verified-swarm, and agent execution modes;
- retraining/adaptation systems such as EGGROLL;
- OpenAI-compatible API routing into GNUS jobs;
- local Second Brain and enterprise/private deployment modes.
### GCS relationship to the native platform
GCS is not a replacement for `SuperGenius`, `GeniusSDK`, `TokenContracts`, or `thirdparty`.
It uses them:
- `SuperGenius` supplies distributed compute, networking, job execution, replicated state, and node identity.
- `GeniusSDK` supplies local application access to a GNUS node.
- `SGProcessingManager` supplies low-level processing job structures and runtime coordination.
- `thirdparty` supplies inference, networking, storage, cryptography, and platform libraries.
- `ProofSystem` and `zkLLVM` supply proof and execution-verification foundations.
- `TokenContracts` supplies economic settlement and on-chain policy where required.
### Specification warning
The GCS repository is an architecture and product/technical specification as well as an implementation inventory. Do not assume every documented component already exists as a production service. Before implementing a GCS item, search all Genius Ventures repositories for an existing module, prototype, schema, or service.
## 4.9 zkLLVM and ProofSystem
These layers are related but not interchangeable.
- `zkLLVM` is the general compiler/toolchain layer for translating supported computation into proof-oriented circuit representations and verifier artifacts.
- `SuperGenius/ProofSystem` owns GNUS-specific proof circuits and runtime proof workflows.
- `SuperGenius` integrates proof creation and validation into node and processing behavior.
- `TokenContracts` contains on-chain verifier integration when a proof must be checked by an EVM contract.
Do not create a separate proof compiler in `SuperGenius`, a separate GNUS proof workflow in an application, or duplicate verifier logic without first checking these layers.
## 4.10 thirdparty: shared dependency foundation
`thirdparty` centralizes native dependency versions and platform builds used by the runtime and SDK.
It includes or orchestrates libraries for:
- Boost and common C++ utilities;
- gRPC and Protocol Buffers;
- libp2p and asynchronous networking;
- IPFS and pub/sub;
- RocksDB, SQLite, and CRDT dependencies;
- OpenSSL, CryptoPP, secp256k1, Ed25519, and wallet-core;
- MNN and GPU/runtime dependencies;
- logging, formatting, JSON, YAML, testing, and build utilities;
- Android, iOS, macOS, Windows, and Linux targets.
### Dependency rule
If more than one native subsystem needs a library, add and pin it in `thirdparty`. Do not vendor separate copies into `SuperGenius`, `GeniusSDK`, `UnityGeniusSDK`, or an application unless platform isolation is explicitly required and documented.
## 4.11 TestVMs and release support
- `TestVMs` provides reproducible operating-system environments for integration testing.
- `GithubReleaseDownloader` supports consumption of prebuilt release artifacts.
- Root `util/` scripts support installation and environment setup.
These are support systems. Application business logic does not belong in them.
---
## 5. Canonical Application Architectures
## 5.1 Native C or C++ application
```text
Application UI and business logic
-> GeniusSDK public C ABI
-> SuperGenius runtime
-> P2P, ledger, processing, storage, proofs
-> TokenContracts through approved EVM/bridge paths
```
Recommended steps:
1. Clone `GeniusNetwork` recursively or use compatible release artifacts.
2. Build `thirdparty` for the target platform.
3. Build `SuperGenius` for the target platform and ABI.
4. Build and link `GeniusSDK`.
5. Initialize through the public SDK API.
6. Keep application state and UX in the application.
7. Add reusable runtime behavior to `SuperGenius`, not the application.
8. Add reusable app-facing behavior to `GeniusSDK`, not a private wrapper.
## 5.2 Unity game
```text
Unity game scripts and scenes
-> UnityGeniusSDK components and C# wrapper
-> packaged GeniusSDK native library
-> SuperGenius runtime
-> GNUS network and processing
-> token/settlement path
```
Use `Space-Force-War` to see a complete game integration.
A Unity game should generally contain only:
- game-specific configuration;
- player-facing UI;
- reward mapping;
- calls into `UnityGeniusSDK`;
- game-specific success/failure handling.
It should not contain its own GNUS node, P2P protocol, wallet cryptography, token ledger, price oracle framework, or duplicated native ABI.
## 5.3 Flutter or wallet-style application
```text
Flutter product UI
-> Dart packages / FFI / gRPC integration
-> GeniusSDK and SuperGenius
-> native secure storage, accounts, network, processing
-> EVM wallet and external service adapters
```
Use `GeniusWallet` as the reference for:
- platform packaging;
- secure storage;
- wallet and account UX;
- network configuration;
- token and transaction screens;
- processing-job submission;
- external wallet and on-ramp integrations.
Reusable native functionality still belongs below the Flutter layer.
## 5.4 Third-party application or service
A third-party integrator should choose the smallest supported boundary:
1. **Packaged application SDK** when embedding a local node is appropriate.
2. **gRPC node API** when integrating with a separately managed GNUS node.
3. **GCS/OpenAI-compatible API** when requesting cognitive work rather than low-level node operations.
4. **EVM ABI** when interacting only with deployed token contracts.
Do not require third parties to understand internal C++ classes or submodule layout.
## 5.5 GCS-powered application
```text
Client or application request
-> GCS ingress/API
-> identity, policy, privacy, and budgeting
-> Router / Planner / Executive Controller
-> GAML context and memory
-> Semantic Core and selected ELMs
-> optional tools through Tool Intermediary
-> optional distributed work through SuperGenius
-> verification / EIS / arbitration / consensus
-> response and memory-write evaluation
-> optional TokenContracts settlement
```
A GCS-powered app should not create its own parallel:
- model router if the request should use the GCS router;
- agent permission system if the capability system applies;
- long-term memory format if GAML applies;
- execution-attestation format if EIS applies;
- swarm scheduler if SuperGenius/GCS scheduling applies;
- token billing contract if `TokenContracts` already supports the economic model.
---
## 6. Runtime Data Flows
## 6.1 Node and account startup
```text
Application
-> GeniusSDKInit / key or mnemonic initialization
-> GeniusSDK creates or restores account context
-> SuperGenius initializes storage, processing, blockchain, transactions, and DHT
-> SDK reports initialization and node state
-> application enables GNUS features when ready
```
Private keys and mnemonic phrases must stay inside approved secure-storage and SDK/runtime boundaries. A sample application must not log or transmit them.
## 6.2 Token purchase or in-app utility
```text
User selects item or service
-> application calculates product requirement
-> SDK retrieves balance and relevant pricing
-> approved token transfer/payment call
-> runtime and/or EVM settlement path executes
-> application grants product only after confirmed success
```
The application owns the product entitlement. The SDK owns the integration call. The contract owns on-chain economic enforcement.
## 6.3 Distributed processing job
```text
Application or GCS
-> SDK, gRPC, or GCS ingress
-> SGProcessingManager job representation
-> SuperGenius processing engine
-> peer selection and distributed execution
-> proof/verification path when required
-> result delivery
-> accounting and settlement path
```
Do not create a second ad hoc job schema inside a game if the processing manager already defines the required job type.
## 6.4 GCS cognitive request
```text
Request
-> deterministic ingress and policy
-> smallest effective cognitive execution set
-> local or distributed expert execution
-> grounding, memory, tools, and verification as required
-> deterministic or reputation-weighted synthesis
-> response, attestations, and governed memory update
```
Model workers propose cognitive output. Deterministic services remain authoritative for authorization, privacy, schemas, cryptographic verification, side effects, attestations, retention, billing, and settlement.
---
## 7. Where New Code Belongs
| Change | Owning repository |
| --- | --- |
| New peer protocol or discovery behavior | `SuperGenius` or the appropriate nested networking repository |
| Node lifecycle, ledger, CRDT, storage, processing engine | `SuperGenius` |
| Processing job schema or generated processing interfaces | `SGProcessingManager` |
| Public node gRPC method or protobuf schema | `gRPCForSuperGenius` |
| Key derivation primitive | `GeniusKDF` |
| GNUS-specific proof circuit or runtime proof workflow | `ProofSystem` |
| General circuit compiler/toolchain feature | `zkLLVM` |
| New EVM relay behavior | `evmrelay` |
| Public native app API | `GeniusSDK` |
| Unity/C# wrapper, component, prefab, or package | `UnityGeniusSDK` |
| Flutter wallet UX or wallet product integration | `GeniusWallet` |
| Unity game-specific mechanic or sample scene | `Space-Force-War` |
| Smart-contract economics, token lifecycle, escrow, bridge event, upgrade | `TokenContracts` |
| Cognitive routing, memory, capability, verification, EIS, ELM, or agent architecture | `GeniusCognitiveSystem` plus the implementation repository identified during planning |
| Shared native library version or platform build | `thirdparty` |
| Platform composition and submodule pins | `GeniusNetwork` |
| Canonical platform documentation and docs.gnus.ai integration | `documentation` |
### 7.1 Decision tree
```text
Is the change product-specific UI or gameplay?
yes -> product/sample repository
no -> continue
Is it a Unity-specific binding or reusable Unity component?
yes -> UnityGeniusSDK
no -> continue
Is it an app-facing native capability?
yes -> GeniusSDK, backed by SuperGenius where needed
no -> continue
Is it node, P2P, ledger, storage, processing, or runtime behavior?
yes -> SuperGenius or its owning nested submodule
no -> continue
Is it trustless token or settlement behavior?
yes -> TokenContracts
no -> continue
Is it cognitive orchestration, memory, agents, verification, or model behavior?
yes -> consult GeniusCognitiveSystem inventory, then use the designated implementation repo
no -> continue
Is it a shared native dependency?
yes -> thirdparty
no -> document the missing ownership decision before creating a new repository
```
---
## 8. LLM and Coding-Agent Instructions
Every coding agent working in the GNUS.ai platform or a child repository must follow this sequence.
### 8.1 Required discovery sequence
1. Read this document.
2. Read `.gitmodules` at the target branch.
3. Read `.planning/codebase/ARCHITECTURE.md`, `STRUCTURE.md`, `INTEGRATIONS.md`, `CONVENTIONS.md`, `TESTING.md`, and `CONCERNS.md` where present.
4. Identify the repository that owns the requested behavior.
5. Search that repository and its nested submodules for existing APIs, schemas, classes, tests, examples, and unfinished work.
6. Check `GeniusWallet` or `Space-Force-War` for reference usage.
7. Check `GeniusCognitiveSystem` before inventing an AI, agent, memory, verification, routing, capability, or orchestration subsystem.
8. Check `TokenContracts` before inventing token, entitlement, settlement, escrow, bridge, or lifecycle logic.
9. Check `thirdparty` before adding a dependency directly.
10. State which existing component will be extended before proposing new architecture.
### 8.2 Prohibited shortcuts
An agent must not:
- create a new SDK because an existing binding is inconvenient;
- duplicate SuperGenius networking in an app;
- implement wallet cryptography in game scripts;
- copy smart-contract accounting into an off-chain database and call it authoritative;
- copy sample code into a second reusable library without updating the owner SDK;
- add a native dependency independently when `thirdparty` already owns it;
- treat all GCS specification components as already deployed;
- assume a repository's default branch matches the submodule commit;
- update submodule pointers to unreviewed commits;
- change public ABI signatures in one binding without checking all consumers;
- invent a new token type or lifecycle without checking the hierarchical token contracts;
- invent a new agent memory or capability format without checking GAML and the GCS capability architecture.
### 8.3 Required proposal format
Before a cross-repository implementation, document:
```text
requested capability
existing owner repository
existing implementation or nearest reusable component
public interface affected
nested submodules affected
application/sample consumers affected
contract or token implications
GCS implications
thirdparty dependency implications
migration and compatibility requirements
tests required in each repository
submodule pointer update order
```
---
## 9. Versioning and Submodule Workflow
### 9.1 Correct update order
For a change originating in a nested component:
```text
nested repository change
-> tests and merge in nested repository
-> parent repository submodule pointer update
-> parent integration tests
-> GeniusNetwork pointer update
-> platform integration tests
```
Example:
```text
gRPCForSuperGenius
-> SuperGenius
-> GeniusSDK
-> UnityGeniusSDK and/or GeniusWallet
-> GeniusNetwork
```
Not every change touches every level, but pointer updates must follow dependency direction.
### 9.2 Branch authority
- Use the branch named by the task or the active integration branch.
- Read the pinned submodule commit from that branch.
- Do not substitute `main`, `develop`, or the newest tag without checking compatibility.
- Protect long-lived integration branches.
- Open reviewable PRs for platform composition changes.
### 9.3 Public API compatibility
Changes to the `GeniusSDK` C ABI, gRPC schemas, processing schemas, contract ABIs, or persisted data require explicit compatibility review.
Consumers may include:
- Unity C# P/Invoke;
- Flutter/Dart FFI;
- native applications;
- released binary artifacts;
- gRPC clients;
- wallet packages;
- GCS services;
- external third-party integrations.
---
## 10. Source-of-Truth Hierarchy
When documentation conflicts, use this order:
1. Deployed contract bytecode, verified source, storage layout, and deployment records for on-chain behavior.
2. Pinned source commit and tests for runtime behavior.
3. Public headers, protobuf schemas, ABI files, and generated interfaces.
4. Current repository-specific architecture and implementation plans.
5. This platform architecture document.
6. Sample applications and example code.
7. Historical README text, presentations, and product summaries.
A sample that calls an obsolete function is evidence that the sample needs updating, not evidence that the obsolete function is still canonical.
---
## 11. Known Boundaries and Documentation Caveats
1. `GeniusNetwork/develop` and `main` may pin different subsystem commits. This document is authored from the `develop` integration line.
2. `UnityGeniusSDK`, `Space-Force-War`, and `GeniusCognitiveSystem` are architecturally connected but are not direct submodules in the current `develop` root `.gitmodules` file.
3. The Unity wrapper must be checked against the current native SDK header before release; examples may lag ABI evolution.
4. GCS documents describe both implemented foundations and planned modules. Implementation status must be confirmed per component.
5. Token economics and contract architecture have evolved. Use current contract code, tests, deployment records, and approved phase plans rather than relying solely on early README descriptions.
6. Third-party versions must be taken from pinned submodules and build definitions, not approximate versions in narrative documents.
7. Security-sensitive operations must remain inside their defined trust boundary even when moving them into an application would appear simpler.
---
## 12. Canonical References
### Documentation
- `MASTER_ARCHITECTURE.md` — this canonical platform ownership and integration map
- `gendoc.yml` — docs.gnus.ai source, navigation, deployment, and LLM configuration
- `llms-meta.json` — document catalog metadata used by LLM and retrieval pipelines
### GeniusNetwork
- `.gitmodules` — direct composition
- `.planning/codebase/ARCHITECTURE.md` — generated codebase architecture analysis
- `.planning/codebase/STRUCTURE.md` — detailed directory map
- `.planning/codebase/INTEGRATIONS.md` — external service and infrastructure map
- `.planning/codebase/CONVENTIONS.md` — coding and repository conventions
- `.planning/codebase/TESTING.md` — test infrastructure
- `.planning/codebase/CONCERNS.md` — technical risks and known concerns
- `INSTALL.md` — installation and dependency setup
- `ThirdParty_Libraries_Integration.md` — dependency catalog
### Runtime and SDK
- `SuperGenius/Readme.md`
- `SuperGenius/src/`
- `SuperGenius/.gitmodules`
- `GeniusSDK/Readme.md`
- `GeniusSDK/src/GeniusSDK.h`
### Applications and samples
- `GeniusWallet/README.md`
- `GeniusVentures/UnityGeniusSDK`
- `GeniusVentures/Space-Force-War`
### Cognitive system
- `GeniusVentures/GeniusCognitiveSystem/docs/architecture/README.md`
- `GeniusVentures/GeniusCognitiveSystem/docs/architecture/agent-module-development-inventory.md`
### Contracts, proofs, and dependencies
- `TokenContracts/README.md`
- current `TokenContracts` planning and contract documentation
- `zkLLVM/README.md`
- `SuperGenius/ProofSystem/`
- `thirdparty/README.md`
- `ThirdParty_Libraries_Integration.md`
---
## 13. Architecture Review Checklist
Before approving a new application or subsystem, verify:
- [ ] The owner repository is identified.
- [ ] Existing code and unfinished plans were searched.
- [ ] The public SDK or protocol boundary is reused.
- [ ] Sample code is not being mistaken for the canonical implementation.
- [ ] Native dependencies are routed through `thirdparty` where appropriate.
- [ ] Wallet and key operations stay inside approved security boundaries.
- [ ] Token and settlement rules use `TokenContracts` where trustless enforcement is required.
- [ ] GCS features align with the GCS component inventory.
- [ ] Unity work extends `UnityGeniusSDK` rather than creating a parallel wrapper.
- [ ] Cross-repository ABI and schema consumers are identified.
- [ ] Tests are planned at the owning layer and integration layer.
- [ ] Submodule pointer updates follow dependency order.
- [ ] Documentation clearly labels implemented, reference, experimental, and planned behavior.
---
## 14. Final Rule
**Do not solve a platform problem inside the nearest application merely because that application exposed the problem first.**
Find the owning layer, extend the existing implementation, update its public boundary, update the reference consumers, and then pin the tested composition in `GeniusNetwork`.
---
source: /technical-information/app-howto/
title: How to Build an App on the GeniusNetwork
---
# How to Build a Native App on the GNUS / SuperGenius Platform
This is the recipe for creating a new application (like Genius Tube, Genius AI Boss,
or GeniusWallet) that runs as a native peer on the GNUS and SuperGenius networks.
It is written for both humans and LLM agents: follow it top to bottom and you get a
buildable, correctly-integrated app.
## 1. What an app is
An app is a **native C++17 core plus an optional Flutter presentation layer**.
The C++ core owns networking, identity, cryptography, distributed state, payments,
and protocol validation by linking the platform libraries. Flutter (if present)
renders screens and forwards user intent across an FFI boundary.
The app talks to the world through SuperGenius (peer network, GlobalDB/CRDT,
transactions) and GeniusSDK (the C ABI apps consume), and reads
entitlement/ownership truth from the TokenContracts on EVM.
**Golden rule (from MASTER_ARCHITECTURE.md):** when a capability already exists in
SuperGenius, GeniusSDK, GeniusWallet, or thirdparty, link it. Apps own their
domain logic and build everything else from the platform.
## 2. Workspace layout
Apps live in a shared workspace next to the platform repos:
```
GeniusNetwork/ <- workspace root ("super root")
SuperGenius/ <- peer network, GlobalDB, accounts, processing
GeniusSDK/ <- C ABI + cmake umbrella for platform deps
GeniusWallet/ <- Flutter wallet, reusable packages, ffigen configs
TokenContracts/ <- EVM contracts (entitlement truth)
thirdparty/ <- ALL dependencies, pinned commits, built from source
documentation/ <- platform docs (you are here)
apps/
your-app/ <- the new app
genius-ai-boss/ <- reference app (plugin framework, codegen patterns)
```
Every dependency comes from `thirdparty/` at a pinned commit and is built by CMake,
which makes builds auditable and identical across macOS, Linux, Windows, Android,
and iOS.
## 3. The universal build pattern
Every repo in the workspace — libraries and apps alike — builds the same way:
```bash
cd build/ # OSX | Linux | Windows | iOS | Android
mkdir Debug && cd Debug # or Release, RelWithDebInfo
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Debug
ninja
ninja install
```
`build/` is the **cmaketemplate** submodule shared by all repos. Its
`build//CMakeLists.txt` is the configure entry point; it sets the
toolchain, platform variables, and `PROJECT_ROOT`, then includes
`cmake/CommonBuildParameters.cmake` from the repo, which descends into `src/`.
Build order for a fresh machine: `thirdparty` -> `SuperGenius` -> `GeniusSDK`
-> your app.
## 4. App repository skeleton
```
your-app/
build/ <- cmaketemplate submodule
cmake/
CommonBuildParameters.cmake <- project settings; included by build/
GeniusDependencies.cmake <- locates workspace (GeniusSDK/SuperGenius/thirdparty)
include/your_app/ <- public headers, snake_case dir
src/
CMakeLists.txt
platform//platform/Platform.hpp <- one dir per OS, names match build/
generated/CMakeLists.txt <- codegen targets; output regenerates at build time
ffi/ <- C ABI facade (.h + .cpp)
tools/ffigen/ <- ffigen yaml configs
tests/
```
Key conventions:
* **Naming**: targets `your_app_*`, include root `include/your_app/`.
* **C++17** — set in the root cmake for every target.
* **Platform abstraction**: source does `#include "platform/Platform.hpp"`. The
`build//` entry point adds exactly one `src/platform//` include
dir, so platform knowledge lives in one directory per OS.
* **Generated code** regenerates under `src/generated/` via CMake stamp-file
targets on every build that needs it; the tree stays out of git.
## 5. Consuming the platform
Your `cmake/CommonBuildParameters.cmake` locates the workspace (walk up from the
checkout until a dir containing GeniusSDK, SuperGenius, and thirdparty is found),
prepends each platform repo's installed build tree
(`/build///`) to `CMAKE_PREFIX_PATH`, and then
`find_package(... CONFIG REQUIRED)`s the platform packages
(`GeniusSDK`, `SuperGenius`, ...). Your targets link the imported targets
(e.g. `sgns::GeniusSDK`). GeniusWallet's `cmake/CommonBuildParameters.cmake`
is the reference consumer.
Platform code is consumed **only** as installed CMake packages. Every repo
builds and installs itself with the universal pattern, and consumers use
`find_package` against that installed tree. Do not `add_subdirectory()` or
`include()` another repository's source-level CMake — that builds a second,
divergent copy of the platform inside your app and breaks the moment the two
repos drift.
Rules of engagement:
* **Wire messages and signing authority come from the platform.** Chain signed
transactions are the signature of record. App-persisted values are plain C++
structs; use nlohmann/json (from thirdparty) where serialization is needed.
* **Errors**: follow SuperGenius's `outcome::result` + per-service error enums.
Retryability is a fixed property of each error code, declared with the enum.
* **Logging**: spdlog for all diagnostic output.
* **Extensibility**: register capabilities as plugins keyed by the FNV-1a hash of
a versioned string (e.g. `hpke/x25519/aes256gcm/v1`), looked up through a typed
service locator — see `apps/genius-ai-boss/backend/scaffold/src/singleton/`
for the pattern.
## 6. Flutter (optional)
Add Flutter when the app has a UI.
* Flutter owns screens, navigation, and rendering.
* The C++ core exposes a **C ABI** (`extern "C"` facade header under
`include/your_app/ffi/`). All exceptions are caught at the boundary and returned
as error structs.
* Dart bindings are generated by **ffigen** from that C header. Copy the config
pattern from `GeniusWallet/packages/genius_api/gen_sgns_ffi.yaml`; drive it from
a `src/generated/` CMake target. Error codes and strings are exposed as FFI
functions so Dart reads the taxonomy straight from the core.
* For wallet flows, the reusable **GeniusWallet packages** cover first-party
identity; **reown_appkit** (the maintained WalletConnect successor) covers
external EVM wallets.
## 7. Testing and quality gates
* Google Test (from thirdparty), >= 80% coverage target.
* Use the project wait-condition templates (condition_variable/polling) for
asynchronous test synchronization.
* Crypto test vectors are deterministic and run in both the C++ and Dart harnesses
from shared versioned fixtures.
* FFI boundary tests run under ASan/UBSan; LeakSanitizer watches key buffers.
Fuzz the parsers and validators your app owns.
* clang-format / clang-tidy before commit (Allman braces, workspace naming).
All code follows the workspace coding standards in
[`software-engineering-handbook/`](software-engineering-handbook/):
[C++ Coding Standards](software-engineering-handbook/c++-coding-standards.md)
for the native core and
[Dart Coding Standards](software-engineering-handbook/dart-coding-standards.md)
for the Flutter layer. The Dart standard is a small delta on the C++ one —
read the C++ standard first, then the delta.
## 8. Checklist for a new app
1. Create `apps/your-app/` with the skeleton above; add the cmaketemplate
submodule at `build/`.
2. Set C++17, target naming, and the platform-include selection in
`cmake/CommonBuildParameters.cmake`.
3. Add `src/platform//platform/Platform.hpp` for each target OS.
4. Verify: `cd build/OSX && mkdir Debug && cd Debug && cmake .. -G Ninja
-DCMAKE_BUILD_TYPE=Debug && ninja && ninja install` on a clean checkout.
5. Add the C ABI facade + ffigen config (if Flutter), regenerate bindings.
6. Register your app's plugins/services through the locator; write the smoke
test that assembles your versioned capability strings.
7. Then start domain phases (data model, services, UI).
## Where to read more
* `documentation/MASTER_ARCHITECTURE.md` — repo ownership, trust boundaries,
how the platform fits together.
* `documentation/docs/technical-information/super-genius-blockchain-technical-details/`
— GlobalDB key grammar, account/address derivation, ElGamal keys.
* `apps/genius-ai-boss/` — plugin/singleton framework and Jinja2 codegen patterns.
* `GeniusWallet/packages/genius_api/` — ffigen + Flutter FFI consumption pattern.
* `apps/genius-tube/.planning/phases/00-architecture-schema-freeze/00-CONTEXT.md`
— a worked example of freezing these decisions for a real app.
---
source: /technical-information/software-engineering-handbook/
title: Software Engineering Handbook
---
# Software Engineering Handbook
This handbook outlines core software engineering principles, coding standards, and best practices for the GNUS.AI team. It is designed to be language-agnostic, applicable to technologies like TypeScript, Java, C++, Solidity, React, and others used in our blockchain and cryptography projects. These guidelines emphasize maintainable, readable code, adherence to SOLID principles, data-driven design, thorough unit testing, and responsible use of AI and code generation tools with human oversight. They align with expectations from engineer job descriptions (e.g., Senior Engineers mentoring on architecture, Junior Engineers building foundational habits) and project prompts emphasizing clear requirements, modularity, and iterative development.
### Preferred contributor guidelines
* Use the develop branch unless you are working on a major change that you think will be hard to fix breaking the develop branch, or is a major feature then use a feature branch and do a pull request to the develop branch.
* Use git rebase instead of merge [Here's Why](https://spin.atomicobject.com/2017/04/23/maintain-clean-git-history/)
* Pulls to master will be done on as-needed, since we operate on develop branches, this won't be very often.
### Git Rebase Workflows
Please read this blog about the appropriate way to use git rebase workflows.
[Git Rebase Workflow](https://nvie.com/posts/a-successful-git-branching-model/)
### Coding Standards
Follow these standards to ensure consistency, readability, and maintainability across all languages:
* **Naming Conventions**: Use descriptive, meaningful names. Prefer camelCase for variables/functions in TypeScript/Java; snake\_case for C++ where idiomatic. Constants should be UPPERCASE\_WITH\_UNDERSCORES.
* **Indentation and Formatting**: Use 4-space indentation (no tabs). Limit lines to 80-100 characters. Use tools like Prettier (TypeScript/JavaScript), clang-format (C++), or equivalent.
* **Comments and Documentation**: Write comments explaining "why," not "what." Use JSDoc (TypeScript), Javadoc (Java), or Doxygen (C++) for public APIs. Document Solidity contracts clearly.
* **Error Handling**: Handle errors explicitly with try-catch or equivalent. Avoid silent failures. In Solidity, use require/revert for preconditions.
* **Modularity**: Write small, reusable functions/modules (aim for <20-30 lines per function).
* **Performance**: Optimize only when profiling indicates need, especially in performance-critical C++ (e.g., cryptography). Prioritize security in blockchain code.
* **Version Control**: Commit frequently with descriptive messages. Use feature/bug branches, following Git Flow or similar.
These apply similarly to TypeScript, Java, C++, and other structured languages, adjusted for language idioms.
### SOLID Principles
Adhere to SOLID principles for flexible, maintainable object-oriented design:
* **Single Responsibility Principle (SRP)**: A class should have one reason to change. E.g., separate data access, business logic, and UI in React or Solidity contracts.
* **Open-Closed Principle (OCP)**: Classes should be open for extension, closed for modification. Use interfaces/abstract classes in Java/C++ or TypeScript types.
* **Liskov Substitution Principle (LSP)**: Subtypes must be substitutable for base types without breaking correctness. Ensure derived classes honor contracts.
* **Interface Segregation Principle (ISP)**: Prefer small, specific interfaces over large ones. In Solidity, design focused contract interfaces.
* **Dependency Inversion Principle (DIP)**: Depend on abstractions, not concretions. Program to interfaces, using design patterns or data-driven approaches (see below) to decouple dependencies.
Senior Engineers should mentor on SOLID in architectural decisions; Junior Engineers apply them daily.
### Data-Driven Design Principle
Prefer **data-driven design** over code-driven approaches to enhance flexibility and maintainability:
* **Programming to Interfaces**: Always code to interfaces or abstract types (e.g., `interface` in TypeScript/Java, pure virtual classes in C++). This supports loose coupling and aligns with DIP.
* **Loosely Coupled, Self-Contained Classes**: Design classes to minimize dependencies. Each class should manage its own data and behavior, interacting via well-defined interfaces.
* **Hierarchical Object Creation via Serialization**: Use data formats like XML or JSON to instantiate objects by ID or type, avoiding hardcoded type information. Classes should serialize/deserialize their own data, enabling child classes to do the same hierarchically.
* **Example**: A C++ cryptography module could load a JSON config specifying an algorithm ID (e.g., AES), instantiate the corresponding class, and let it handle its own data serialization. In TypeScript/React, a component might load its state from JSON.
* **Benefits**: Reduces tight coupling, supports dynamic object creation, and simplifies cross-language integration in blockchain systems.
* **Application**: Use this approach where possible, especially for systems requiring flexibility (e.g., plugin architectures, API-driven components).
### Design Pattern Standards
Design patterns from the Gang of Four (GoF) book complement SOLID principles, providing reusable solutions that promote loosely coupled, maintainable code. Use patterns judiciously to support project needs and SOLID goals:
* **Factory Method/Abstract Factory**: Supports OCP by enabling object creation without specifying concrete classes. Useful for creating families of related objects (e.g., cryptographic algorithms in C++).
* **Strategy**: Aligns with SRP and DIP by encapsulating interchangeable algorithms. E.g., switch between encryption strategies via an interface.
* **Observer**: Facilitates loose coupling for event-driven systems (e.g., React state updates, Solidity event listeners).
* **Adapter**: Bridges incompatible interfaces, supporting ISP and DIP (e.g., adapting legacy C++ code to a new TypeScript API).
* **Data-Driven Patterns**: Combine patterns like Factory with data-driven design. For example, use a Factory to instantiate objects from XML/JSON configs, ensuring classes are self-contained and serialize/deserialize their data.
Apply patterns that naturally fit the problem domain, prioritizing interface-driven, loosely coupled designs over rigid implementations.
### Code Generation Principle
Use **code generation tools** to accelerate development and ensure consistency across languages:
* **OpenAPI Specifications**: Define API schemas using OpenAPI (or similar) to generate client/server code for TypeScript, Java, C++, Solidity, etc. This ensures consistent interfaces and reduces manual coding errors.
* **Example**: Generate TypeScript client code for a REST API or Solidity contract bindings from an OpenAPI spec, speeding up development significantly (up to 10x for cross-language projects).
* **Benefits**: Promotes standardization, reduces boilerplate, and supports rapid iteration in multi-language environments like blockchain systems.
* **Best Practices**: Write clear, comprehensive schemas. Validate generated code and customize as needed. Integrate with CI/CD for automation.
### Unit Testing
Unit tests ensure code reliability and prevent regressions:
* **Coverage**: Target 80%+ coverage for critical paths, including edge cases, happy paths, and failures.
* **Frameworks**: Use Jest (TypeScript/React), JUnit (Java), Google Test (C++), Hardhat/Truffle (Solidity).
* **Best Practices**: Prefer Test-Driven Development (TDD) where feasible. Keep tests isolated, fast, deterministic. Mock dependencies.
* **AI Tools**: Use Grok, Claude.ai, or ChatGPT to generate test skeletons or ideas, but always review manually—AI can miss edge cases or context. Human intervention is critical.
* **Integration**: Run tests in CI/CD pipelines. Fail builds on test failures.
### Leveraging AI Tools
AI accelerates development but requires responsibility:
* **Usage**: Use AI for code generation, debugging suggestions, or crafting project prompts. Follow our prompt engineering guidelines: specify requirements, constraints, and expected outputs clearly.
* **Human Oversight**: Always verify AI outputs, especially for unit tests, cryptography, or complex logic, as AI may produce errors or hallucinations.
* **Prompt Engineering**: Write detailed prompts (as per past project examples) to ensure accurate outputs.
### General Software Development Principles
From engineer job descriptions and project expectations:
* **Proactive Problem-Solving**: Anticipate issues and propose solutions independently.
* **Collaboration**: Engage in code reviews, providing constructive feedback.
* **Continuous Learning**: Stay current with technologies (React, Solidity, C++ cryptography).
* **Maintainability**: Prioritize clean, modular code over quick fixes.
### Language-Specific Standards
#### C++ Coding Standards
{% content-ref url="c++-coding-standards.md" %}
[c++-coding-standards.md](c++-coding-standards.md)
{% endcontent-ref %}
### Python Coding Standards
{% content-ref url="python-coding-standards.md" %}
[python-coding-standards.md](python-coding-standards.md)
{% endcontent-ref %}
### Typescript Coding Standards
{% content-ref url="typescript-coding-standards.md" %}
[typescript-coding-standards.md](typescript-coding-standards.md)
{% endcontent-ref %}
#### Dart Coding Standards
{% content-ref url="dart-coding-standards.md" %}
[dart-coding-standards.md](dart-coding-standards.md)
{% endcontent-ref %}
#### Smart Contract Projects
{% content-ref url="smart-contract-projects.md" %}
[smart-contract-projects.md](smart-contract-projects.md)
{% endcontent-ref %}
---
source: /technical-information/software-engineering-handbook/c++-coding-standards/
title: C++ Coding Standards
---
# SuperGenius C++ Coding Standards
Revision 2.0 — June 2026
Adapted from the Corelinux Consortium C++ Coding Standards (2000), modernized for C++17.
---
## 1. Scope
This document defines the coding standards for the SuperGenius C++ codebase. Rules are classified as:
| Classification | Meaning | Enforcement |
|---|---|---|
| **Required** | Mandatory. Deviations must be approved by the team lead. | clang-tidy check (should pass clean) |
| **Recommended** | Should be followed unless there is a compelling reason to deviate. | clang-tidy check (warnings may exist) |
The automated enforcement configuration lives in `.clang-tidy` and `.clang-format` at the repository root. See [§12 Tooling](#12-tooling) for usage.
### 1.1 General Principles
The primary goal is **maintainability**. Other considerations in priority order: correctness, readability, consistency, clarity, portability, simplicity, and finally efficiency. When in doubt, strive for clarity first, then efficiency.
Think of the reader. Keep it simple. Break down complexity. Be explicit — avoid implicit or obscure language features. Be consistent. Minimize scope, both logical and visual.
---
## 2. Comments
### 2.1 File Headers
**Required:** Every source and header file shall have a top-of-file comment. Use Doxygen-compatible format.
```cpp
/**
* @file MyClass.hpp
* @brief Brief description of the file's purpose.
* @author Jane Smith
*/
```
### 2.2 Function and Interface Comments
**Required:** All public functions and interfaces shall have header comments in the `.hpp` file. The comment size should match the function's size and complexity.
```cpp
/**
* @brief Attaches a rendering window to the context.
* @param rendWin The window to attach.
* @return false on failure.
*/
virtual bool AttachRenderWindow(IRenderWindow *rendWin) = 0;
```
### 2.3 Inline Comments
**Required:** Use C++ single-line comments (`//`) for inline comments.
**Recommended:** Prefer block comments (on their own line) over trailing comments. Use trailing comments only for special annotations.
**Required:** Trailing comments at a closing brace are indented one level from the brace.
**Required:** Block comments are at the same indentation level as the code they describe.
---
## 3. Code Layout
### 3.1 Braces
**Required:** Use Allman / Ullman brace style. Braces are always on their own line, at the same indentation level as the statement that precedes them. The code within braces is indented one level.
```cpp
void DoSomething()
{
if ( x != y )
{
y = x;
}
else
{
// ...
}
}
```
> **Enforced by:** `clang-format` (`BreakBeforeBraces: Allman`)
**Required:** Always use braces on `if`, `for`, `while`, and `do`/`while` statements, even when the body is a single statement.
```cpp
// Correct
if ( condition )
{
DoWork();
}
// Incorrect
if ( condition )
DoWork();
```
> **Enforced by:** `clang-tidy` (`readability-braces-around-statements`) [Required]
**Required:** Put the `while` in a `do`/`while` statement on the same line as the closing brace.
```cpp
do
{
++x;
} while ( x < y );
```
### 3.2 Indentation and Spacing
**Required:** Indentation is 4 spaces. Do not use tabs.
> **Enforced by:** `clang-format` (`IndentWidth: 4`, `UseTab: Never`)
**Required:** Balance spacing inside parentheses — space after `(` and before `)` when arguments are present. No spaces in empty argument lists.
```cpp
void DoFunction(); // no args — no spaces
void DoFunction( ObjectRef aRef ); // args — spaces inside parens
```
**Required:** Do not space between a function name and the opening parenthesis.
```cpp
DoFunction( arg ); // correct
DoFunction ( arg ); // incorrect
```
> **Enforced by:** `clang-format` (`SpacesInParentheses: true`, `SpaceBeforeParens: ControlStatements`)
**Required:** Do not use spaces between a dereference operator and its operand.
```cpp
val = *pFoo; // correct
val = * pFoo; // incorrect
```
> **Enforced by:** `clang-format` (`PointerAlignment: Left`)
**Required:** Balance spacing on either side of binary operators.
**Required:** Do not space before separators (semicolon, comma) but do space after them.
### 3.3 Column Limit
**Recommended:** Lines should not exceed 120 columns.
> **Enforced by:** `clang-format` (`ColumnLimit: 120`)
>
> *Historical note: The original 2000 standard specified 78 columns. This was revised to 120 for modern displays and C++17 code density.*
### 3.4 Line Wrapping
**Required:** When wrapping a line, indent the continuation past the current indent column.
**Required:** Wrap conditional expressions after the logical operators.
```cpp
if ( theNameOfTheGame == aGameName &&
theTimeBeingPlayed > aLimit )
{
// ...
}
```
> **Enforced by:** `clang-format` (`BreakBeforeBinaryOperators: None`)
**Required:** Wrap long function signatures after a parameter comma, with indentation.
```cpp
void ClassMethod::SetValues( ObjectCref a1, ObjectCref a2, StringCref aName,
IntCref aValue )
{
// ...
}
```
> **Enforced by:** `clang-format` (`BinPackParameters: false`)
### 3.5 Declarations
**Required:** Start each declaration on a new line.
**Required:** Put one statement per line (except for trivial in-line accessors in headers).
### 3.6 Switch Statements
**Required:** All `switch` statements shall have a `default` case.
**Required:** Indent `case` labels one level from the `switch`. Indent the case body one level from the `case`. The `break` is at the same indentation as the body.
```cpp
switch ( variable )
{
case 1:
DoSomething();
break;
case 2:
DoOther();
break;
default:
break;
}
```
> **Enforced by:** `clang-format` (`IndentCaseLabels: true`)
### 3.7 Access Modifiers
**Required:** `public`, `protected`, and `private` appear flush with the `class` keyword (no additional indentation).
> **Enforced by:** `clang-format` (`AccessModifierOffset: 0`)
**Required:** Access controls appear in this order: `public`, `protected`, `private` (methods), then `protected`, `private` (data members). Empty access-control sections may be omitted.
### 3.8 Namespaces
**Required:** Namespace bodies are indented one level. Use nested namespace syntax (C++17).
```cpp
namespace sgns::storage
{
// indented one level
}
```
> **Enforced by:** `clang-format` (`NamespaceIndentation: All`, `CompactNamespaces: false`)
### 3.9 Blank Lines
**Recommended:** Use blank lines before and after block comments to visually separate code chunks.
> **Enforced by:** `clang-format` (`MaxEmptyLinesToKeep: 1`)
---
## 4. Naming Conventions
### 4.1 Summary Table
| Entity | Case | Prefix | Example | Enforced |
|---|---|---|---|---|
| Classes | PascalCase | — | `ProcessingNode` | Required |
| Structs | PascalCase | — | `CrdtOptions` | Required |
| Enums | PascalCase | — | `DatabaseError` | Required |
| Enum constants | `UPPER_CASE` | — | `NOT_FOUND` | Recommended |
| Functions (free) | PascalCase | — | `CreateLogger` | Recommended |
| Methods (member) | PascalCase | — | `GetValue()` | Recommended |
| Variables (local) | camelCase | — | `localVar` | Recommended |
| Parameters | camelCase | — | `nodeId` | Recommended |
| Member variables | camelCase | `m_` | `m_nodeId` | Recommended |
| Compile-time constants | PascalCase | `k` | `kMaxRetryCount` | Recommended |
| Global constants | PascalCase | `k` | `kDefaultPort` | Recommended |
> **Enforced by:** `clang-tidy` (`readability-identifier-naming`) [Recommended]
>
> *Note: Naming is classified as Recommended because the codebase is transitioning. Some files still use trailing-underscore members (`node_id_`) or camelCase free functions (`createLogger`). New code shall follow this table.*
### 4.2 Type Names
**Required:** Types start with an uppercase letter and use PascalCase (also known as UpperCamelCase).
```cpp
class TokenAmount { };
struct CrdtOptions { };
enum class DatabaseError : uint8_t { };
```
### 4.3 Variables and Parameters
**Recommended:** Local variables and parameters use camelCase (lowerCamelCase) — first word lowercase, subsequent words capitalized.
```cpp
int itemCount = 0;
void Process( const std::string &nodeId );
```
**Recommended:** Do not use Hungarian notation or type prefixes (`a`, `p`, `l`, etc.).
### 4.4 Member Variables
**Recommended:** Non-public member variables use `m_` prefix followed by camelCase.
```cpp
class ProcessingNode
{
private:
std::string m_nodeId;
std::chrono::seconds m_ttl;
};
```
**Recommended:** Do not use `m_` prefix for public members of simple structs used as data carriers.
```cpp
struct Point
{
double x;
double y;
};
```
### 4.5 Compile-Time Constants
**Recommended:** Compile-time constants use `k` prefix followed by PascalCase.
```cpp
constexpr int kMaxRetryCount = 3;
inline constexpr size_t kPublicKeySize = 32;
static constexpr uint64_t kDefaultPort = 3000;
```
Do not use `#define` for value constants. Do not use `UPPER_CASE` for constants.
> **Enforced by:** `clang-tidy` (`cppcoreguidelines-avoid-magic-numbers`) [Required], with `0`, `1`, `-1`, and `2` allowed in trivial contexts.
### 4.6 Functions and Methods
**Recommended:** Functions and methods use PascalCase with a verb-noun pattern.
```cpp
void SetName( const std::string &name );
bool IsEmpty() const;
int GetCount() const;
std::shared_ptr CreateThread();
void DestroyThread( std::shared_ptr t );
```
**Required:** Accessor methods (returning a value) start with `Get` and should be `const`.
**Recommended:** Boolean accessor methods start with `Is` or `Has` and return `bool`.
**Required:** Mutator methods (setting a value) start with `Set` and do not return values.
**Required:** Factory creation functions start with `Create`. Factory destruction functions start with `Destroy`.
### 4.7 Spelling and Clarity
**Required:** Use correct English spelling. Avoid abbreviations except for well-known domain terms.
**Recommended:** Make names clearly unique within their scope. Avoid similar-sounding names.
**Required:** Make all identifiers unique within a function.
---
## 5. Language Usage
### 5.1 C++ Standard
**Required:** Code targets C++17. Do not use C++20 (or later) features.
### 5.2 Initialization
**Required:** All variables must be initialized at the point of declaration. If the value is not yet known, initialize pointers to `nullptr` and arithmetic types to `0`.
```cpp
int count = 0;
std::string name;
Logger logger = nullptr;
```
> **Enforced by:** `clang-tidy` (`cppcoreguidelines-init-variables`) [Required]
**Recommended:** Prefer member initializer lists over assignment in the constructor body.
```cpp
// Preferred
MyClass::MyClass( int value, const std::string &name )
: m_value( value )
, m_name( name )
{ }
// Acceptable but not preferred
MyClass::MyClass( int value, const std::string &name )
{
m_value = value;
m_name = name;
}
```
> **Enforced by:** `clang-tidy` (`cppcoreguidelines-prefer-member-initializer`) [Recommended]
**Required:** List members in a constructor initialization list in the order they are declared in the class header.
> **Enforced by:** `clang-format` (`BreakConstructorInitializers: BeforeComma`, `ConstructorInitializerIndentWidth: 4`)
### 5.3 Pointers and Null
**Required:** Use `nullptr`, never `NULL`, `0`, or `NULLPTR` for null pointers.
> **Enforced by:** `clang-tidy` (`modernize-use-nullptr`) [Required]
### 5.4 Casts
**Required:** Use explicit C++-style casts. Never rely on implicit compiler conversions for pointer or arithmetic narrowing.
```cpp
auto value = static_cast( rawValue );
auto ptr = dynamic_cast( basePtr );
```
> **Enforced by:** `clang-tidy` (`google-readability-casting`) [Required]
### 5.5 `const` Correctness
**Required:** Use `const` on every function, parameter, return value, and variable that will not be modified.
**Recommended:** All accessor (getter) member functions should be `const`.
> **Enforced by:** `clang-tidy` (`readability-make-member-function-const`) [Recommended]
**Required:** Pass non-modifiable objects by `const` reference, not by value.
```cpp
void Process( const Transaction &txn );
```
**Required:** Never return handles (references, pointers, iterators) to private object internals from `const` member functions. If a handle must be returned, make it `const`.
### 5.6 `noexcept`
**Recommended:** Declare functions `noexcept` if they are guaranteed not to throw. This is especially important for move constructors, move assignment, destructors, and simple accessors.
```cpp
uint64_t Value() const noexcept;
~MyClass() = default; // destructors are implicitly noexcept
```
> **Enforced by:** `clang-tidy` (`modernize-use-noexcept`) [Recommended]
>
> *Note: The project uses `outcome::result` for error propagation rather than exceptions in hot paths. Functions using `outcome::result` should still be declared `noexcept` when they don't throw.*
### 5.7 `auto`
**Recommended:** Prefer `auto` for variable declarations where the type is obvious from the initializer. Avoid `auto` where the type is not immediately clear to the reader.
```cpp
auto logger = base::createLogger( "Tag" ); // clear
auto it = map.find( key ); // clear
uint64_t count = GetCount(); // better than auto when type matters
```
### 5.8 Range-Based `for` and Algorithms
**Recommended:** Prefer range-based `for` loops over iterator-based loops where possible.
**Recommended:** Prefer standard algorithms over hand-written loops.
### 5.9 Enums
**Required:** Prefer `enum class` (scoped enumerations) over unscoped `enum`.
**Recommended:** Specify the underlying type for `enum class` when size matters.
```cpp
enum class DatabaseError : uint8_t
{
OK,
NOT_FOUND,
CORRUPTION
};
```
**Recommended:** Enum constant names use `UPPER_CASE`.
> **Enforced by:** `clang-tidy` (`readability-identifier-naming.EnumConstantCase`) [Recommended]
>
> *Note: Some code uses PascalCase for scoped enum constants (e.g., `ParseMode::Strict`). This produces warnings under the current tooling; new code should use `UPPER_CASE`.*
### 5.10 `goto`
**Required:** `goto` is never permitted.
> **Enforced by:** `clang-tidy` (`cppcoreguidelines-avoid-goto`) [Required]
### 5.11 Switch Statements
**Required:** All `switch` statements shall have a `default` case.
**Required:** Each non-empty `case` shall end with a `break`, `return`, or explicit comment documenting intentional fall-through.
### 5.12 Conditional Expressions
**Required:** All non-boolean comparison expressions shall use an explicit comparison operator. Do not rely on implicit conversion to `bool`.
```cpp
if ( ptr != nullptr ) // correct
if ( ptr ) // incorrect
```
> **Enforced by:** `clang-tidy` (`readability-implicit-bool-conversion`) [Required]
**Recommended:** Minimize negative comparisons; prefer positive logic.
**Recommended:** Use `if`/`else` blocks rather than the ternary operator (`?:`) when the intent is to execute code for side effects, not just to select a value.
### 5.13 Loops
**Recommended:** Use `for` loops when the loop control needs initialization or recalculation; otherwise use `while`.
**Recommended:** Count `for` loops in ascending order.
**Recommended:** Minimize use of `break` in loops. Use it only for abnormal early exit.
**Recommended:** Use `continue` sparingly, with a comment explaining why.
### 5.14 Operators
**Recommended:** Default to pre-increment (`++i`) and pre-decrement (`--i`) unless post-increment/decrement semantics are logically required.
### 5.15 Floating-Point
**Required:** Do not compare floating-point numbers for equality.
**Recommended:** Use floating-point numbers only where necessary (graphics, physics).
### 5.16 Macros
**Required:** Replace `#define` value constants with `constexpr` or `inline constexpr`. Use macros only for include guards and unavoidable platform/compiler integration.
**Required:** Multi-statement macros shall have one statement per line, properly backslash-continued.
### 5.17 Stack vs Heap
**Required:** Match `new` with `delete` and `new[]` with `delete[]`.
**Required:** Prefer stack allocation. When heap allocation is needed, use `std::unique_ptr` (or `std::shared_ptr` when shared ownership is required). Never use raw `new`/`delete` in application code — wrap in smart pointers at the point of allocation.
---
## 6. Class Design
### 6.1 Interfaces
**Required:** Program to an interface, not an implementation. Define abstract interfaces (pure virtual classes) and depend on them.
**Required:** Keep class interfaces minimal and complete. A developer should only need the `.hpp` file to use the class.
**Required:** Data members shall never be `public`.
> **Enforced by:** `clang-tidy` (`misc-non-private-member-variables-in-classes`) [Required]
**Required:** Prefer non-member, non-friend free functions over member functions to increase encapsulation. Member functions should only be used when they need access to private data.
### 6.2 Special Member Functions
**Recommended:** Follow the Rule of Zero/Five:
- **Rule of Zero:** If a class does not manage resources directly, do not declare any of the special member functions (destructor, copy/move constructors, copy/move assignment). Let the compiler generate them.
- **Rule of Five:** If a class manages resources directly, declare all five: destructor, copy constructor, copy assignment, move constructor, and move assignment.
> **Enforced by:** `clang-tidy` (`cppcoreguidelines-special-member-functions`) [Recommended]
**Required:** Declare destructors `virtual` in all polymorphic base classes.
> **Enforced by:** `clang-tidy` (`bugprone-*` virtual-destructor checks) [Required]
### 6.3 Inheritance
**Required:** Public inheritance shall model "is-a" relationships.
**Required:** Never redefine an inherited non-virtual function.
> **Enforced by:** `clang-tidy` (`modernize-use-override`) [Required]
**Required:** Never redefine an inherited default parameter value.
**Recommended:** Differentiate between inheritance of interface and inheritance of implementation. Prefer composition over implementation inheritance.
### 6.4 Composition over Inheritance
**Recommended:** Favor object composition over class inheritance. Composition allows behavior to be combined at runtime and reduces rigid dependencies.
### 6.5 Encapsulation
**Required:** Keep internal class structure hidden. Do not expose implementation details in the public interface.
**Required:** Do not traverse multiple links or member functions in a single statement. Use named temporaries.
```cpp
// Incorrect — hard to read and debug
auto name = obj->GetDepartment()->GetManager()->GetName();
// Correct
auto *dept = obj->GetDepartment();
auto *mgr = dept->GetManager();
auto name = mgr->GetName();
```
---
## 7. Error Handling
### 7.1 Outcome Pattern
**Required:** The project uses `outcome::result` for fallible operations rather than C++ exceptions in hot paths.
```cpp
outcome::result> Blob::fromHex( std::string_view hex );
```
All functions returning `outcome::result` shall be declared `noexcept` unless they have a specific reason to throw.
### 7.2 Assertions
**Recommended:** Use assertions liberally to document invariants and detect programming errors.
### 7.3 Exception Safety
**Required:** Destructors must never throw exceptions. Catch and handle any exceptions that could escape a destructor.
**Required:** If a constructor fails, it shall leave the object in a well-defined state. In `outcome::result`-based code, use factory functions that return `outcome::result` rather than throwing from constructors.
---
## 8. File Layout
### 8.1 File Extensions
**Required:** Use `.hpp` for C++ header files and `.cpp` for C++ source files.
**Recommended:** Use `.h` and `.c` for C-style files only (discouraged).
### 8.2 One Class Per Header
**Required:** A class shall have a single header file. Closely related helper types may be co-located.
**Recommended:** Classes with a large number of member functions may split their implementation across multiple `.cpp` files organized by functional area.
### 8.3 Include Order
**Recommended:** Order includes as: (1) own header, (2) project headers, (3) third-party headers, (4) standard library headers.
> **Enforced by:** `clang-format` (`SortIncludes: true`, `IncludeBlocks: Preserve`)
**Required:** Minimize header file interdependence. Use forward declarations where possible instead of `#include`.
### 8.4 Function Length
**Recommended:** Functions should fit within approximately 100 lines.
**Recommended:** Module files should not exceed 10–15 pages.
---
## 9. Header File Layout
### 9.1 Include Guards
**Required:** All headers must be guarded against multiple inclusion.
```cpp
#ifndef SUPERGENIUS_MYCLASS_HPP
#define SUPERGENIUS_MYCLASS_HPP
// ...
#endif // SUPERGENIUS_MYCLASS_HPP
```
`#pragma once` is an acceptable alternative for headers that are not part of the public API, but traditional guards are preferred for portability.
### 9.2 Header Content
**Required:** Do not allocate memory (define static storage) in header files.
**Required:** Include only what the header directly needs. Forward-declare types that are used only by reference or pointer.
### 9.3 Order Within a Class
**Required:** Within a class definition, members appear in this order:
1. `public:` — constructors, destructor, operator overloads, accessors, mutators
2. `protected:` — protected methods
3. `private:` — private methods
4. `protected:` — protected data members
5. `private:` — private data members
---
## 10. Platform Abstraction
**Required:** Do not use `#ifdef` OS-specific checks (`WINDOWS`, `OSX`, `ANDROID`, etc.) in source files. Instead, include a `Platform.hpp` header that provides platform-specific abstractions.
```cpp
// Incorrect
#ifdef WINDOWS
// Windows-specific code
#elif __APPLE__
// Mac-specific code
#endif
// Correct
#include "Platform.hpp"
// Platform.hpp handles the OS-specific includes
```
Use the build system (CMake) to select per-platform include directories and source files.
---
## 11. Includes
**Required:** Use project-root-relative paths for internal includes.
```cpp
#include "base/logger.hpp"
#include "storage/face/readable.hpp"
```
**Required:** Use angle-bracket includes for third-party and standard library headers.
```cpp
#include
#include
#include
```
---
## 12. Tooling
### 12.1 clang-format
The repository root contains `.clang-format` encoding the formatting rules from [§3 Code Layout](#3-code-layout) and [§8–9 File Layout](#8-file-layout). Run:
```bash
clang-format -i # apply formatting
clang-format --dry-run # check only
```
All code shall be formatted before commit. Most IDEs can be configured to run clang-format on save.
### 12.2 clang-tidy
The repository root contains `.clang-tidy` encoding the static analysis rules from [§4–7](#4-naming-conventions). Each check is annotated as `[Required]` or `[Recommended]` and mapped to the corresponding standard section. Run:
```bash
clang-tidy -- -std=c++17
```
For full project analysis, use the CMake-generated `compile_commands.json`:
```bash
cd build/OSX/Debug
cmake .. -G "Ninja" -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
ninja
run-clang-tidy -p .
```
Required checks should pass clean on new and modified code. Recommended checks may produce warnings; developers should address warnings where practical but are not required to clear all warnings in legacy files.
### 12.3 Build Verification
Before committing, always:
1. Format with clang-format
2. Run clang-tidy on changed files
3. Build without errors or warnings
4. Run tests
Use the repository's build instructions in `README.md` for platform-specific commands.
---
## 13. References
- The Corelinux Consortium. *The Corelinux C++ Coding Standards*. Version 1.6, May 2000.
- Gamma, E., Helm, R., Johnson, R., and Vlissides, J. *Design Patterns: Elements of Reusable Object-Oriented Software*. Addison Wesley, 1995.
- Meyers, S. *Effective C++*, *More Effective C++*, *Effective STL*, and *Effective Modern C++*. Addison Wesley.
- Reddy, M. *API Design for C++*. Morgan Kaufmann, 2011.
- ISO/IEC 14882:2017 — *Programming Language C++* (C++17 Standard).
---
*Revision 2.0 — June 2026. This document supersedes Revision 1.0 (June 2000, last revised March 2020).*
---
source: /technical-information/software-engineering-handbook/python-coding-standards/
title: Python Coding Standards
---
## Python Coding Standards
This section extends the SuperGenius C++ Coding Standards to Python source
files (e.g. `gnus-poc/`, tooling, test harnesses). The classifications are
identical: **Required** rules must be followed (enforced by `ruff` + `mypy`,
which play the roles of `clang-format` and `clang-tidy`); **Recommended**
rules should be followed unless there is a compelling reason to deviate.
The §1.1 General Principles apply unchanged: maintainability first, think of
the reader, be explicit, minimize scope.
### 1 Comments and Docstrings
**Required:** Every module shall have a top-of-file docstring stating its
purpose (the analogue of the §2.1 top-of-file comment).
**Required:** All public classes, functions, and modules shall have docstrings
(Google style). Comment size should match the function's size and complexity.
**Required:** Use `#` single-line comments for inline comments. Block comments
sit on their own line, at the same indentation level as the code they describe.
### 2 Code Layout
**Required:** Indentation is 4 spaces. Never tabs (PEP 8; enforced by `ruff format`).
**Recommended:** Lines should not exceed 100 columns (the C++ limit of 120 is
acceptable where the team prefers consistency with C++).
**Required:** One statement per line. Each declaration on a new line.
**Required:** Break long lines inside parentheses, brackets, or braces rather
than with backslash continuations. Indent the continuation past the current
indent column. Wrap conditional expressions after the logical operators.
**Recommended:** Two blank lines between top-level definitions, one between
method definitions. At most one blank line within a function body.
### 3 Naming Conventions
| Entity | Case | Example | Enforced |
| --- | --- | --- | --- |
| Modules / packages | snake_case | `sgfp4_format.py` | Required |
| Classes / Exceptions | PascalCase | `QuadtreeEncoder` | Required |
| Functions / methods | snake_case, verb-noun | `decode_v2()` | Required |
| Variables / parameters | snake_case | `leaf_index` | Required |
| Compile-time constants | `UPPER_CASE` | `SPLIT_MAP_BYTES` | Required |
| Enum types | PascalCase | `class CodeMode(IntEnum)` | Required |
| Enum members | `UPPER_CASE` | `FP4_AFFINE` | Recommended |
| Non-public members | single leading `_` | `_build_split_map` | Required |
**Required:** No Hungarian notation or type prefixes.
**Recommended:** Boolean-returning functions start with `is_` or `has_`
(the analogue of §4.6). Factory functions start with `create_`; teardown
functions with `destroy_`.
**Required:** Wire-format and protocol "magic numbers" shall be named exactly
once in a dedicated constants module (the analogue of §4.5
`avoid-magic-numbers`), imported by every producer and consumer of the format.
Do not duplicate literal masks, shifts, or sizes across files.
### 4 Language Usage
**Required:** Use `enum.Enum` / `enum.IntEnum` for closed sets of values.
Bare integer constants with a comment are not an enum (analogue of §5.9
`enum class`).
**Required:** All non-boolean conditional expressions shall be explicit
(analogue of §5.12). Test `None` with `is` / `is not`; test bit flags with
`!= 0`; do not rely on truthiness of objects whose falsy value is ambiguous.
```
if flags & RESERVED_MASK != 0: # correct
if flags & RESERVED_MASK: # incorrect
if node is None: # correct
if not node: # incorrect
```
**Required:** No mutable default arguments (`def f(items=[])`). Use
`Optional[...] = None` and initialize in the body.
**Required:** Acquire resources with context managers (`with`) — the RAII
analogue. Files, sockets, and locks shall not rely on `__del__`.
**Required:** Type hints on all public function signatures. `mypy` (or
equivalent) must pass on new code.
**Recommended:** Prefer `pathlib.Path` over `os.path` string manipulation.
Prefer f-strings over `%` or `.format()`. Prefer dataclasses for simple
data carriers.
**Recommended:** Use `nonlocal`/`class` state instead of single-element list
closure hacks (`idx = [0]`).
**Recommended:** Minimize `break`/`continue` in loops, as in §5.13. Count
loops ascending.
### 5 Class Design
**Required:** Data members shall not be public (§6.1 analogue): prefix with
`_`; expose behavior through methods or `@property`.
**Recommended:** Prefer composition over inheritance (§6.4 applies unchanged).
Use `abc.ABC` for interfaces.
**Required:** A class's public surface shall be documented in its docstring;
`__all__` shall be defined in package `__init__.py` files that re-export.
### 6 Error Handling
**Required:** Raise specific exception types, never bare `except:` and never
`except Exception` without re-raising or wrapping. Define a small custom
exception hierarchy per package (e.g. `SGFP4FormatError(ValueError)`).
**Required:** `assert` documents invariants only (§7.2 analogue). Never use
`assert` for input validation or error handling — it is stripped under
`python -O`.
**Recommended:** Functions should document raised exceptions in their
docstrings.
### 7 Module and File Layout
**Required:** Import order: (1) standard library, (2) third-party,
(3) project-local (the analogue of §8.3; enforced by `ruff` isort rules).
**Required:** No circular imports. Shared constants/types live in a leaf
module (e.g. `*_format.py`) that imports nothing from the package.
**Required:** Executable module code guarded by `if __name__ == "__main__":`.
**Recommended:** Functions should fit within approximately 100 lines (§8.4
applies unchanged). Extract helpers rather than nesting logic.
**Recommended:** Avoid monkey-patching and runtime modification of other
modules' objects.
### 8 Platform Abstraction
**Required:** No scattered `sys.platform` checks in source files (§10
analogue). Isolate platform differences in a single `platform_utils` module.
### 9 Testing
**Required:** New logic ships with `pytest` tests in the same change.
**Recommended:** Tests use seeded RNGs (`np.random.default_rng(seed)`) for
determinism. Binary-format code shall include hand-constructed golden
vectors, not only round-trip self-consistency checks.
### 10 Tooling
| C++ tool | Python analogue | Purpose |
| --- | --- | --- |
| clang-format | `ruff format` (or `black`) | Layout enforcement |
| clang-tidy | `ruff check` | Static analysis, naming, import order |
| — | `mypy` | Type checking (Required checks must pass clean) |
Before committing, always: format, lint, type-check, and run tests
(§12.3 applies unchanged).
---
source: /technical-information/software-engineering-handbook/typescript-coding-standards/
title: TypeScript Coding Standards
---
# SuperGenius TypeScript Coding Standards
Revision 1.0 — July 2026
Adapted from the SuperGenius C++ Coding Standards (Rev 2.0), restated for
TypeScript 5.x / ECMAScript 2022+ codebases.
* * *
## 1. Scope
This document defines the coding standards for SuperGenius TypeScript and
JavaScript source files (frontends, Node services, tooling). Rules are
classified as:
| Classification | Meaning | Enforcement |
| --- | --- | --- |
| **Required** | Mandatory. Deviations must be approved by the team lead. | `eslint` check (should pass clean) |
| **Recommended** | Should be followed unless there is a compelling reason to deviate. | `eslint` check (warnings may exist) |
The automated enforcement configuration lives in `eslint.config.js`,
`.prettierrc`, and `tsconfig.json` at the repository root. See §12 Tooling
for usage. `prettier` + `eslint` + `tsc --strict` play the roles of
`clang-format` and `clang-tidy` in the C++ standard.
### 1.1 General Principles
The primary goal is **maintainability**. Other considerations in priority
order: correctness, readability, consistency, clarity, portability,
simplicity, and finally efficiency. When in doubt, strive for clarity first,
then efficiency.
Think of the reader. Keep it simple. Break down complexity. Be explicit —
avoid implicit or obscure language features. Be consistent. Minimize scope,
both logical and visual.
* * *
## 2. Comments
### 2.1 File Comments
**Required:** Every source file shall have a top-of-file comment. Use
TSDoc/JSDoc-compatible format.
```
/**
* @fileoverview Brief description of the file's purpose.
* @author Jane Smith
*/
```
### 2.2 Function and Interface Comments
**Required:** All exported functions, classes, interfaces, and type aliases
shall have TSDoc comments. The comment size should match the function's size
and complexity.
```
/**
* Attaches a rendering window to the context.
* @param rendWin The window to attach.
* @returns false on failure.
*/
attachRenderWindow(rendWin: RenderWindow): boolean;
```
**Required:** Use `//` single-line comments for inline comments.
**Recommended:** Prefer block comments (on their own line) over trailing
comments. Use trailing comments only for special annotations (e.g.
`// eslint-disable-next-line`, `// istanbul ignore next`).
**Required:** Block comments are at the same indentation level as the code
they describe.
**Recommended:** Document workarounds and non-obvious decisions with a
linked issue or spec reference, not folklore.
* * *
## 3. Code Layout
### 3.1 Braces
**Required:** Opening braces go on the **same line** as the statement
(1TBS / K&R style). Allman braces are *not* used in TypeScript code.
```
function doSomething(): void {
if (x !== y) {
y = x;
} else {
// ...
}
}
```
> Enforced by: `prettier` (default `bracketSameLine` behavior for control
> statements).
**Required:** Always use braces on `if`, `for`, `while`, and `do`/`while`
statements, even when the body is a single statement.
```
// Correct
if (condition) {
doWork();
}
// Incorrect
if (condition) doWork();
```
> Enforced by: `eslint` (`curly: ["error", "all"]`) [Required]
**Required:** Arrow function bodies that exceed one expression use a block
with an explicit `return`; single-expression bodies omit braces and return.
### 3.2 Indentation and Spacing
**Required:** Indentation is 2 spaces. Do not use tabs. (This matches the
dominant TypeScript ecosystem convention; the C++ 4-space rule does not
carry over.)
> Enforced by: `prettier` (`tabWidth: 2`, `useTabs: false`)
**Required:** No space between a function name and the opening parenthesis.
Single space after keywords (`if`, `for`, `while`, `switch`, `catch`).
**Required:** Balance spacing on either side of binary operators. Do not
space before separators (semicolon, comma) but do space after them.
**Recommended:** Use semicolons at statement ends. Be consistent — never
mix styles within a file.
> Enforced by: `prettier` (`semi: true`)
### 3.3 Column Limit
**Recommended:** Lines should not exceed 100 columns.
> Enforced by: `prettier` (`printWidth: 100`)
### 3.4 Line Wrapping
**Required:** When wrapping a line, indent the continuation past the current
indent column. Wrap conditional expressions after the logical operators.
```
if (theNameOfTheGame === aGameName &&
theTimeBeingPlayed > aLimit) {
// ...
}
```
**Required:** Wrap long function signatures after a parameter comma, with
indentation.
```
function setValues(a1: ObjectRef, a2: ObjectRef, aName: string,
aValue: number): void {
// ...
}
```
### 3.5 Declarations
**Required:** Start each declaration on a new line. One statement per line.
**Required:** Use `const` by default; `let` only when reassignment is
required; `var` is never permitted.
> Enforced by: `eslint` (`prefer-const`, `no-var`) [Required]
### 3.6 Switch Statements
**Required:** All `switch` statements shall have a `default` case.
**Required:** Each non-empty `case` shall end with `break`, `return`,
`throw`, or an explicit `// fallthrough` comment documenting intent.
> Enforced by: `eslint` (`default-case`, `no-fallthrough`) [Required]
### 3.7 Blank Lines
**Recommended:** Use blank lines before and after block comments and
between logical sections to visually separate code chunks. At most one
consecutive blank line.
* * *
## 4. Naming Conventions
### 4.1 Summary Table
| Entity | Case | Example | Enforced |
| --- | --- | --- | --- |
| Classes / Interfaces / Types / Enums | PascalCase | `ProcessingNode` | Required |
| Enum members | `UPPER_CASE` | `DatabaseError.NotFound` | Recommended |
| Functions / methods | camelCase, verb-noun | `getValue()` | Required |
| Variables / parameters | camelCase | `nodeId` | Required |
| Compile-time constants | `UPPER_CASE` | `MAX_RETRY_COUNT` | Required |
| Module-level constants | `UPPER_CASE` | `DEFAULT_PORT` | Required |
| Files (component/class) | kebab-case | `processing-node.ts` | Recommended |
| Boolean variables/functions | `is`/`has`/`can` prefix | `isReady` | Recommended |
> Enforced by: `eslint` (`@typescript-eslint/naming-convention`) [Recommended]
### 4.2 Type Names
**Required:** Types, classes, and interfaces start with an uppercase letter
and use PascalCase.
**Required:** Do **not** prefix interfaces with `I` (`IUserService` is
incorrect; `UserService` is correct). No Hungarian notation or type
prefixes anywhere.
### 4.3 Variables and Parameters
**Recommended:** Local variables and parameters use camelCase.
**Required:** Make all identifiers unique within a function. Avoid
similar-sounding names within a scope.
**Recommended:** Boolean names read as predicates: `isReady`, `hasError`,
`canRetry`, `shouldUpdate`.
### 4.4 Constants
**Required:** Compile-time and module constants use `UPPER_CASE` (the
analogue of the C++ `k` prefix rule). Do not use magic numbers; wire-format
and protocol constants shall be named exactly once in a dedicated constants
module, imported by every producer and consumer of the format.
```
export const MAX_RETRY_COUNT = 3;
export const PUBLIC_KEY_SIZE = 32;
```
### 4.5 Functions and Methods
**Required:** Functions and methods use camelCase with a verb-noun pattern:
`getName`, `isEmpty`, `createThread`, `destroyThread`. Accessor/mutator/
factory verb conventions match the C++ standard: `get*`/`set*` pairs,
`is*`/`has*` for booleans, `create*`/`destroy*` for factories.
### 4.6 Spelling and Clarity
**Required:** Use correct English spelling. Avoid abbreviations except for
well-known domain terms.
* * *
## 5. Language Usage
### 5.1 Strictness
**Required:** `strict: true` in `tsconfig.json`. No new file may disable
strict flags (`strictNullChecks`, `noImplicitAny`, etc.) locally or
globally.
**Required:** `any` is not permitted in new code. Use `unknown` and narrow
explicitly. `// @ts-ignore` / `@ts-expect-error` require a comment
explaining why and a linked issue.
> Enforced by: `eslint` (`@typescript-eslint/no-explicit-any`) [Required]
### 5.2 Initialization
**Required:** All variables must be initialized at the point of
declaration (the analogue of the C++ init rule).
**Required:** Use `readonly` on class members and object properties that
are not reassigned (the analogue of C++ `const` correctness).
### 5.3 Null and Undefined
**Required:** Use `undefined` for absent values; reserve `null` for
interoperability with APIs that require it. Never use `==` / `!=`; always
`===` / `!==`. The only tolerated loose comparison is `== null` where both
`null` and `undefined` are meant — prefer explicit `x === null || x === undefined`.
> Enforced by: `eslint` (`eqeqeq: ["error", "always"]`) [Required]
**Recommended:** Prefer optional chaining (`?.`) and nullish coalescing
(`??`) over `&&` chains and `||` defaults when the value may be
`0`, `""`, or `false`.
### 5.4 Casts and Type Assertions
**Required:** Avoid type assertions (`as T`). When unavoidable (e.g. after
narrowing the compiler cannot follow), add a comment justifying the
invariant. Double assertions (`as unknown as T`) are effectively never
permitted.
> Enforced by: `eslint` (`@typescript-eslint/consistent-type-assertions`) [Recommended]
### 5.5 Immutability and `const` Correctness
**Required:** Function parameters shall not be reassigned.
> Enforced by: `eslint` (`no-param-reassign`) [Required]
**Recommended:** Prefer immutable patterns: spread over mutation,
`Readonly` / `ReadonlyArray` in public signatures where mutation by
callers would be a bug.
### 5.6 Enums and Union Types
**Required:** Prefer `const` objects with `as const` plus a union type, or
string enums, over numeric enums. Closed value sets shall be explicit —
bare numbers/strings with a comment are not an enum (the analogue of the
C++ `enum class` rule).
```
export const CodeMode = { Fp4Affine: 0, T158Affine: 1 } as const;
export type CodeMode = typeof CodeMode[keyof typeof CodeMode];
```
### 5.7 Conditionals and Truthiness
**Required:** All non-boolean conditional expressions shall use an explicit
comparison. Do not rely on implicit truthiness for numbers, strings, or
nullable values whose falsy state is ambiguous (the analogue of the C++
implicit-bool rule).
```
if (count !== 0) { ... } // correct
if (count) { ... } // incorrect
if (node !== undefined) { ... } // correct
if (node) { ... } // incorrect for nullable objects
```
**Recommended:** Minimize negative comparisons; prefer positive logic.
Use `if`/`else` over nested ternaries; a single simple ternary for value
selection is acceptable.
### 5.8 Loops and Iteration
**Recommended:** Prefer `for...of` and array methods (`map`, `filter`,
`reduce`, `find`) over index loops. Count index loops ascending.
**Recommended:** Minimize `break` in loops; use it only for abnormal early
exit. Use `continue` sparingly with a comment.
**Required:** Never use `for...in` on arrays.
### 5.9 Asynchronous Code
**Required:** Use `async`/`await` over raw `.then()` chains. Every promise
chain must have error handling; floating promises are not permitted.
> Enforced by: `eslint` (`@typescript-eslint/no-floating-promises`,
> `@typescript-eslint/no-misused-promises`) [Required]
**Required:** In async iteration, prefer `for await...of`. Do not fire-and-
forget promises without an explicit `void` operator and a comment.
**Recommended:** Default to pre-increment (`++i`) where a choice exists,
matching the C++ convention.
### 5.10 Regular `function` vs Arrow
**Recommended:** Use arrow functions for callbacks and inline functions;
use named `function` declarations for top-level functions (hoisting,
stack-trace readability). Do not use `this` in module-scope arrow
functions.
### 5.11 goto, Labels, and Obscure Features
**Required:** Labeled statements (the JS `goto` analogue) are never
permitted. The comma operator, `with`, and implicit globals are never
permitted.
### 5.12 Floating-Point
**Required:** Do not compare floating-point numbers for equality. Compare
against an epsilon or use integer/fixed-point representations.
### 5.13 Globals and Side Effects
**Required:** No mutable module-level state. Configuration and shared
state are injected via constructors or parameters (dependency injection),
never imported as mutable singletons.
* * *
## 6. Class Design
### 6.1 Interfaces
**Required:** Program to an interface: depend on `interface` types (or
abstract classes) at module boundaries, not concrete implementations.
**Required:** Keep class interfaces minimal and complete. A developer
should only need the type declarations to use the class.
**Required:** Data members shall never be public without a reason. Use
`private`/`protected` and accessors. `#private` fields are acceptable;
`private` (compile-time) is preferred for ecosystem compatibility.
> Enforced by: `eslint` (`@typescript-eslint/explicit-member-accessibility`) [Required]
**Required:** Explicit accessibility modifiers on all class members.
**Recommended:** Prefer non-member, non-friend free functions over member
functions when private access is not needed (matches the C++ standard).
### 6.2 Special Member Functions
**Recommended:** Rule of Zero applies: classes that manage no resources
directly need no explicit lifecycle methods. Resource-owning classes
implement explicit cleanup (`close()`, `dispose()`, or
`Symbol.dispose`/`Symbol.asyncDispose` where supported) and document the
ownership contract.
**Recommended:** Use `using` declarations for `Disposable` resources where
the runtime supports them (the RAII analogue).
### 6.3 Inheritance
**Required:** Public inheritance shall model "is-a" relationships. Never
redefine an inherited non-virtual method without `override` semantics —
use the `override` keyword.
> Enforced by: `tsc` (`noImplicitOverride: true`) [Required]
**Recommended:** Prefer composition over implementation inheritance (the
C++ standard applies unchanged).
### 6.4 Encapsulation
**Required:** Do not traverse multiple links in a single statement. Use
named temporaries.
```
// Incorrect — hard to read and debug
const name = obj.getDepartment().getManager().getName();
// Correct
const dept = obj.getDepartment();
const mgr = dept.getManager();
const name = mgr.getName();
```
* * *
## 7. Error Handling
### 7.1 Exceptions and Result Types
**Required:** Throw `Error` subclasses, never string or object literals.
Define a small custom error hierarchy per package
(`class Sgf4FormatError extends Error`).
**Recommended:** In hot paths and at API boundaries, a `Result`
discriminated union return (the analogue of the C++ `outcome::result`
rule) is preferred over throwing. One style per module — do not mix
throwing and result-returning for the same failure modes.
```
type Result = { ok: true; value: T } | { ok: false; error: E };
```
### 7.2 Assertions
**Recommended:** Use assertions (`invariant`-style helpers, Node `assert`)
liberally to document invariants and detect programming errors.
**Required:** Assertions document invariants only. Input validation at
trust boundaries uses explicit checks with typed errors.
### 7.3 Exception Safety
**Required:** Cleanup paths (`finally`, `dispose`) must never throw
unhandled exceptions. Catch and handle anything that could escape.
**Required:** A failed constructor leaves no partially-usable object:
prefer factory functions returning `Result` over throwing
constructors for fallible construction.
* * *
## 8. File and Module Layout
### 8.1 Files
**Required:** One primary class/component per file. Closely related helper
types may be co-located.
**Recommended:** Files should not exceed roughly 400 lines; functions
should fit within approximately 100 lines (the C++ §8.4 rule applies
unchanged).
### 8.2 Import Order
**Required:** Order imports as: (1) node/built-in modules, (2) third-party
packages, (3) project-internal modules, (4) relative imports. Alphabetize
within groups.
> Enforced by: `eslint` (`import/order`) [Required]
**Required:** No circular imports. Shared constants/types live in a leaf
module that imports nothing from the package.
### 8.3 Exports
**Required:** Package entry points (`index.ts`) define the public surface
explicitly. Avoid `export *` except in deliberate barrel files.
**Recommended:** Use named exports over default exports (refactor-safe
renaming, clearer imports).
### 8.4 Side Effects
**Required:** Importing a module shall not trigger observable side effects
(network, filesystem, global mutation) other than constant initialization.
Initialization happens in an explicit `init()`/`main()` called by the
entry point.
* * *
## 9. Type Design
### 9.1 Interfaces vs Type Aliases
**Recommended:** Use `interface` for object shapes that may be extended;
use `type` for unions, intersections, mapped types, and function types.
### 9.2 Narrowing
**Required:** Validate untrusted input (network, filesystem, user) with
runtime schema validators (e.g. `zod`, `valibot`) and let types flow from
the schema (`z.infer`). Never cast `JSON.parse` output directly.
### 9.3 Generics
**Recommended:** Name generic parameters meaningfully (`TValue`, `TError`)
when a single letter is unclear. Constrain generics
(``) rather than accepting everything.
### 9.4 Utility Types
**Recommended:** Prefer built-in utility types (`Partial`, `Required`,
`Pick`, `Omit`, `Record`, `Readonly`) over hand-rolled mapped types.
* * *
## 10. Platform Abstraction
**Required:** Do not scatter environment checks (`typeof window`,
`process.env`, `Deno`, `Bun`) through source files. Isolate platform and
environment differences behind a single `platform` module, selected at
build time or via dependency injection (the C++ §10 rule applies
unchanged).
**Required:** Environment variables are read exactly once, in a typed
config module with validation and defaults — never ad hoc `process.env.*`
throughout the code.
* * *
## 11. Testing
**Required:** New logic ships with tests in the same change (vitest or
jest, colocated `*.test.ts` or a `tests/` tree matching source layout).
**Recommended:** Tests are deterministic: seeded RNGs, fake timers, no
network. Binary-format code shall include hand-constructed golden
vectors, not only round-trip self-consistency checks.
**Recommended:** Name tests as behavior statements
(`it("decodes a MIXED record via the split map")`).
* * *
## 12. Tooling
### 12.1 prettier
The repository root contains `.prettierrc` encoding the formatting rules
from §3. Run:
```
prettier --write # apply formatting
prettier --check # check only
```
All code shall be formatted before commit. Most editors can format on
save.
### 12.2 eslint
The repository root contains `eslint.config.js` (flat config) encoding
the static analysis rules from §4–§7, with `@typescript-eslint`
type-checked rules enabled. Each rule is annotated `[Required]` or
`[Recommended]`. Run:
```
eslint
```
Required rules should pass clean on new and modified code. Recommended
rules may produce warnings; address them where practical.
### 12.3 TypeScript compiler
```
tsc --noEmit
```
Type checking is part of every build. `strict` mode is non-negotiable.
### 12.4 Build Verification
Before committing, always:
1. Format with prettier
2. Run eslint on changed files
3. Run `tsc --noEmit` without errors
4. Run tests
* * *
## 13. References
- SuperGenius C++ Coding Standards, Revision 2.0 (this document's parent).
- Microsoft. _TypeScript Handbook_.
- Google. _TypeScript Style Guide_.
- typescript-eslint project. _Recommended and stylistic rule sets_.
* * *
_Revision 1.0 — July 2026._
---
source: /technical-information/software-engineering-handbook/smart-contract-projects/
title: Smart Contract Projects
---
# Smart Contract Projects: Git Workflow
## Repository Structure
```bash
main-project/ (Node/TypeScript/Hardhat)
├── contracts// (Git submodule - Solidity contracts)
├── diamonds// (Git submodule - Deployment records & config)
├── scripts/
├── tests/
├── package.json
├── tsconfig.json
└── hardhat.config.ts
```
## Branch Strategy
### Main Repositories (Parent + Both Submodules)
#### Core Branches
- **`main`** - Production-ready code, always deployable
- **`staging`** - Pre-release testing and validation (deployed to testnets)
- **`develop`** - Integration branch for ongoing development
#### Supporting Branches
- **`feature/CONTRACT-123-add-staking`** - New features
- **`hotfix/fix-critical-vulnerability`** - Critical production fixes
- **`release/v1.2.0`** - Release preparation
## Naming Conventions
### Branch Names
```bash
feature/ISSUE-123-brief-description
hotfix/critical-issue-description
release/v1.2.0
chore/update-dependencies
docs/update-readme
```
### Commit Messages
```bash
feat(contracts): add staking reward mechanism (#123)
fix(deployment): correct mainnet contract address (#456)
test(staking): add comprehensive staking tests
docs(readme): update deployment instructions
chore(deps): bump hardhat to v2.19.0
```
### Tags
```bash
v1.0.0 - Major release
v1.1.0 - Minor release
v1.1.1 - Patch release
v1.0.0-beta.1 - Pre-release
```
## Workflow Process
### 1. Feature Development
```bash
# Start from develop
git checkout develop
git pull origin develop
# Create feature branch
git checkout -b feature/ISSUE-123-add-governance
# Update submodules to latest develop
git submodule update --remote --merge
# Work on feature...
# Make commits following conventional commit format
# Push feature branch
git push -u origin feature/ISSUE-123-add-governance
```
### 2. Pull Request Requirements
#### PR Title Format
```bash
feat: Add governance token staking mechanism (#123)
fix: Resolve deployment configuration for Polygon (#456)
```
#### Required PR Checks
- [ ] All tests pass (unit + integration)
- [ ] Smart contracts compile without warnings
- [ ] Gas optimization review completed
- [ ] Security considerations documented
- [ ] Deployment plan updated (if applicable)
- [ ] Documentation updated
- [ ] Submodule versions properly updated
#### PR Template
```markdown
## Description
Brief description of changes
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation update
## Smart Contract Impact
- [ ] New contracts added
- [ ] Existing contracts modified
- [ ] Deployment configuration changed
- [ ] Gas cost implications
## Testing
- [ ] Unit tests added/updated
- [ ] Integration tests pass
- [ ] Mainnet fork testing completed
## Deployment Checklist
- [ ] Deployment scripts updated
- [ ] Configuration files updated
- [ ] Migration strategy documented
## Security Review
- [ ] No new attack vectors introduced
- [ ] Access controls reviewed
- [ ] Third-party integrations validated
```
### 3. Submodule Management
#### Updating Submodules in Parent
```bash
# Option A: Update to latest commit on develop
git submodule update --remote --merge
# Option B: Update to specific commit
cd contracts
git checkout feature/new-contract
cd ..
git add contracts
git commit -m "feat: update contracts submodule to include new staking contract"
```
#### Submodule Workflow Rules
1. **Contracts submodule**: Always merge to develop first, then update parent
2. **Deployments submodule**: Updated immediately after successful deployments
3. **Atomic updates**: Submodule updates should be separate commits with clear messages
### 4. Release Process
#### Creating a Release
```bash
# Create release branch from develop
git checkout develop
git pull origin develop
git checkout -b release/v1.2.0
# Update version numbers, changelogs
# Final testing and bug fixes only
# Merge to main
git checkout main
git merge --no-ff release/v1.2.0
git tag -a v1.2.0 -m "Release version 1.2.0"
# Merge back to develop
git checkout develop
git merge --no-ff release/v1.2.0
# Clean up
git branch -d release/v1.2.0
```
## GitHub Integration
### Branch Protection Rules
#### Main Branch
- Require pull request reviews (min 1 reviewer)
- Require status checks to pass
- Require branches to be up to date
- Require conversation resolution
- Restrict pushes to admins only
#### Develop Branch
- Require pull request reviews (min 1 reviewer)
- Require status checks to pass
- Allow force pushes for admins
### GitHub Actions Workflow
```yaml
# Example CI/CD triggers
on:
push:
branches: [main, develop]
pull_request:
branches: [main, develop]
jobs:
test:
# Run tests, linting, security checks
deploy-testnet:
if: github.ref == 'refs/heads/develop'
# Auto-deploy to testnet
deploy-mainnet:
if: github.ref == 'refs/heads/main'
# Manual deployment to mainnet
```
### Issue and Project Integration
#### Issue Labels
```bash
Type:
- bug
- feature
- security
- gas-optimization
- documentation
Priority:
- critical
- high
- medium
- low
Component:
- contracts
- deployment
- testing
- infrastructure
```
---
source: /technical-information/software-engineering-handbook/recommended-pattern-for-llm-usage-in-team-gpt/
title: Recommended Pattern for LLM Usage in Team-GPT
---
---
description: >-
This page outlines best practices for leveraging Large Language Models (LLMs)
within Team-GPT to optimize software engineering workflows, particularly for
architecture design, code generation, and pro
---
# Recommended Pattern for LLM Usage in Team-GPT
### Architecture Planning
When planning the high-level architecture or summary design of a project:
* Use the following LLMs in this preferred order for generating architectural summaries:
1. **gpt-oss-20b** (primary choice for open-source efficiency).
2. **Grok 4** (reliable and versatile).
3. **Claude Opus 4.1** (strong for complex reasoning).
4. **ChatGPT 5** (as a fallback for advanced capabilities).
* Instruct these LLMs explicitly **not to generate code**. Their role is limited to providing architectural overviews, diagrams, or high-level designs without delving into implementation details.
* If the initial architecture needs refinement or you encounter limitations, switch to **Grok Code Fast** for quick iterations. This model is extremely cost-effective but may be less accurate, so validate outputs carefully.
* For troubleshooting or alternative perspectives, cycle through these models:
* **Qwen Code 3** (free, but slower with a good parameter size for detailed reasoning).
* **Grok Code Fast** (fast and inexpensive, though prone to occasional errors).
* **Claude Sonnet 4** (moderately priced and reliable for balanced performance).
Avoid using **Claude Opus**, **GROK 4**, or **ChatGPT 5** for any code-related tasks, as they are not optimized for code generation and incur higher costs.
### Code Generation
Once the architecture is outlined:
* Switch to specialized code generation LLMs, such as **Grok Code Fast** or **Qwen Code 3**, for producing actual code.
* Instruct these LLMs to **generate code without placeholders**. This ensures complete, ready-to-use code rather than partial or templated outputs.
* Do not use architecture-focused models (e.g., Claude Opus, GROK 4, or ChatGPT 5) for this step, as they are inefficient and expensive for code tasks.
#### Integration with Project Knowledge
* When creating a new chat for code generation, ensure it includes **project instructions**. Copy these from existing practices for a C++ senior software engineer (e.g., coding standards, best practices, and guidelines) and add them to the project's knowledge base.
* Reference the **ThirdParty\_Libraries\_Integration.md** file to inform the LLM about approved C++ libraries and integration patterns. Include this file in the project knowledge for any new projects to maintain consistency.
### Testing and Validation
* After code generation, use the coding LLM (e.g., Grok Code Fast or Qwen Code 3) to **write GTests** (Google Test framework tests) for the generated code.
* Ensure tests are comprehensive, drawing from the project's knowledge base, including architecture summaries and library integrations.
### Project and Chat Setup
* **New Projects**: When starting a new project, populate the project knowledge with:
* A description of the project.
* Copied instructions from established C++ senior software engineer practices.
* The **ThirdParty\_Libraries\_Integration.md** file for library details.
* Any relevant files or linked chats.
* **Chats Under Projects**: If creating sub-chats within an existing project, they will automatically source context from:
* The project's knowledge description.
* Attached files (e.g., architecture docs, library integrations).
* Linked chats for continuity and shared context.
This pattern promotes a structured workflow: start with high-level architecture using cost-effective reasoning models, transition to efficient code generators, and ensure testing and project consistency through integrated knowledge. Always monitor for accuracy and switch models as needed to balance speed, cost, and quality.
---
source: /technical-information/super-genius-blockchain-technical-details/
title: Super Genius Blockchain Technical Details
---
# Super Genius Blockchain Technical Details
The code is based on the following patent:
[Distributed General Purpose Computing System with CryptoToken Payment System - Patent #US11451393](https://github.com/GeniusVentures/GeniusTokens/files/10827213/US11451393-final.pdf)
## This is the general flow of the Genius Tokens system

## These are the components of the System
* Generic BlockChain CryptoToken = Ethereum based smart contract using an Escrow like system that feeds the “Real” POW hash codes to Smart Contract to check consensus. Wiki/Repo
* Communication Component = ipfs pub/sub using Gossip protocol. Wiki/Repo
* Proof of Work Component = partially built, but gathers all “real” POW from all nodes and passes them to the smart contract for consensus check
* Directed Acyclic CryptoToken = Partially built DAG system built off of IPFS DAG, POW/POS Blended Consensys. Wiki/Repo
* Distributed File System = ipfs-lite (already built) Wiki/Repo
* Delivery/Storage Component – RocksDB with ipfs backing, CRDT library needs to be integrated as full DAG is stored on ifps and branch roots and sub-branches need to be synchronized
* https://arxiv.org/abs/2004.00107 paper on similar system
* CRDT cpp library is available. [Repo](https://github.com/CBaquero/delta-enabled-crdts), ipfs-lite, [RocksDB](https://github.com/facebook/rocksdb/), ifps pub/sub gossip are already integrated.
* CryptoToken Wallet = Flutter/Parabeac design and Dart code in development, Wallet is actually Wallet for two Crypto’s Genius Token (GNUS) and SuperGenius Token (SGNUS) and DApp combined. Wiki/Repo
* Processing Component = Work to be done by for integration with Games/App GPU/Shader processing will be part of SDK. Wiki/Repo
* Software Development Kit API = work to be done for interface to Processing Component and checking wallet balance for In-App Purchases. Wiki/Repo
* (Not Shown) Third Party support library, includes cross Platform libraries for Boost, GSL, GTest, Curl, Cryptopp, 25519, flutter, Parabeac, gnostic, grpc, hat-trie, ipfs-lite-cpp, openssl, json, leveldb, libp2p, lmdb rapidjson, restclient-cpp, spdlog Repo
---
source: /technical-information/super-genius-blockchain-technical-details/supergenius-db-layout/
title: SuperGenius DB Layout
---
---
description: This page explains the SuperGenius Layout of the CRDT database
---
# SuperGenius DB Layout
The storing of processing data, transaction data, proof data and blockchain data of SuperGenius is done in CRDT database. The storage is accessed by a Key-Value mechanism, where each type of data has a specific format of key, making sure that each SuperGenius node instantly knows how to construct the key to search for a specific value.
The processing data comes from splitting a Job into Macro and Micro Jobs. Their key format is expected to be:
```
Processing/${JobID}/${SubTaskID}/${ProtocolType}/Output
```
The IDs are assigned when the input data is split into workable packets, as for the Protocol Type is associated with the kind of protocol used for the processing (IPFS, MNN, file...)
The remainder of key types formats start with "bc-" followed by the 3 digit ID of the type of net being used.
```bash
bc-${net_iD}/
```
The blockchain data is store in the format:
```
bc-${net_ID}/blockchain/${blockNumber}/tx/${transactionNumber}
```
---
source: /technical-information/super-genius-blockchain-technical-details/ai-data-blocks/
title: AI Data Blocks
---
# AI Data Blocks
## AI Processing Data blocks pulled from ipfs via IPFS CID/UUID
Chunk processing is similar to how jpeg blocks are processed but block size can be anything 4x4, 8x8, 12x16, etc.
It also is very similar to how a GPU handles tiling.

## Job Data Structure.
(Picture of Soccer Player in Picture Above)
```
typedef struct _JOB {
IPFSCID ipfsBlock; // source block data to be processed
IPFSCID ipfsProgramBlock; // can be an array
unsigned long BlockLen; // and ipfs block's length in bytes
unsigned long BlockStride; // Stride to use for access pattern
unsigned long BlockLineStride; // Line stride in bytes to get to next block start
float randomSeed; // used to randomly choose verifier block
UUID resultsChannelUUID; // results written to CRDT database unique ID (/blockchain/{BlockChainID}/{resultsChannelUUID}/{MacroJobUUID}/{MicrojobUUID}
} JOB;
```
## Chunk (Macro & Micro Job) Data Structure
(Macro -> Grid in picture Block-n, Block m are Macro jobs, AC01, AC07 & Tiles in second picture are Microjobs)
```
typedef struct PROCESSCHUNK {
IPFSCID dataChunkID; // the UUID of the data chunk to be processed
IFPSCID programChunkID; // the UUID of the program to run on the data (ipfs CID)
unsigned long Offset; // offset into data
unsigned long SubChunkWidth; // width of subchunk/subblock
unsigned long SubChunkHeight; // height of chunk/block
unsigned long Stride; // stride to use for overall data chunk
unsigned long LineStride; // stride of one line of data
unsigned long nSubChunks; // number of chunks to process (this breaks down into microjobs)
UUID chunkUUID; // the macro/micro job id to use for writing results
} PROCESSCHUNK;
```
## Access Patterns of the Chunk/Blocks of Data
The block stride is the number of bytes to get you to the next block.
* if block stride = width of block in bytes, then processing of blocks source the blocks horizontally.
* if block stride = line width of data \* height of block, then processing of blocks source the blocks vertically
* Other access patterns can be achieved
* for instance if block stride = 2 \* width of data \* height of block, then processing of blocks will source every 2nd block in the horizontal direction
Those parameters allow you sample in any pattern. Blocks could be top to bottom in a column, you can sample in a row or even diagonally given block stride value
The line stride is the number of bytes to get you to the next line in the block (usually the width of the data).
The block width is the number of bytes in single line of a block. Height of the block is the number of lines of the block.
Offset is starting byte position of ipfs data.
---
source: /technical-information/super-genius-blockchain-technical-details/slicing-data-for-macro-microjobs/
title: Slicing Data for Macro MicroJobs
---
# Slicing Data for Macro MicroJobs
MacroJobs and Microjobs using slicing parameters for access patterns. One of the nodes (randomly chosen) uses a slicing pattern that includes an extra block to skip so that verifier node grabs 1/10th of the blocks from the each of the other nodes.
```
// temporary testing
RanomSeed(gettime() ^ 0xdeadc0de);
int getContractRandom() {
// call ETH contract to get RandomSeed
// return eth.call.getContractRandom();
// dummy for now
return Random();
}
RandomSeed(getContractRandom());
for (int i=0; i< nMacroJobs; i++) {
macroJob[i].randomSeed = Random() + i;
macroJob[i].UUID = GetUUUD();
}
#define MICROJOB_COUNT 10
// create Microjobs
void CreateMicroJobs(MacroJob *macroJob) {
RandomSeed(macroJob.randomSeed);
int verifier_node = Random(1, MICROJOB_COUNT);
for (int i=0; i< MICROJOB_COUNT + 1; i++)
{
if(i != verifier_node) {
SliceData(¯oJob->sliceParameters, µjob[i], 0, MICROJOB_COUNT);
} else {
uint offset = Random(1, MICROJOB_COUNT) * microJobBlockSize;
SliceRandomData(¯oJob->sliceparameters, µjob[i], offset, MICROJOB_COUNT+1);
}
// SliceData creates slicing parameters for Microjob
SliceData(SliceParameters *sliceParameters, MicroJob *microJob, uint offset, uint nextBlock)
{
microjob->slicingParameters.offset = offset;
microjob->slicingParameters.nextBlock = nextBlock;
// Copy macroJob->slicingParameters or calculate rest of them
}
```
---
source: /technical-information/super-genius-blockchain-technical-details/verification-and-hash-results-from-processing/
title: Verification and Hash Results from Processing
---
# Verification and Hash Results from Processing
## Jobs/Macro Jobs/Micro Jobs, oh my!
A job is a set of data that will be processed using AI/ML learning/inference models and the results stored back into a stream (IPFS, websockets, FTP, etc). Currently, we will only support IFPS.
#### Job Creation and Escrow
When a Job request is started via the Wallet/Dapp, that node/device is responsible for opening an Escrow and depositing GNUS tokens to be distributed to the nodes that process the jobs. (Job Requestor)
The Job Requestor will first make a read-only call to get a unique ID to be used as a pseudo random seed.
This will be used as the starting point of a pseudo random number generator for slicing and selecting the verifier node of the JOB
The Job Requestor then makes a call to the EVM contract (Polygon RPC call) to open up an Escrow. This will cost MATIC gas fees and GNUS tokens, TODO: Gasless fees how to do that?
#### Slicing
A slicer slices the Job into Macro Jobs, Micro jobs using block size that as predefined default values.
The slicing code will produce N+1 Microjobs. The +1 is the verification data in which the slicer selects 1 block from each of the other microjob blocks randomly and places them into the N+1 microjob. Nodes will not know if they are verifying or processing data.
The N+1 blocks use the same GPU code so will generate a hash for a block. The micro job saves hashes, not a single hash of the microjob, it saves a hash per block of the microjob.
The slicer will have predefine defines for the size of blocks in the code which can be overridden/changed in the dapp. For instance.
This is an example of the default values that can be used to slice the AI/ML data to be processed
```C++
#define MICROJOB_BLOCK_WIDTH = 256;
#define MCROJOB_BLOCK_HEIGHT = 256;
#define MICROJOB_X_BLOCK_COUNT = 4;
#define MICROJOB_Y_BLOCK_COUNT = 4;
#define MICROJOB_BLOCK_SIZE = (MICROJOB_BLOCK_WIDTH*MCROJOB_BLOCK_HEIGHT * sizeof(FLOAT32))
#define MICROJOB_SIZE = (MICROJOB_X_BLOCK_COUNT * MCROJOB__Y_BLOCK_COUNT) * MICROJOB_BLOCK_SIZE
```
This would make 1024x1024 \* 32-bit float data (4 MegaBytes of data) to process for a microjob.
A macro job could have 10 of these for 40 Megabytes of data.
A Job could have 5 of these for 200 Megabytes of data
The number of hashes generated would be 16 (MICROJOB\_X\_BLOCK\_COUNT \* MICROJOB\_Y\_BLOCK\_COUNT) for each microjob. These values are store with the processed data in the data storage (currently only IPFS).
## Finalization (Signing) of Microblocks
Once an Escrow is opened for a Job to be completed on the EVM blockchain (Ethereum, Polygon, etc). There are a few parameters stored in the blockchain for the job. These will all be used with [Zokrates](https://github.com/Zokrates/ZoKrates) Solidity code for verification
```Solidity
struct EscrowAIJob {
uint256 ownerAddress;
uint256 SliceParameterEncoding; // zkSnark encoding of slicing parameters & timestamp & previous Super Genius block hash
bool isFinalized;
};
```
Storage in Super Genius Blockchain DB/chain
```Solidity
struct ProcessedJobInfo {
uint microJobBlockNumber; // the index of the microjob processed
uint256 hashOfDataProcessed; // hash of the data processed
struct Hashes {
uint256 blockHash; // hash of base struct not including hashes & SliceParameterEncoding from AI Escrow Job & previous block hash
uint256 signature; // signature of everything except signedBlock
}
}
```
When calling Zokrates (ZKSnark) solidity code for signing of microjobs sets. Zokrates Implementation Info
* Assumes 10 microjob(s) \* 10 blocks processes + 1 verify job \* 10 blocks processed
* Last node of this job, sends all hashes in an array and internal Zokrates code gets JOB id and starting pseudo random number to pick out the verifier nodes hashes and can index other nodes hashes for verification.
* The Solidity contract can also verify the merkle nodes match back up to the root hash of microjobs processed
* This constructs the indices of the matches, step must be odd
* i.e. Found matching hashOfDataProcessed in microjob 1 at index 5 etc., indices should match SliceParameterEncoding
* Example (5, 6, 7, 8, 9, 0, 1, 2, 3, 4) hashed, step 1
* Another Example (5, 8, 1, 4, 7, 0, 3, 6, 9, 2) hashed, step 3
Pseudo Code function call in EVM contract. Zokrates encodes this into ZKSnark Solidity Code. Calls to RPC blockchain will be gas free since these are just public view (read-only) functions.
```Solidity
// Close Escrow Code
CloseEscrow(uint256 jobID, uint256 signature, uint256 prevBlockHash, ProcessedJobInfo[] jobInfo, address nodeProcessors[], uint256 amounts[]) public {
require(EscrowAI.Jobs[jobID].finalized != true);
require(verifyZKSignature(jobInfo, prevBlockHash));
_mintBatch(nodeProcessors, amounts);
// set internal job finalized and
EscrowAI.Jobs[jobID].finalized = true;
}
```
```Solidity
// Zokrates code
function getZKSignature(ProcessedJobInfo[] jobInfo, uint256 indexHash) public view returns (uint256 signature) {
uint256 indexStart, step = decode(EscrowAIJob.SliceParameterEncoding);
uint256 verifiedHashStart = (indexStart * step * 10) % 11;
uint verifiedIndex = 0;
uint matchingBlocks = 0;
for (uint i = indexStart; i < 10; i += step) {
if (jobInfo[i].hashOfDataProcessed == jobInfo[verifiedIndex++].hashOfDataProcessed) {
matchingBlocks++;
}
return keccak256(indexHash, matchingBlocks);
}
```
```Solidity
function verifyZKSignature(ProcessedJobInfo jobInfo, uint256 previousBlockHash) public view returns (boolean) {
return wasSigned(jobInfo.signature, EscrowAIJob.SlicingParameterEncoding, jobInfo.Hashes.blockHash, previousBlockHash);
}
```
---
source: /technical-information/super-genius-blockchain-technical-details/diagram-of-the-internal-blockchain-blocks-and-processing-functionality/
title: Diagram of the internal blockchain, blocks and processing functionality
---
# Diagram of the internal blockchain, blocks and processing functionality

---
source: /technical-information/super-genius-blockchain-technical-details/ipfs-pub-sub/
title: IPFS Pub Sub
---
# IPFS Pub Sub
## Description
Pub/Sub in general uses ifps-pubsub library which is using the libp2p [gossip protocol](https://docs.libp2p.io/concepts/publish-subscribe/)
All communications should be defined in OpenAPI yaml files under the project gRPCForSuperGenius.
The readme for how to generate C++ code is in the README.md in that project
## Processing pub/sub
After a processing block is in the database, the processing nodes (clients device), syncs to the database using CRDT system. Once they find a node to be processed they use pub/sub to Join or Create pub/sub room for processing a set of blocks.
On the SGNUS SDK side, it should be fairly straightforward to make functions for multiple devices, basically using pub/sub over ipfs to communicate to find microjobs. The node grabbing the job can break it up into 10 microjobs and publish a channel. The channel could have jobprocessing\_%BLOCKID% in which BLOCKID is the CRDT database node that contains the processing information.
Each of these rooms would then have a sub-room which is the microjobs #. For instance, if there are 1,000 sub-blocks to process, then there would be 100 1,000/10 microjob rooms.
jobprocessing\_%BLOCKID%\_%MICROJOB% pub/sub channel/room
The pub/sub ARE nodes to find microjobs, this is very similar to a game player looking for a lobby to join a peer-to-peer game.
The pub/sub to find jobs is basically a cache of jobs in the queue eventually.
Each processing node will use the function in Genius SDK to get MicroJob and then publish the results. Right now the processing can be stubbed out like this.
```cpp
// This comes from the Dapp and randomSeed if used to choose verifier block.
typedef struct _JOB {
UUID ipfsBlock; // source block data to be processed
unsigned long BlockLen; // and ipfs block's length in bytes
unsigned long BlockStride; // Stride to use for access pattern
unsigned long BlockLineStride; // Line stride in bytes to get to next block start
float randomSeed; // used to randomly choose verifier block
PUBSUBCHANNEL resultsChannel; // which channel to publish results to.
} JOB;
typedef struct _PROCESSSUBCHUNKS {
UUID chunkID; // unique process chunk ID
unsigned long Offset; // offset into data
unsigned long SubChunkWidth; // width of subchunk/subblock
unsigned long SubChunkHeight; // height of chunk/block
unsigned long Stride; // stride to use for overall data chunk
unsigned long LineStride; // stride of one line of data
unsigned long nSubChunks; // number of chunks to process
} PROCESSSUBCHUNKS;
typedef struct _MICROJOB {
UUID ipfsBlock; // source block data to be processed
PROCESSSUBCHUNK chunksToProcess[]; // array of chunks to process
unsigned long datalen; // length of ipfs Block?
PUBSUBCHANNEL resultsChannel; // channel to publish results to
} MICROJOB;
typedef struct _RESULTSMICROJOB {
unsigned long resultHash; // hash of results
unsigned long chunkHashes[]; // the hashes for each chunk
UUID ipfsResultsData; // UUID of the results data on ipfs
} RESULTSMICROJOB;
// node that created processing channel
DoProcessing(JOB *job) {
MICROJOBS microJobs[] = SplitJob(job);
for (unsigned long i = 0; i < microjobs; i++) {
PublishMessage(DoProcessing, micrfoJobs[i], uniquePeerID);
}
}
// each Peer ID
DoProcessing(MICROJOB *mjob, UUID peerID) {
if (peerID != myUUID) {
// won't validate because hash will be incorrect
return;
}
RESULTSMICROJOB resultsMicroJob = ProcessSubChunks(chunksToProcess[i], peerID);
unsigned long hashCode = peerID;
for (unsigned long i = 0; i< resultsMicroJob->chunkHashes.size; i+=) {
hashCode ^= resultsMicroJob->chunkHashes[i];
}
resultsMicroJob->results = hashCode;
AddSGNUSPendingBlock(resultsMicroJob);
PublishResults(resultsMicroJob);
}
}
```
## Handling of processing grid structure changes
If a host leaves, somebody else will have to take the position by either recreating the microjob list or grabbing it on the first entry into the room.
Also if a peer leaves the room (drops connection) or doesn't respond within XX timelimit for processing, they get kicked out of the room so another can process the data. Each room (pub/sub topic) also has a limit of # processors to join. Probably 11 to start. 10 processors and 1 verifier node. The verifier is randomly chosen and it is unknown by anybody even the verifier until all processing is done and they have to submit to SGNUS node that processing is complete and verified.
## Processing Chunks.
A Chunk structure is defined to allow widths and strides (line and block) to be able to define sub-blocks within a data stream.
---
source: /technical-information/super-genius-blockchain-technical-details/sg-consensus-algorithm-implementation/
title: SG Consensus Algorithm Implementation
---
# SG Consensus Algorithm Implementation
* SG Consensus algorithm is based on GOSSIP protocol.
* System uses libp2p library for P2P Gossip messaging.
**Gossip Message Types**
* BLOCK ANNOUNCE
* VERIFICATION
* TRANSACTIONS
* STATUS
* BLOCK REQUEST
Consensus protocol uses `VERIFICATION` gossip message for consensus process. There are two different types of VERIFICATION message
1. VOTE message
2. FIN message
There are three different types of Vote Messages\
\
**Primary Propose**\
Primary node broadcasts Primary Propose message to all nodes to validate a transaction.\
**Pre Vote**\
Nodes after receiving Primary Propose send Pre-Vote message (initial vote) to all other nodes.\
**Pre Commit**\
Nodes after receiving pre-votes from other nodes sends stronger commitment using pre-commit vote.
**Vote Message Format**\
\| `Voting Round Number` | `Membership Counter` | `Message Data` |
## Consensus Protocol Message Sequences
```mermaid
sequenceDiagram
PN->>N1: Primary Propose
PN->>N2: Primary Propose
N1->>N2: Pre-Vote
PN->>N1: Pre-Vote
PN->>N2: Pre-Vote
N2->>N1: Pre-vote
N2->>PN: Pre-Vote
N1->>PN: Pre-Vote
N2->>PN: Pre-Commit
PN->>N1: Pre-Commit
N2->>N1: Pre-Commit
N1->>PN: Pre-Commit
N1->>N2: Pre-Commit
PN->>N2: Pre-Commit
N1->>N2: Fin
PN->>N2: Fin
PN->>N1: Fin
N2->>PN: Fin
N1->>PN: Fin
N2->>N1: Fin
```
---
source: /technical-information/super-genius-blockchain-technical-details/account-creation-with-ecsda-and-el-gamal/
title: Account creation with ECSDA and El Gamal
---
# Account creation with ECSDA and El Gamal
#### System Overview
This system utilizes ECDSA (Elliptic Curve Digital Signature Algorithm) keys from a user's current wallet to initiate a multi-step process that securely manages and encrypts wallet keys and signatures. Specifically the Trust Wallet core functionality, upon which the GNUS wallet is based, initializes by importing addresses (e.g. BTC, ETH) or, otherwise, creating new ECDSA keys and addresses for these (non-GNUS) L1s. These will be called "Original Keys" and "Original Addresses". With each Original Key so imported or created, the GNUS wallet then generates additional keys and addresses ("Proxy Keys" and "Proxy Addresses") that, among other things, provides privacy of Original Addresses. That is, for tokens bridged in or out of the GNUS network, only Proxy Addresses appear on the GNUS network.
#### Step-by-Step Process
1. **ECDSA Proxy Address Generation**:
* Whenever a new Original Key is imported or created, the GNUS wallet will then generate a corresponding L1 proxy ECDSA key-pair and address ("Proxy Keys"). For this, the GNUS network retains a fixed set of predefined ElGamal key pairs ("Gate Keys"). The system signs (with the current private Original Key) a public Gate Key, selected as a function of the user's Original Key, and feeds this "K-Seed" into a [key-derivation-function.md](key-derivation-function.md "mention") (KDF), which deterministically returns a value ("Key Gen") to be used to generate the Proxy Key pairs and addresses.
2. **ElGamal Key Generation**:
* The KDF-derived Key Gen value is then also used to generate ElGamal encryption keys. This step introduces an additional layer of cryptographic security, enabling secure message encryption and decryption capabilities.
3. **Encryption with ElGamal Keys**:
* The system then utilizes one Gate Key to encrypt the K-Seed (ECDSA signature) and the private Proxy Key. This encrypted data ensures that sensitive information, such as signatures and private keys, is securely stored and transmitted.
4. **Regeneration of KDF Keys**:
* Users do not need to store their KDF keys across sessions. Instead, these keys can be deterministically regenerated using the original ECDSA signature. This feature simplifies key management and enhances security by reducing the need to store sensitive information.
5. **Integration with zk-SNARKs**:
* Although the newly derived KDF could theoretically be used in various cryptographic applications, its direct use as a prover key in a zk-SNARK system is unlikely due to the circuit-specific nature of zk-SNARK proofs and the requirement for a Universal Common Reference String (CRS). However, this does not preclude its use in other aspects of a zk-SNARK-based system or in ensuring privacy and security through other means.
A pseudo-code of the account creation is shown below:
```cpp
BitcoinNode CreateAccount( const ECDSA &prvt_key )
{
auto elgamal_pubkey_predefined = GetAddressFromTable();
auto cypher_signature = prvt_key.sign(elgamal_pubkey_predefined);
auto new_derived_key_value = GenerateKDF(cypher_signature);
BitcoinNode proxy_bitcoin_node(new_derived_key_value);
ELGamal new_keys_elgamal(new_derived_key_value);
auto encrypted_signature = new_keys_elgamal.encrypt(cypher_signature);
auto encrypted_kdf = new_keys_elgamal.encrypt(new_derived_key_value);
CRDT.store(encrypted_signature);
CRDT.store(encrypted_kdf);
return proxy_bitcoin_node;
}
```
#### Security and Privacy Implications
This system is designed with a focus on security and privacy, leveraging the strengths of ECDSA, KDF, and ElGamal encryption to protect user data and transactions. The ability to encrypt key information and signatures with ElGamal keys, coupled with the privacy offered by proxy addresses and the security of deterministic KDF key regeneration, provides a robust framework for secure and private cryptocurrency transactions.
#### Conclusion
The described cryptographic system offers a comprehensive approach to enhancing security and privacy in cryptocurrency transactions. By integrating ECDSA, KDF, and ElGamal encryption, and acknowledging the potential (though circuit-specific) integration with zk-SNARKs, it presents a sophisticated model for secure cryptographic operations within the blockchain ecosystem.
---
source: /technical-information/super-genius-blockchain-technical-details/key-derivation-function/
title: Key Derivation Function
---
# Key Derivation Function
This module creates a new derived value from an input data vector. The creation is deterministic and fast, aiming to generate a new value by hashing the input data. The output value derives new keys and consequently addresses.
The input data must map to a relation between a private ECDSA key and a public key value.
```
uint256_t GenerateKDF(const vector &data);
```
---
source: /technical-information/super-genius-blockchain-technical-details/el-gamal-encryption/
title: El Gamal encryption
---
---
description: The El Gamal scheme is used to provide asymmetric and homomorphic encryption
---
# El Gamal encryption
To enable safe sensitive data communication El Gamal was chosen due to its ability to have homomorphism and its asymmetric nature.
For each input number $$r$$ El Gamal encryption generates a pair of cypher text data $$C_1C_2$$using the public parameters prime $$p$$, generator $$g$$ and public key value $$x$$. The cypher text is not deterministic, meaning a randomness factor is inserted in the encryption, which increases the security of the encrypted data.
The decryption process also uses the public parameters $$p$$ and $$g$$ but needs the private key $$y$$ which defines the scheme as asymmetric.
El Gamal scheme by default has multiplicative homomorphism, meaning that the encryption of the multiplication of raw data is equal to the multiplication of encrypted data, i.e:
$$C_1C_2(x*y) = C_1C_2(x) * C_1C_2(y)$$
Although the application for this characteristic is not directly useful for this project, it indirectly allows additive homomorphism if we use the input data as exponents, being that multiplication of same base operands result in addition of its exponents, so this result in the following scheme for additive homomorphism:
$$C_1C_2(g^{x+y}) = C_1C_2(g^x) * C_1C_2(g^y)$$
This process has a downside as the resulting decryption will retrieve $$g^{x+y}$$instead of $$x+y$$. To retrieve the original data the ECDLP would have to be solved, which depending on size of $$x$$and $$y$$ is not feasible. However in zkSnarks context we intend to prove the validity of a transaction without needing to reveal the actual value, thus attending to the project's needs.
For data that doesn't require additive homomorphism there's no need to encode the original input as exponents, meaning the decryption will avoid having to solve the ECDLP. In this project the raw data encryption will also be used on other sensitive data, such as the KDF secret sharing.
---
source: /technical-information/super-genius-blockchain-technical-details/prover-specification/
title: Prover specification
---
---
description: The prover specification (variables, types, general structure)
---
# Prover specification
For each SuperGenius set of keys, the prover will generate a KDF, deriving a new shared secret to be used by the Verifier and Revealer. This secret can be used to derive a new Bitcoin/Ethereum address to avoid using the original address.
As mentioned in the KDF explanation, the account key will be composed of the currency address and the SuperGenius KDF private key:
```cpp
struct{
uint256 publicAddress; ///< Public BTC/ETH address
uint256 KDFPrivateKey; ///< KDF private key
std::Array proof; ///< proof of correctly created account
} EncryptedAccount;
```
The encryption of the data would then be verified in zkSnark and stored in SuperGenius in CRDT, under /Accounts/\/EncryptedAccount.
The transaction's structure will hold the number of transactions, GNUS token IDs, an El Gamal encrypted amount field, and a proof or an aggregate proof (folding, etc):
```cpp
struct {
uint256 nTransactions; ///< Non-encrypted number of tokenIDs and Amounts
uint256 tokenID[]; ///< Non-encrypted GNUS ERC1155 token IDs (could be child tokens array)
uint256 Amount[]; ///< Exponential El Gamal encrypted amounts
std::Array proof; ///< proof of valid account transfer
} Transactions;
```
---
source: /technical-information/super-genius-blockchain-technical-details/supergenius-processing-component-information/
title: SuperGenius processing component information
---
# SuperGenius processing component information
The SuperGenius processing component uses the ifps-pubsub gossip protocol, similar to how a game has a lobby system for a peer-to-peer game.
All SuperGenius nodes subscribe to the processing channel.
To begin processing a request is made to the channel for any open processing requests with a slot open. If a slot is open, the node joins the sub-channel processing- where UUID is a unique ID created by a processor node; see next section.
If no slots are open, the processing node grabs the block-lattice branch (database records) of their synced database records which have block data of request to process.
The node grabs the UUID from the db record and then opens up a processing- channel, and publishes the UUID to the main channel.
The channel publish/subscribe system uses ipfs-pubsub with communication protocol using gRPC.
---
source: /technical-information/super-genius-blockchain-technical-details/supergenius-processing-component-information/processing-worker-app-workflow/
title: Processing worker app workflow
---
# Processing worker app workflow
1. The application starts a local gRPC processing service to allow other processing peers to communicate with it.
```
processingServiceServer = new ProcessingServiceServer("localHost:port");
processingServiceServer->Run();
```
2. Application connects to the local GRPC processing service.
```
processingServiceClient = new ProcessingServiceClient("localHost:port");
```
3. The application requests a list of available processing room names (IDs) from a database.
```
roomList = processingServiceClient->GetRoomList();
```
4. Application sequentially tries to join a room from the room list.
```
foreach( room in roomList)
if (processingServiceClient->RoomJoin(room) == OK)
break;
```
5. If a room is joined, the application receives data to process and starts local data processing.
Once a result is calculated, the worker publishes it to the room.
```
if (processingServiceClient->RequestProcessingData("room", out data) == OK)
{
result = Calculation();
processingServiceClient->PublishProcessingResult(roomName, result);
}
```
NOTE: Since data processing is implemented on the application side, requesting a new processing sub-block from the application is easier than initiating the processing from the room host.
6. The worker replicates the room creator job if the processing data request fails. See details in [Paragraph 2](https://github.com/GeniusVentures/SuperGenius/wiki/2-Processing-Workflow#2processing-room-workflow)
```
if (processingServiceClient->RequestProcessingData("room", out data) != OK);
{
// Becomes a room manager
}
```
### 2 Processing room workflow
Assumptions: any processing node participles in a single processing room simultaneously.
1. If a room joining process fails, the application should create a new processing room and manage the processing.
```
data = RetrieveDataToProcess();
dataSubBlocks = SplitDataToChunks();
processingServiceClient->PublishDataToProcess(roomName, dataSubBlocks);
```
2. Once PublishDataToProcess() method is called the local gRPC service starts the room managing. Initially, it notifies other peers that the room host has changed:
```
PublishDataRoProcess(roomName, dataSubBlock)
{
SaveDataSublocks();
foreach(peer in peerList);
peer.processingService->OnHostChanged(currentPeerInfo);
}
```
3. When any peer joins the room, it sends the join request to the room Pub/Sub channel. The room host checks if the room peers' limit is not reached and either accepts the request or rejects it. See details in [Paragraph 4](https://github.com/GeniusVentures/SuperGenius/wiki/2-Processing-Workflow#4room-join-process)
```
RoomJoin(roomName, remotePeer)
{
channel = SubscribeToPubSubChannel(roomName);
peerList = channel.GetlPeerList();
if (peerList.size() <= 1)
ROOM_DOES_NOT_EXIST;
else
{
channel.Publish("Room join request")
{ CHECK_ASYNC_RESPONSE }
}
}
// On room host side
OnJoinRequestMessageReceived(message, peer)
{
if (peerList.size() < roomSizeLimit)
{
peerList.push_back(remotePeer);
createDirectConnection(remotePeer);
foreach(peer in peerList);
peer.processingService->OnPeerListChanged(peerList);
}
}
```
4. The room host keeps connections to remote peers. If a connection error occurs, the host removes the failed peer from the room peer list and notifies other peers about the list changes.
```
OnConnectionError(peer):
peerList.remove(peer);
peer.processingService->OnPeerListChanged(peerList);
```
5. When a data sub-block is requested, the host tracks the request time and peer. If a processing time limit is reached but the corresponding result is not received, the host excludes the peer from the processing room and notifies other peers about the peer list change.
6. If the room host leaves the room (due to a connection error, for instance), any other peer from the room should be able to take responsibility. Thus, another peer in the room should be notified when a worker requests data for processing.
```
RequestProcessingData(roomName, dataSubBlock)
{
dataSubBlock = FindDataSubBlock(out subBlockID);
foreach(peer in peerList);
peer.processingService->OnSubBlockProcessingStarted(subBlockID, currentTime);
}
```
### 3 Results accumulation and verification
1. On the gPRC service side, once a PublishProcessingResult(roomName, result) is called, the service gets a list of peers connected to the room and sends the result to all of them using direct gRPC connections.
```
foreach(peer in peerList);
peer.processingService->OnProcessed(result);
```
2. TODO: if results should be accumulated on the DApp side it is necessary to decide how to pass them to DApp from the gRPC service. I haven’t found a way to declare streams in YAML while Proto supports them. A stream could be passed as an input parameter to a service call, and results could be obtained from the stream on the DApp side.
### 4 Room join process
When a peer tries to join a room with a specified name (ID) it subscribes to the corresponding Pub/Sub channel with a topic=ID. Once it is subscribed, it can get a list of peers subscribed to the same topic. If the list contains more than one peer, the room exists. In general, not all peers subscribed to a channel can participate in processing because there is a limit to the number of workers that can be included in a processing room. To join the room, it is necessary to publish a message to the channel:
"Room join request" Once a room host receives the message, it decides whether the peer can be joined. If the answer is "yes" the host is directly connected to the peer and sends it a list of the room peers.
---
source: /technical-information/super-genius-blockchain-technical-details/supergenius-processing-component-information/job-processing-flow/
title: Job Processing Flow
---
# Job Processing Flow
All queueing of Jobs/MacroJobs/MicroJobs uses a locking queue with a timeout to handle node dropouts/disconnects when joining a room for a MicroJob or creating a MacroJob room. When querying open jobs (Jobs, MacroJobs, MicroJobs), it is the union of jobs that have exceeded the timestamp lock & jobs that have not been previously locked.
### Job Placement
DApp creates a Job:
1. DApp specifies the job code (shader/Tensorflow/OpenCL) and the URI to source from (IPFS/SFTP/WS/HTTPS).
2. DApp specifies Job data URI to source from (IPFS/SFTP/WS/HTTPS).
3. DApp fills a JobInfo structure, including Job slicing parameters and seed for the random number generator, and places it into CRDT.
4. Dapp Slices Job with slicing parameters and creates MacroJobs & MicroJobs with random IDs from random seed saving into the CRDT DB.
5. DApp doesn't need to wait until job completion as the Super Genius BlockChain will create blocks verified using zkSnarks.
### Processing node initialization
1. Once a Job processor is started, it is linked/synced to CRDT DB.
2. Create or Join Jobs PubSub Channel (first bootstrap node should do this)
### Job Processing
1. The job processor asks for open jobs via the PubSub Channel. If none exist, loop here (step 3)
2. Join Job{ID}/MacroJob PubSub channel
### MacroJob Processing
1. The Job processor asks for open MacroJobs from the PubSub Channel. CRDT is not used as MacroJobs storage.
2. if MacroJob open, Join Job{id}/MacroJob{id} Channel, goto 'MicroJob Processing'.
\*\*\* This can also, in the future, check for the locality of processing nodes
3. If no MacroJobs are open, go to 'Job Processing'.
4. **Create an in-memory MicroJob queue and set itself as the current queue owner. To create a validation MicroJob, a random number generator should be used with a seed equal to Job input seed + MacroJob index {id}**
5. **Create PubSub channel Job{id}/MacroJob{id} and notify the Job PubSub channel about the created MacroJob channel.**
6. Job Processor joins MacroJob PubSub Channel.
7. Go to MicroJob Processing
### MicroJob Processing
1. Job Processor requests for in-memory MicroJob queue via PubSub. Once a Microjob queue owner receives the request, it marks the requestor as the current queue owner and sends the queue to PubSub. Note: All Processors receive the updated in-memory queue, but only the current queue owner can operate with it.
2. The job processor receives the MicrJobs queue. If it is marked as the current queue, it checks for an open Microjob, marks it with timeout timestamp/lock, and notifies PubSub Channel.
3. The Job processor applies the coding algorithm for data blocks specified in the MicroJob.
4. The job processor writes MicroJob processing results into CRDT when the MicroJob processing is finished. a. Data should be written to IPFS b. CRDT record should be written with Job{ID}/MacroJob{ID}/MicroJob{ID} = data: { wallet address, hashes of processed blocks } + hash (Job{ID}/MacroJob{ID}/MicroJob{ID} & data) c. Job processor publishes to Job channel, 1 MicroJob is complete
5. Job Processor checks if the final MicroJob for a Job. If so, jump to Job Finalization.
6. Job processor checks if there are non-processed Micro Jobs and repeats p.1-6 until all Micro Jobs are processed.
7. Go to 'Macro Job Processing'
### Job Finalization.
1. When a Job processor finishes a MicroJob processing, it checks if the Job's MicroJob count finished equals the MicroJob count.
2. if not, go to Job Processing
3. Last, MicroJob scans MacroJobs and finds verifier hashes by checking all MicroJob hashes to see which matches the other ten nodes' hashes.
4. It sends this hash to the Smart Contract along with wallet addresses to release the Escrow
5. Smart Contract ZkSnark algorithm can verify because {ID}'s are generated from RandomSeed, encrypted with zkSnark
\*\*\* If the smart contract fails to verify. The culprit can be figured out by getting the index of the MacroJob verifier node and checking hashes against other non-verifier nodes to find the mismatch.
---
source: /technical-information/super-genius-blockchain-technical-details/super-genius-dag-blockchain/
title: Super Genius DAG Blockchain
---
# Super Genius DAG Blockchain
## Understanding the Super Genius Blockchain: An Optimized DAG-like Structure
The Super Genius blockchain introduces a groundbreaking way of organizing and verifying transactions. While not a conventional Directed Acyclic Graph (DAG) like IOTA or Nano, its structure is an **Optimized DAG-like System** designed for simplicity, efficiency, and the specific needs of the Super Genius token ecosystem. Let’s break it down for both developers and non-technical audiences.
***
### What is a DAG?
A Directed Acyclic Graph (DAG) is a data structure often used in blockchain and distributed systems that:
* **Directs**: Information flows in a single direction (parent to child).
* **Acyclic**: No loops or cycles are possible.
* **Graph**: Nodes (blocks or transactions) are connected by edges (relationships).
Traditional DAGs allow multiple parents and concurrent branches, enabling scalability and faster transaction processing. Our approach builds on these ideas with an **optimized, hierarchical design**.
***
### The Super Genius Blockchain Design
#### Hierarchical Structure
1. **Genesis Block**:\
The Genesis Block serves as the root and trusted foundation for the entire blockchain.
2. **Account Creation**:\
Each account creation is recorded as a transaction linked directly under the Genesis Block. These account blocks form independent branches.
3. **Transactions Under Accounts**:\
Each account becomes the root for a series of transactions, organized sequentially in a **linked list format** under that account.
#### Directionality and Parent-Child Relationships
Each transaction maintains a **parent-child relationship**:
* A "previous pointer" links each block to its parent.
* This unidirectional flow allows for easy traversal and ensures the structure remains acyclic (no loops).
#### Proof-Carrying Data for Validation
* Each block carries **Proof-Carrying Data** from its parent, enabling independent validation.
* To verify the validity of a block, only the current block and its parent need to be checked.
* The Genesis Block contains a **trusted proof**, ensuring that all subsequent transactions inherit its trustworthiness without requiring a full traversal.
***
### Why Call It an Optimized DAG-like Structure?
The Super Genius blockchain embodies key principles of DAGs while optimizing them for simplicity and efficiency:
* **Directed**: Blocks and transactions always reference their parent in a one-way flow.
* **Acyclic**: Cycles are impossible due to the parent-child structure and proof mechanism.
* **Graph-like**: The tree-like organization of accounts and transactions forms a specialized graph.
While traditional DAGs focus on parallel processing and multiple parent nodes, the Super Genius design simplifies this by organizing transactions into **hierarchical, account-based branches**. This provides the best of both worlds: the scalability and efficiency of a DAG with the clarity of a tree-like structure.
***
### Advantages of the Optimized DAG-like Design
1. **Efficient Validation**:\
By leveraging Proof-Carrying Data, only the current block and its parent need verification, significantly reducing computational overhead.
2. **Scalability**:\
Transactions are grouped by accounts, isolating them into independent chains. This reduces bottlenecks and simplifies processing.
3. **Trust and Security**:\
The Genesis Block acts as a trusted root, with validation cascading through its child blocks via Proof-Carrying Data.
4. **Developer-Friendly**:\
The clear hierarchical structure makes it easy for developers to build and maintain integrations.
***
### Key Takeaways for Developers and Non-Technical Audiences
* The Super Genius blockchain is an **Optimized DAG-like System** that combines linked lists, trees, and DAG principles into a streamlined, efficient design.
* This structure ensures faster, cheaper, and secure transactions while maintaining trust through Proof-Carrying Data.
* Developers benefit from its simplicity and efficiency, while end-users enjoy better performance and reliability.
***
By adopting this **Optimized DAG-like Structure**, the Super Genius blockchain sets a new standard for decentralized systems, offering a practical, high-performance solution for modern applications and token ecosystems.
---
source: /technical-information/super-genius-blockchain-technical-details/minimal-proof-mountain/
title: Minimal MMR Proof System with UTXOs
---
# Minimal MMR Proof System with UTXOs
The GNUS.ai blockchain architecture leverages a combination of Merkle Mountain Range (MMR) with Unspent Transaction Outputs (UTXOs) and Nova over PLONK for Incrementally Verifiable Computations (IVC). This design enhances scalability, security, and efficiency within the blockchain ecosystem.
### Key Components
1. **Merkle Mountain Range (MMR) with UTXOs:**
* MMR provides an efficient, append-only data structure via a CRDT database
* Nodes store only the Genesis Node, their branch node, and the last two UTXOs.
2. **Nova over PLONK for IVC:**
* Using Placeholder Proof System in C++
* Nova enables efficient folding schemes.
* PLONK provides succinct, zero-knowledge proofs.
* Proofs are incrementally updated from the Genesis block through branch nodes to individual UTXOs.
```mermaid fullWidth="false"
graph TD
A[Genesis Proof]
B["Account 1 (Branch) Proof"]
C["Account 2 (Branch) Proof"]
D[UTXO 1A Proof]
E[UTXO 1B Proof]
F[UTXO 2A Proof]
G[UTXO 2B Proof]
A --> B
A --> C
B --> D
D --> E
C --> F
F --> G
```
### Detailed Mechanism
1. **Genesis Node and Proof:**
* The Genesis Node contains the initial state.
* An IVC proof is established at the Genesis Node using Nova over PLONK.
2. **Branch Node (Account Creation):**
* New accounts create branch nodes from the Genesis Node.
* The proof for the branch node is an incremental proof based on the Genesis proof.
3. **Transaction and UTXO Handling:**
* Each transaction creates a new UTXO, generating an incremental proof.
* Nodes store the last two unspent UTXOs, reducing storage requirements.
* Each UTXO transaction is verifiable within the branch’s incremental proof chain.
4. **Incremental Verification:**
* New proofs build on previous proofs, ensuring efficiency.
* Only the Genesis proof, branch proof, and recent UTXOs are needed for verification.
### Benefits
1. **Scalability:**
* Reduced storage requirements per node.
* Efficient verification without storing the entire chain.
2. **Security:**
* Zero-knowledge proofs ensure data privacy.
* Incremental proofs maintain integrity and trust.
3. **Efficiency:**
* Fast proof generation and verification.
* Simplified storage and data retrieval.
---
source: /technical-information/super-genius-blockchain-technical-details/cross-chain-bridging-to-supergenius/
title: Cross-chain Bridging through SuperGenius
---
# Cross-chain Bridging to SuperGenius
The GNUS.ai cross-chain watcher and minting system employs a decentralized network of nodes to monitor and interact with multiple blockchains, including EVM-compatible chains and Bitcoin ordinals. Using IPFS-lite and libp2p for communication, the system processes relevant transactions, initiates minting requests, and handles cross-chain bridging. A Proof of Reputation mechanism, involving high-reputation nodes, verifies and approves these requests before execution on a custom L1 blockchain. The system now includes bridging capabilities, allowing for the burning of tokens on the L1 SuperGenius C++ blockchain and minting of corresponding tokens on EVM chains or Bitcoin Ordinals. This architecture enables seamless interaction and token transfer across different blockchain ecosystems, with built-in scalability for future expansion to additional networks.
1. Decentralized Watcher Group:
* Composed of nodes that watch multiple blockchains via RPC.
* Monitors EVM-compatible chains, Bitcoin ordinals, and potentially other chains in the future.
* When a relevant transaction is detected, it prepares a minting, bridging in, or bridging out request.
* Nodes reach consensus on the latest transaction ID for all operations.
2. IPFS-lite and libp2p:
* Provides the decentralized communication infrastructure.
* Sets up pub/sub channels for nodes to communicate.
3. Consensus and Verification System:
* Receives minting, bridging in, and bridging out requests from the watcher group.
* Nodes agree on the latest transaction ID for each operation.
* Uses zkSnarks to verify the validity of transactions.
* zkSnarks and recursive snarks are employed to aggregate and validate transaction data from previous transactions.
4. L1 SuperGenius Blockchain (in C++):
* The underlying blockchain where minting occurs and tokens can be burned for bridging out.
* Receives and processes approved minting and bridging transactions.
5. Solidity Contracts:
* Deployed on multiple EVM chains.
* Interact with the main system, possibly triggering events that the watcher group monitors.
* Include ERC-1155 smart contracts for hierarchical token management.
6. Bridging Functionality:
* Bridging In: Allows for burning tokens on external chains and minting on the L1 SuperGenius blockchain.
* Bridging Out: Facilitates burning tokens on the L1 SuperGenius blockchain and minting on target chains.
* Trusted nodes have gas fees and signing authority to mint tokens on the target EVM chain or Bitcoin Ordinals.
* Manages bridging of child tokens in the EVM contract, maintaining a hierarchical token system under the Genius Tokens & NFT Collections contract.
Here's how the process flows, including bridging out:
1. The watcher group monitors transactions on various blockchains (EVM-compatible chains, Bitcoin ordinals, etc.).
2. When a relevant transaction is detected (minting, bridging in, or bridging out), a watcher node prepares the appropriate request.
3. The request is sent through the IPFS-lite/libp2p pub/sub channel, including:
* The function call (mint, bridge in, or bridge out)
* The source chain ID
* The transaction ID
* For bridging out: the target chain ID and token details
4. Nodes in the network reach consensus on the latest transaction ID for the operation.
5. zkSnarks are used to verify the validity of the transaction, including aggregating data from previous transactions.
6. If the verification passes:
* For minting or bridging in: the approved transaction is sent to the L1 SuperGenius blockchain for execution.
* For bridging out: the burn transaction is executed on the L1 SuperGenius blockchain.
7. For bridging out:
* Trusted nodes with appropriate permissions receive the bridge out request.
* These nodes use their gas fees and signing authority to mint the corresponding tokens on the target chain (EVM or Bitcoin Ordinals).
* The minting includes creating the appropriate hierarchical structure in the ERC-1155 smart contract on the target chain.
For our implementation of this architecture, we have:
1. Implemented a robust RPC client in C++ capable of interacting with various blockchains.
2. Developed an efficient consensus mechanism for nodes to agree on the latest transaction IDs.
3. Implemented zkSnark verification for transaction validation and data aggregation.
4. Designed and built a flexible pub/sub system using IPFS-lite and libp2p that handles different types of messages (e.g., minting requests, bridging in/out requests, verification results).
5. Created a standardized format for minting and bridging (in/out) requests that includes all necessary information.
6. Implemented proper error handling and recovery mechanisms throughout the system.
7. Ensured the system's scalability to handle future expansion to other chains like Solana.
8. Developed secure mechanisms for trusted nodes to hold and manage gas fees and signing authorities for different target chains.
9. Implemented a secure system for managing and updating the list of trusted nodes with bridging out permissions.
10. Created a mechanism to track and maintain the hierarchical token structure across different chains during bridging operations.
We are now in the process of integrating these subcomponents into a cohesive system, fine-tuning their interactions, and conducting comprehensive testing to ensure smooth operation across various blockchain ecosystems.
```mermaid
graph TD
A[EVM Compatible Blockchain] -->|Watch via RPC| B[Decentralized Watcher Group]
C[Bitcoin Ordinals] -->|Watch via RPC| B
B -->|Send mint/bridge function| D[IPFS-lite/libp2p Pub/Sub Channel]
D -->|Mint/Bridge request| E[Proof of Reputation System]
E -->|Pre-check| F[RPC Verification]
F -->|Verify transaction| E
E -->|Agree on minting/bridging| G[L1 SuperGenius Blockchain in C++]
H[Solidity Contracts] -->|Interact| A
I[Other Non-EVM Chains] -.->|Future expansion| B
G -->|Burn tokens| J[Bridging Process]
J -->|Mint tokens| K[EVM Contract/Bitcoin Ordinals]
K -->|Hierarchical Tokens| L[ERC-1155 Smart Contract]
E -->|Authorize and Sign| J
```
---
source: /technical-information/super-genius-blockchain-technical-details/cross-chain-bridging-to-supergenius/overview/
title: Overview of Technical Details for Cross-Chain Bridging Flow
---
# Overview of Cross-Chain Bridging Flow
The cross-chain bridging mechanism facilitates a secure and decentralized message verification across multiple chains. The flow includes ownership acquisition, leader election, message verification, and the final submission to the destination chain. Each part of the system has specific roles for ensuring scalability, decentralization, and resilience.
## Flow Components
1. **Message Creation and Leader Election**
2. **Leader Ownership and Verification Channel Creation**
3. **Node Verification and Voting**
4. **Signature Collection and Aggregation**
5. **Destination Chain Submission and Validation**
We'll start with the **Message Creation and Leader Election** process and build upon that progressively.
---
source: /technical-information/super-genius-blockchain-technical-details/cross-chain-bridging-to-supergenius/message-creation-leader-election/
title: Message Creation and Leader Election
---
# Message Creation and Leader Election
## Message Creation
- **Trigger Event**: The message verification process starts when a new event (e.g., a token burn) occurs on the source chain.
- **Queue Job Creation**: The event is recorded as a job in a distributed CRDT-based queue that manages subtasks.
- **Job State**: Jobs in the queue have states such as "pending", "in progress", and "completed".
## Leader Election
- **Leader Election Trigger**: Nodes connected to the network observe the pending jobs and attempt to acquire ownership using a distributed lock.
- **Lock Mechanism**: Ownership is requested through a CRDT lock, which guarantees that only one node successfully acquires the job to proceed as the leader.
```cpp
// Function to attempt leader election for a message job
bool attemptOwnership(Job job) {
bool lockAcquired = job_lock.tryAcquire(job.id);
if (lockAcquired) {
log("Node " + nodeId + " has become the leader for job " + job.id);
becomeLeader(job);
}
return lockAcquired;
}
```
## Topic Creation by Leader
- **Leader Creates Channel**: The node that acquires ownership becomes the leader and creates a new IPFS pub/sub topic for message verification.
- **Announcement**: The leader node announces the creation of the channel, inviting other nodes to join.
```cpp
void becomeLeader(Job job) {
std::string topic = createVerificationTopic(job);
setupPubSubChannel(topic);
inviteNodesToChannel(topic);
}
```
## Diagram: Leader Election Flow
```mermaid
sequenceDiagram
participant Node A
participant Node B
participant Node C
participant CRDT Queue
Node A->>CRDT Queue: Request ownership of Job X
Node B->>CRDT Queue: Request ownership of Job X
Node C->>CRDT Queue: Request ownership of Job X
CRDT Queue-->>Node A: Ownership Granted
Node A->>Node B & Node C: Announce Leadership and Invite
Node B->>Node A: Join Verification Channel
Node C->>Node A: Join Verification Channel
```
---
source: /technical-information/super-genius-blockchain-technical-details/cross-chain-bridging-to-supergenius/verification-channel-creation/
title: Leader Ownership and Verification Channel Creation
---
# Leader Ownership and Verification Channel Creation
## Channel Creation
- **Pub/Sub Setup**: Once the leader is determined, it creates a verification channel on IPFS pub/sub. This channel acts as the communication medium for all selected nodes participating in verification.
- **Inviting Participants**: The leader sends out an invitation to other nodes to join the channel and contribute to verification.
## Ownership Persistence
- **Lock Persistence**: The job remains in the queue with the leader’s node ID. If the leader fails or disconnects, the job remains, and other nodes can attempt to acquire the ownership.
```cpp
void setupPubSubChannel(std::string topic) {
log("Leader setting up verification channel: " + topic);
pubsub.createTopic(topic);
}
void inviteNodesToChannel(std::string topic) {
log("Inviting nodes to channel: " + topic);
pubsub.inviteToTopic(topic, selectedNodes);
}
```
---
source: /technical-information/super-genius-blockchain-technical-details/cross-chain-bridging-to-supergenius/node-verification-voting/
title: Node Verification and Voting
---
# Node Verification and Voting
## Node Participation in Verification
- **Joining the Channel**: Nodes that receive an invitation from the leader join the IPFS pub/sub channel.
- **Verification Task**: Each node verifies the message according to predefined criteria (e.g., checking transaction validity, ensuring it meets consensus rules).
## Voting on Message Validity
- **Vote Casting**: Once verification is complete, nodes cast their vote on whether the message is valid.
- **Vote Signing**: Nodes sign their vote using their private keys to ensure authenticity.
```cpp
void participateInVerification(std::string topic, Message message) {
log("Node " + nodeId + " joining verification channel: " + topic);
pubsub.subscribeToTopic(topic);
bool isValid = verifyMessage(message);
std::string vote = isValid ? "valid" : "invalid";
std::string signedVote = signVote(vote);
pubsub.publishVote(topic, signedVote);
}
```
## Verification Flow Diagram
```mermaid
sequenceDiagram
participant Node A
participant Verification Channel
Node A->>Verification Channel: Subscribe to Topic
Verification Channel->>Node A: Verification Task
Node A->>Verification Channel: Publish Signed Vote
```
---
source: /technical-information/super-genius-blockchain-technical-details/cross-chain-bridging-to-supergenius/signature-collection-aggregation/
title: Signature Collection and Aggregation
---
# Signature Collection and Aggregation
## Collecting Votes
- **Leader Collects Votes**: The leader collects signed votes from all participating nodes in the verification channel.
- **Threshold for Consensus**: A predefined threshold (e.g., majority or supermajority) is used to determine if the message is valid.
## Signature Aggregation
- **Aggregating Signatures**: To reduce data size, signatures are aggregated using schemes like BLS (Boneh–Lynn–Shacham) signatures, resulting in a single compact signature that represents the collective votes.
```cpp
void collectAndAggregateVotes(std::string topic) {
log("Leader collecting votes on topic: " + topic);
std::vector votes = pubsub.collectVotes(topic);
std::string aggregatedSignature = aggregateSignatures(votes);
log("Aggregated Signature: " + aggregatedSignature);
}
```
## Vote Collection Flow Diagram
```mermaid
sequenceDiagram
participant Leader
participant Node A
participant Node B
Leader->>Node A: Request Vote
Node A->>Leader: Send Signed Vote
Leader->>Node B: Request Vote
Node B->>Leader: Send Signed Vote
Leader->>Leader: Aggregate Signatures
```
---
source: /technical-information/super-genius-blockchain-technical-details/cross-chain-bridging-to-supergenius/destination-chain-submission-validation/
title: Destination Chain Submission and Validation
---
# Destination Chain Submission and Validation
## Submission to Destination Chain
- **Sending the Proof**: The aggregated signature and verification results are packaged and sent to the destination chain for processing.
- **Transaction Creation**: A transaction is created on the destination chain that includes the message, the aggregated signature, and any supporting data.
```cpp
void submitToDestinationChain(Message message, std::string aggregatedSignature) {
log("Submitting verification result to destination chain");
Transaction tx = createTransaction(message, aggregatedSignature);
destinationChain.submitTransaction(tx);
}
```
## Validation on Destination Chain
- **Smart Contract Validation**: A smart contract on the destination chain verifies the aggregated signature to ensure that the message was validated by the required number of nodes.
- **State Update**: If the verification is successful, the state on the destination chain is updated accordingly (e.g., minting tokens, updating balances).
```solidity
function validateAndProcess(bytes memory message, bytes memory aggregatedSignature) public {
require(verifyAggregatedSignature(message, aggregatedSignature), "Invalid signature");
// Proceed with state update
}
```
## Submission and Validation Flow Diagram
```mermaid
sequenceDiagram
participant Leader
participant Destination Chain
Leader->>Destination Chain: Submit Aggregated Signature
Destination Chain->>Destination Chain: Verify Signature
Destination Chain->>Destination Chain: Update State
```
---
source: /technical-information/hybrid-smart-contract/
title: Hybrid Smart Contract
---
# Hybrid Smart Contract
The GNUS.ai smart contract is a hierarchical container for ERC-1155 tokens, and the GNUS token is an ERC-20 token.
---
source: /technical-information/hybrid-smart-contract/gnus.ai-ecosystem-a-unified-network-of-intelligence/
title: GNUS.ai Ecosystem: A Unified Network of Intelligence
---
# GNUS.ai Ecosystem: A Unified Network of Intelligence
#### **Table 1: GNUS.ai Ecosystem Overview**
| **Component** | **Description** | **Relationship** |
| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Super Genius Token (SGNUS)** | The top-tier token, operating on its own **Super Fast DAG blockchain**. Bridges seamlessly to multiple L1s like Ethereum, Polygon, and Bitcoin. | Acts as the **L0 orchestrator**, managing interoperability and acting as the central hub for GNUS tokens and Genius Savant Tokens. |
| **GNUS Token** | Parent token operating on traditional L1 blockchains (e.g., Ethereum, Polygon). Represents the intelligence core on these platforms. | Converts 1:1 with SGNUS tokens via the bridging mechanism and is subdivided into **Minions** for micro-interactions. |
| **Minions (Subunits)** | The smallest divisible unit of GNUS tokens, allowing for microtransactions and precise value representation. | **Subunits of GNUS/SGNUS tokens**. Savant Tokens use Minions for conversion rates, enabling flexibility in their value relative to GNUS/SGNUS. |
| **Genius Savant Tokens** | Specialized tokens (e.g., Game, Energy Efficiency) designed for specific tasks within the GNUS.ai ecosystem. | Can utilize **multiple Minions** or a fraction of them to define conversion rates to GNUS/SGNUS, reflecting their value or task-specific utility. |
***
#### **Table 2: Genius Savant Token Examples**
| **Savant Token** | **Use Case** | **Description** | **Minion Conversion** |
| ---------------------------------- | ------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| **Game Savant Token** | Gaming companies like Graffiti Entertainment. | Facilitates gaming-related tasks such as player reward systems, in-game transactions, and blockchain-based game integrations. | Conversion based on in-game activity or compute tasks, e.g., 1 Game Savant Token = 10,000 Minions. |
| **Energy Efficiency Savant Token** | Energy management companies like Energy Cloud, Inc. | Powers tasks related to energy optimization, smart grid management, and decentralized energy data collection. | Conversion tied to energy usage metrics or verified data contributions. |
| **Healthcare Savant Token** | AI-focused healthcare applications or companies. | Supports tasks such as medical imaging analysis, patient data processing, or telemedicine services. | Conversion reflects AI processing time or verified patient data contributions. |
| **Education Savant Token** | Educational apps and platforms. | Enables gamified learning experiences, AI-based tutoring, or decentralized certificate verification. | Conversion linked to student engagement or completed tasks. |
| **Creative Savant Token** | Creative companies handling design, media, and content generation. | Facilitates AI-powered creative tools such as image generation, video editing, or animation. | Conversion based on the compute intensity of creative outputs. |
| **Finance Savant Token** | Fintech platforms leveraging decentralized AI and blockchain tools. | Supports fraud detection, risk analysis, and decentralized financial data modeling. | Conversion based on the value of financial transactions or analysis performed. |
***
#### **System Design**
**Hierarchy and Token Relationships**
1. **Super Genius Token (SGNUS)**:
* Operates as the **L0 orchestrator**, bridging and coordinating across multiple L1 blockchains (e.g., Ethereum, Polygon, Bitcoin).
* Enables interoperability and global coordination for GNUS Tokens and Savant Tokens.
2. **GNUS Token**:
* The parent token on traditional L1 blockchains.
* Acts as a localized instance of the Genius network and converts 1:1 with SGNUS via bridging.
3. **Minions**:
* Subunits of GNUS/SGNUS tokens, allowing for precision in transactions and representing micro-units of value.
* Serve as the universal conversion medium between Genius Savant Tokens and GNUS/SGNUS tokens.
4. **Genius Savant Tokens**:
* Specialized tokens tied to specific applications or industries.
* Use **Minions** to define conversion rates, reflecting their value and task-specific utility.
**Conversion Mechanism**
* **Minions as Universal Subunits**:
* Example: 1 Genius Savant Token = 10,000 Minions.
* 1 GNUS Token = 1,000,000 Minions.
* Savant Tokens leverage Minions to reflect task complexity, usage metrics, or demand.
---
source: /technical-information/hybrid-smart-contract/structure/
title: Structure
---
# Structure
Structure for the Smart Contract Token/NFT Collection (ERC-1155)
```solidity
struct NFT {
string name; // Token/NFT Name
string symbol; // Token/NFT Symbol
string uri; // Token/NFT URI for metadata
uint256 exchangeRate; // Only for withdrawing to GNUS
uint256 maxSupply; // Maximum supply of NFTs
address creator; // The creator of the token, as an ERC-20 address
uint128 childCurIndex; // The current childNFT count created
bool nftCreated; // If there is a mapping/token created
}
```
Hierarchical Structure
```
- GNUS Token (ID 0)
- Game Studio 1 Token (ID 0.1)
- Game 1 Token (ID 1.2)
- NFT 3 (ID 2.3)
- Game 3 Token (ID 1.4)
- NFT 6 (ID 4.5)
- Assistance App Token (ID 0.6)
- Solo Game 1 Token (ID 0.7)
- NFT 1 (ID 7.8)
- NFT 2 (ID 7.9)
- Healthcare App Token (ID 0.A)
- Country 1 Token (ID 0.B)
- Game Studio 2 Token (ID B.C)
- Game 2 Token (ID C.D)
- NFT 4 (ID D.E)
- Game 4 Token (ID C.F)
- NFT 5 (ID F.10)
- ISP Token (ID B.11)
- Finance App Token (ID 0.12)
```
---
source: /technical-information/hybrid-smart-contract/structure/structure-details/
title: Structure Details
---
# Structure Details
#### Sample Details for Each Token/NFT
1. **GNUS Token (ID 0)**
* Name: GNUS
* Symbol: GNUS
* URI: URI for GNUS metadata
* Exchange Rate: (set value)
* Max Supply: (set value)
* Creator: (creator address)
* ChildCurIndex: (current child count)
* nftCreated: true
2. **Game Studio 1 Token (ID 0.1)**
* Name: Game Studio 1
* Symbol: GST
* URI: URI for Game Studio 1 metadata
* Exchange Rate: (set value)
* Max Supply: (set value)
* Creator: (creator address)
* ChildCurIndex: (current child count)
* nftCreated: true
3. **Game 1 Token (ID 1.2)**
* Name: Game 1
* Symbol: G1T
* URI: URI for Game 1 metadata
* Exchange Rate: (set value)
* Max Supply: (set value)
* Creator: (creator address)
* ChildCurIndex: (current child count)
* nftCreated: true
4. **NFT 3 (ID 2.3)**
* Name: NFT 3
* Symbol: NFT3
* URI: URI for NFT 3 metadata
* Exchange Rate: (set value)
* Max Supply: (set value)
* Creator: (creator address)
* ChildCurIndex: (current child count)
* nftCreated: true
5. **Game 3 Token (ID 1.4)**
* Name: Game 3
* Symbol: G3T
* URI: URI for Game 3 metadata
* Exchange Rate: (set value)
* Max Supply: (set value)
* Creator: (creator address)
* ChildCurIndex: (current child count)
* nftCreated: true
6. **NFT 6 (ID 4.5)**
* Name: NFT 6
* Symbol: NFT6
* URI: URI for NFT 6 metadata
* Exchange Rate: (set value)
* Max Supply: (set value)
* Creator: (creator address)
* ChildCurIndex: (current child count)
* nftCreated: true
7. **Assistance App 1 Token (ID 0.6)**
* Name: App 1
* Symbol: A1T
* URI: URI for App 1 metadata
* Exchange Rate: (set value)
* Max Supply: (set value)
* Creator: (creator address)
* ChildCurIndex: 0
* nftCreated: true
8. **Solo Game 1 Token (ID 0.7)**
* Name: Solo Game 1
* Symbol: SGT
* URI: URI for Solo Game 1 metadata
* Exchange Rate: (set value)
* Max Supply: (set value)
* Creator: (creator address)
* ChildCurIndex: (current child count)
* nftCreated: true
9. **NFT 1 (ID 7.8)**
* Name: NFT 1
* Symbol: NFT1
* URI: URI for NFT 1 metadata
* Exchange Rate: (set value)
* Max Supply: (set value)
* Creator: (creator address)
* ChildCurIndex: (current child count)
* nftCreated: true
10. **NFT 2 (ID 7.9)**
* Name: NFT 2
* Symbol: NFT2
* URI: URI for NFT 2 metadata
* Exchange Rate: (set value)
* Max Supply: (set value)
* Creator: (creator address)
* ChildCurIndex: (current child count)
* nftCreated: true
11. Healthcare (0.A)
* Name: Healthcare
* Symbol: HCA
* URI: URI for Country 1 metadata
* Exchange Rate: (set value)
* Max Supply: (set value)
* Creator: (creator address)
* ChildCurIndex: (current child count)
* nftCreated: true
12. **Country 1 Token (ID 0.B)**
* Name: Country 1
* Symbol: C1T
* URI: URI for Country 1 metadata
* Exchange Rate: (set value)
* Max Supply: (set value)
* Creator: (creator address)
* ChildCurIndex: (current child count)
* nftCreated: true
13. **Game Studio 2 Token (ID B.C)**
* Name: Game Studio 2
* Symbol: GS2T
* URI: URI for Game Studio 2 metadata
* Exchange Rate: (set value)
* Max Supply: (set value)
* Creator: (creator address)
* ChildCurIndex: (current child count)
* nftCreated: true
14. **Game 2 Token (ID C.D)**
* Name: Game 2
* Symbol: G2T
* URI: URI for Game 2 metadata
* Exchange Rate: (set value)
* Max Supply: (set value)
* Creator: (creator address)
* ChildCurIndex: (current child count)
* nftCreated: true
15. **NFT 4 (ID D.E)**
* Name: NFT 4
* Symbol: NFT4
* URI: URI for NFT 4 metadata
* Exchange Rate: (set value)
* Max Supply: (set value)
* Creator: (creator address)
* ChildCurIndex: (current child count)
* nftCreated: true
16. **Game 4 Token (ID C.F)**
* Name: Game 4
* Symbol: G4T
* URI: URI for Game 4 metadata
* Exchange Rate: (set value)
* Max Supply: (set value)
* Creator: (creator address)
* ChildCurIndex: (current child count)
* nftCreated: true
17. **NFT 5 (ID F.10)**
* Name: NFT 5
* Symbol: NFT5
* URI: URI for NFT 5 metadata
* Exchange Rate: (set value)
* Max Supply: (set value)
* Creator: (creator address)
* ChildCurIndex: (current child count)
* nftCreated: true
18. **ISP (ID B.11)**
* Name: ISP
* Symbol: ISP
* URI: URI for ISP metadata
* Exchange Rate: (set value)
* Max Supply: (set value)
* Creator: (creator address)
* ChildCurIndex: 0
* nftCreated: true
19. **Finance App Token (ID 0.12)**
* Name: App 2
* Symbol: A2T
* URI: URI for App 2 metadata
* Exchange Rate: (set value)
* Max Supply: (set value)
* Creator: (creator address)
* ChildCurIndex: 0
* nftCreated: true
---
source: /technical-information/hybrid-smart-contract/encoded-ids/
title: Encoded IDs
---
# Encoded IDs
#### Explanation
* **Upper 128 bits**: Represent the parent token ID in the hierarchy. This ensures that each child token can trace its parent.
* **Lower 128 bits**: Represent the child token ID. This uniquely identifies the child token within the context of its parent.
In this representation, each token and NFT has a globally unique lower 128-bit ID, ensuring no placeholders are used. Each new token or NFT increments a global counter to maintain uniqueness.
1. **GNUS Token**
* ID: `0x0000000000000000000000000000000000000000000000000000000000000000`
2. **Game Studio 1 Token (Child of GNUS)**
* ID: `0x0000000000000000000000000000000000000000000000000000000000000001`
3. **Game 1 Token (Child of Game Studio 1)**
* ID: `0x0000000000000000000000000000000100000000000000000000000000000002`
4. **NFT 3 (Child of Game 1)**
* ID: `0x0000000000000000000000000000000100000000000000000000000000000003`
5. **Game 3 Token (Child of Game Studio 1)**
* ID: `0x0000000000000000000000000000000100000000000000000000000000000004`
6. **NFT 6 (Child of Game 3)**
* ID: `0x0000000000000000000000000000000100000000000000000000000000000005`
7. **Assistance App 1 Token (Child of GNUS)**
* ID: `0x0000000000000000000000000000000000000000000000000000000000000006`
8. **Solo Game 1 Token (Child of GNUS)**
* ID: `0x0000000000000000000000000000000000000000000000000000000000000007`
9. **NFT 1 (Child of Solo Game 1)**
* ID: `0x0000000000000000000000000000000300000000000000000000000000000008`
10. **NFT 2 (Child of Solo Game 1)**
* ID: `0x0000000000000000000000000000000300000000000000000000000000000009`
11. **Healthcare App Token (Child of GNUS)**
* ID: `0x000000000000000000000000000000000000000000000000000000000000000A`
12. **Country 1 Token (Child of GNUS)**
* ID: `0x000000000000000000000000000000000000000000000000000000000000000B`
13. **Game Studio 2 Token (Child of Country 1)**
* ID: `0x000000000000000000000000000000050000000000000000000000000000000C`
14. **Game 2 Token (Child of Game Studio 2)**
* ID: `0x000000000000000000000000000000050000000000000000000000000000000D`
15. **NFT 4 (Child of Game 2)**
* ID: `0x000000000000000000000000000000050000000000000000000000000000000E`
16. **Game 4 Token (Child of Game Studio 2)**
* ID: `0x000000000000000000000000000000050000000000000000000000000000000F`
17. **NFT 5 (Child of Game 4)**
* ID: `0x0000000000000000000000000000000500000000000000000000000000000010`
18. **ISP App Token (Child of Country 1)**
* ID: `0x0000000000000000000000000000000500000000000000000000000000000011`
19. Finance App
* ID: `0x0000000000000000000000000000000000000000000000000000000000000012`
---
source: /technical-information/our-smart-contract-testing-philosophy/
title: Our Smart Contract Testing Philosophy
---
# Our Smart Contract Testing Philosophy
### Our Smart Contract Testing Philosophy
At Genius Ventures, we don't stop at just unit testing. While many engineers focus solely on unit testing their smart contracts, we take a more comprehensive approach by combining both **Unit** and **Functional Testing** to ensure our smart contracts work in real-world applications.
#### Why TypeScript for Testing?
We use **TypeScript** for our smart contract tests. Here's why:
* **Comprehensive Testing**: With TypeScript, we can perform both unit tests (validating the internal logic of the contract) and functional tests (simulating real-world scenarios).
* **Real-World Interactions**: TypeScript allows us to interact with actual wallets like Metamask, run transactions, and test user flows.
***
#### Traditional Frameworks: What's Missing?
Traditional Solidity testing frameworks like Truffle, Brownie, and Forge Foundry are excellent for fast unit testing but often miss the mark when it comes to full functional testing.
* **Unit Testing**: These frameworks are great for creating mocks or stubs for unit tests.
* **Functional Testing**: They usually lack built-in support for real-world integrations, requiring external tools for wallet interactions, private keys, and more.
```mermaid
graph TD
A[Traditional Testing Frameworks] --> B[Unit Testing Only]
A --> C[Mock Contracts, Internal Logic]
D[Our Approach: TypeScript] --> E[Unit Testing + Functional Testing]
E --> F[Simulates Real-World Scenarios]
E --> G[Integrates Wallet Interactions]
F --> H[Transaction Flow Tested]
G --> I[Real Users and Private Keys Simulated]
```
***
#### Benefits of Functional Testing
By using TypeScript and frameworks like **Hardhat** and **ethers.js**, we can:
* Simulate real-world usage scenarios.
* Ensure full contract functionality beyond isolated unit tests.
* Test wallet interactions and transaction flows.
```mermaid
sequenceDiagram
participant Tester
participant SmartContract
participant Blockchain
participant Wallet
Tester->>SmartContract: Deploy contract
SmartContract->>Blockchain: Save on chain
Tester->>Wallet: Simulate User Interaction (e.g., transfer)
Wallet->>SmartContract: Sign and Send Transaction
SmartContract->>Blockchain: Transaction executed
Blockchain-->>Tester: Confirm transaction
```
***
#### Wallet Integration and Real-World Usage
Using **private keys** directly in our tests allows us to simulate actual user actions, from signing transactions to transferring tokens. This is something that unit testing frameworks like Truffle or Foundry don't handle natively, making our testing process more aligned with real-world operations.
```mermaid
flowchart LR
A[TypeScript Testing] --> B[Metamask Wallet]
B --> C[Sign Transaction]
C --> D[Blockchain Node]
D --> E[Contract Interaction]
E --> F[Validate Functionality]
F --> G[Send Back Response]
G --> A
```
***
#### Conclusion: TypeScript Testing Done Right
Our philosophy is simple: **real-world scenarios need real-world testing**. While traditional testing frameworks like Forge Foundry, Truffle, and Brownie are excellent for unit tests, they don't provide the comprehensive coverage we need for full integration. That's why we chose TypeScript to ensure our smart contracts not only work in isolation but also in the live environments where they’ll be used.
```mermaid
pie title Smart Contract Testing Coverage
"Traditional Unit Testing": 30
"Functional Testing": 70
```
---
source: /technical-information/ai-systems/
title: AI Systems
---
# AI Systems
---
source: /technical-information/ai-systems/overview/
title: Overview
---
# Overview
The GNUS.ai system integrates multiple open-source technologies to build a fully decentralized Retrieval-Augmented Generation (RAG) architecture.
It leverages:
- **RocksDB over IPFS** for distributed storage and CRDT-based synchronization.
- **Vulkan shaders and ggml** for high-performance inference on GPUs.
- **MNN (Mobile Neural Network)** to dynamically load and execute models at the edge nodes.
- **Pub/Sub communication over libP2P** for distributed query handling across nodes.
- **Federated learning principles** to allow local model retraining and fine-tuning on each node.
This architecture ensures scalability, fault tolerance, and security while minimizing latency in both data access and inference.
```mermaid
graph TD;
SystemArchitecture -->|Data Storage| RocksDB[Edge Nodes using RocksDB + IPFS]
SystemArchitecture -->|Inference| Vulkan[Vulkan Accelerated Inference]
SystemArchitecture -->|Communication| PubSub[libP2P Pub/Sub Channels]
SystemArchitecture -->|Retraining| FL[Federated Learning Nodes]
RocksDB -->|CRDT Syncing| IPFS[IPFS Cache]
FL -->|Model Updates| EdgeNode1[Edge Node 1]
FL -->|Model Updates| EdgeNode2[Edge Node 2]
```
---
source: /technical-information/ai-systems/query-workflow/
title: Query Workflow
---
# Query Workflow
## Detailed Query Workflow
1. **Query Reception**:
- Queries are broadcasted via **pub/sub channels** to all relevant nodes.
- Each node decides if it has the matching vector slice to respond.
2. **Vector Search and Model Inference**:
- Nodes execute **vector similarity searches** with Vulkan-accelerated GPUs using **ggml libraries**.
- **MNN models** are loaded dynamically based on the type of query.
3. **Response Generation and Aggregation**:
- Partial responses from each node are aggregated into a final response by a designated aggregator node or function.
```mermaid
sequenceDiagram
User ->> PubSub: Sends Query
PubSub ->> Node1: Broadcast Query
PubSub ->> Node2: Broadcast Query
Node1 ->> Node1: Search Vectors (Vulkan + ggml)
Node2 ->> Node2: Inference (MNN Model)
Node1 -->> Aggregator: Partial Response 1
Node2 -->> Aggregator: Partial Response 2
Aggregator ->> User: Final Response
```
---
source: /technical-information/ai-systems/data-storage/
title: Data Storage
---
# Data Storage
## RocksDB over IPFS with CRDT Syncing
### Architecture
- **RocksDB** is used for local storage of vector slices on each node.
- **IPFS** ensures distributed storage with content-addressed paths for retrieval.
- **CRDTs** manage synchronization across nodes to avoid conflicts during updates.
```mermaid
flowchart TD
RocksDB[Local RocksDB Storage] --> CRDT[CRDT Synchronization]
CRDT --> IPFS[IPFS Distributed Storage]
Node1[Edge Node 1] --> RocksDB
Node2[Edge Node 2] --> RocksDB
```
---
source: /technical-information/ai-systems/pub-sub-communication/
title: Pub/Sub Communication
---
# Pub/Sub Communication
## Communication Workflow
- Queries and updates are handled through **libP2P pub/sub channels**.
- Fault-tolerant message propagation ensures that even if some nodes fail, others can handle the query.
```mermaid
graph LR
PubSubChannel --> Node1[Edge Node 1]
PubSubChannel --> Node2[Edge Node 2]
Node1 --> Aggregator
Node2 --> Aggregator
Aggregator --> PubSubChannel
```
---
source: /technical-information/ai-systems/retraining-mechanism/
title: Retraining Mechanism
---
# Retraining Mechanism
## Federated Learning and Model Updates
Each node performs **local model retraining** based on new data and shares relevant updates across the network.
1. **Local Training**:
- Nodes collect interaction data and retrain models locally.
2. **zk-SNARK Validation**:
- Model updates are validated and signed before sharing.
3. **Selective Sharing**:
- Updates are broadcasted only to relevant nodes.
```mermaid
sequenceDiagram
Node1 ->> Node1: Local Model Retraining
Node1 ->> zkSNARK: Validate Update
zkSNARK -->> Node2: Validated Update
Node2 ->> Node2: Incorporate Update
```
---
source: /technical-information/zero-knowledge-proofs/
title: Zero Knowledge Proofs
---
# Zero Knowledge Proofs
Proofs in the context of zk-rollups (zero-knowledge rollups) are a form of cryptographic evidence that validates all transactions in a rollup block without revealing the actual data of those transactions. Here’s a simplified breakdown:
> **What Are zk-Rollups?**
>
> zk-Rollups are a type of Layer 2 scaling solution for blockchains like Ethereum. They help in scaling by processing transactions off the main chain (Layer 1) while ensuring the security and decentralization of the network.
### Zero-Knowledge Proofs
In blockchain, there are several types of zero-knowledge proofs (ZKPs) which vary in their interaction model and cryptographic techniques:**zk-SNARKs**zk-SNARKs are the most well-known ZKP protocol, valued for their quick verification times and minimal proof sizes. Initially, they required a "trusted setup," posing potential security risks, but newer versions have mitigated these concerns with trustless implementations using Multi-Party Computation (MPC). **Bulletproofs** Introduced as a scalable solution, Bulletproofs' proof sizes increase logarithmically with the number of inputs, improving over linear-sized proofs. They eliminate the need for a trusted setup, enhancing security, although they lack quantum resistance.**Zk-STARKs: The latest ZKP technology, zk-STARKs, offers transparency and quantum resistance** without needing a trusted setup. They are considered more scalable with more straightforward assumptions at the cost of larger proof sizes than zk-SNARKs.
| Feature | zk-SNARKs | Bulletproofs | zk-STARKs |
| -------------- | ----------------------------------------- | ---------------------------- | -------------------------------- |
| Trusted Setup | Required (traditional), optional (recent) | Not required | Not required |
| Proof Size | Small (\~0.2kB) | Medium (logarithmic scaling) | Large (\~50kB) |
| Quantum Safety | No (traditional), Yes (recent) | No | Yes |
| Computational | Fast proving, very fast verifying | Slower proving and verifying | Faster proving, slower verifying |
| Transparency | No (traditional), Yes (recent) | Yes | Yes |
| Scalability | High (with trustless setup) | High | Higher due to simple assumptions |
#### Why we choose zk-SNARKs
1. **Efficiency**: zk-SNARKs enable high-speed proof verification, crucial for maintaining performance on a blockchain network where many transactions must be verified quickly.
2. **Compact Proofs**: They generate small proof sizes, making them ideal for blockchains where conserving space is essential for scalability.
3. **Privacy**: zk-SNARKs provide strong privacy guarantees, allowing for the verification of transactions without revealing any underlying sensitive data.
4. **Adoption**: zk-SNARKs have been widely adopted and are supported by many blockchain projects, offering a mature ecosystem for developers.
### zk-SNARK
A zk-SNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) is an advanced cryptographic technique that allows someone to prove they possess certain information without revealing what that information is. This proof of knowledge satisfies a known mathematical statement yet maintains the inputs' secrecy. It's a powerful tool for maintaining privacy and security within various digital interactions. The process of verifying a zk-SNARK is designed to be efficient, with computational demands growing very slowly (logarithmically) relative to the complexity of the statement being proved. This efficiency is what gives zk-SNARKs their 'succinct' characteristic.
Furthermore, the verification process does not require any back-and-forth communication between the prover and the verifier. The prover presents their proof to the verifier for validation. When the requirement for succinctness is set aside, and zero knowledge is adjusted to a more lenient standard known as Honest Verifier Zero Knowledge, similar concepts can be seen in digital signature algorithms like ECDSA and EdDSA. These algorithms, derived from the Schnorr Identification Protocol, prove the knowledge of a discrete logarithm without revealing it. While verifying such signatures is not costly and aligns with the non-interactive nature of zk-SNARKs, they do not fulfill the succinctness criterion, a defining feature of zk-SNARKs.
### Definition of a zk-SNARK
A zk-SNARK involves three core components: a key **generator** (`G`), a **prover** (`P`), and a **verifier** (`V`). The process begins with `G`, which, using a secret parameter _lambda_ and a specific program `C`, \
outputs a pair of keys: a **proving key** (pk) and a **verification key** (vk). These keys, once generated, are public and tied to the program `C.`\
\
Next, the prover `P`, utilizing the proving key `pk`, public inputs `x`, and a secret witness `w`, produces proof `prf` that they know a witness `w,` which conforms to the constraints of program `C.` \
\
Finally, the verifier `V` checks the validity of the proof by executing `V(vk, w.pub(), prf)`, which confirms the truth of the claim if the proof prf is valid.
### Circuit
From a user's perspective, a circuit functions similarly to a program written in a language like Go. It defines the logic or computation you want to prove has been executed correctly. Internally, however, a circuit is not a typical program but a system of algebraic constraints. These constraints represent the steps of the computation, and each one must be satisfied for the overall computation to be considered valid. This unique structure allows zk-SNARKs to prove complex computations efficiently.
#### Purpose of Circuits
A zk-SNARK circuit defines the computations that a prover wants to prove knowledge of without disclosing the underlying data. These circuits play a pivotal role in zk-SNARK protocols, ensuring that the prover can provide convincing evidence of the correctness of their computations while keeping the sensitive data private.
#### Components of a zk-SNARK Circuit
A zk-SNARK circuit consists of several key components:
* **Input Variables**: These are the data that the prover aims to prove knowledge of, often referred to as the witness.
* **Output Variables**: These represent the result of the computation the prover tries to prove.
* **Constraints**: Constraints are mathematical equations that define the rules the computation must adhere to. They ensure that computations are performed correctly.
* **Witness**: The witness comprises the private information known to the prover. It is used in the computation and is kept secret.
* **Public Inputs**: These are pieces of information that are publicly known and are used to validate the proof.
#### Arithmetic Circuits
Arithmetic operations, such as addition, multiplication, and comparison, are frequently used in zk-SNARK circuits to define computations. Here's a simplified example in JavaScript.
```cpp
#include
using namespace nil::crypto3::algebra::curves;
[[circuit]] typename pallas::base_field_type::value_type
field_arithmetic_example([[private_input]] typename pallas::base_field_type::value_type a,
typename pallas::base_field_type::value_type b) {
return a + b;
}
```
#### Constraints
Constraints in zk-SNARK circuits are crucial for enforcing the correctness of the computation. They are formulated as mathematical equations involving input and output variables. Examples of constraints include equality constraints and inequality constraints.
#### Constraint System
The entire collection of constraints in a zk-SNARK circuit forms a constraint system, a fundamental element in generating zk-SNARK proofs.
#### Prover and Verifier
In zk-SNARK protocols, there are two main roles:
* **Prover**: The prover's role is to create a zk-SNARK proof demonstrating knowledge of the correct computation while keeping the witness secret.
* **Verifier**: The verifier's role is to check the validity of the proof provided by the prover without knowing the underlying data.
---
source: /technical-information/zero-knowledge-proofs/proof-schemes-and-elliptical-curves/
title: Proof schemes and Elliptical Curves
---
# Proof schemes and Elliptical Curves
Proof schemes, also known as proof systems or protocols, are cryptographic techniques that allow one party (the prover) to convince another party (the verifier) that a specific statement or claim is true without revealing any additional information beyond the statement's truth. There are several proof schemes, each with its characteristics and use cases.\
\
Since we are utilizing [zkLLVM](https://github.com/NilFoundation/zkLLVM) to create cryptographic circuits, it's important to note that it supports multiple proving schemes and Elliptical Curve Cryptography (ECC): Groth16, PlonK and its variants (HyperPlonk, Halo2), and even Nova and its variants (SuperNova, HyperNova).\
\
These schemes can be implemented using a variety of elliptic curves, including BN254, BLS12-381, BLS12-377, BLS24-315, BW6-633, BW6-761, and Pallas and Vesta. To specify the desired proving scheme and the corresponding elliptic curve, we use templates from the [=Nil Crypto3](https://github.com/NilFoundation/crypto3) C++ library.
### Arithmetization of Proofs
Proofs are generated into circuits that perform multiple arithmetization operations using arithmetic functions in what are known as gates of the circuits. Those gates are then connected to form the proof. There are several circuit arithmetization systems, including Rank One Constraint Systems (R1CS), Algebraic Intermediate Representation (AIR), Plonkish arithmetization (PLONK), and Customizable Constraint System (CCS) that can capture R1CS, Plonkish and AIR arithmetization without overhead.
### Choosing an Arithmetization Circuit System
#### Arithmetization Circuit Systems Considered
**R1CS**: Rank-One Constraint System, is a mathematical construct used to encode polynomial equations in matrices 𝐴, 𝐵, and 𝐶, where each row of the matrices corresponds to a system of equations of the form:
$$
Az * Bz = Cz
$$
> While R1CS is a powerful tool, it has some limitations. One of the main issues is that it does not work with folding schemes.
**AIR:** Algebraic Intermediate Representation (AIR) is the arithmetization procedure used by StarkWare in their virtual machine, CAIRO (CPU AIR)
**PLONKish**: PLONK is an arithmetization system with a universal and continuously updatable trusted setup. This innovation facilitates its use across multiple circuits, ensuring versatility and security. With faster proving time and succinct verification, PLONK stands out as a significant advancement in cryptographic protocols.
**CCS**: Customizable Constraint System is a generalization of R1CS that can simultaneously capture R1CS, Plonkish, and AIR without overheads.
The arithmetization adds significant overhead to the computation time. Using SNARK-friendly operations can increase computation time by nearly two orders of magnitude, and for non-friendly operations, it can be more.
Recently, many different optimizations have been presented to reduce the overhead, such as:
* Lookup tables (PlookUP).
* SNARK-friendly cryptographic primitives (such as [Rescue](https://eprint.iacr.org/2020/1143.pdf?ref=blog.lambdaclass.com), [SAVER](https://eprint.iacr.org/2019/1270.pdf?ref=blog.lambdaclass.com), [Poseidon](https://eprint.iacr.org/2019/458?ref=blog.lambdaclass.com), [Reinforced Concrete](https://eprint.iacr.org/2021/1038.pdf), and [Monoli](https://medium.com/@horizenlabs-tech/introducing-monolith-for-faster-hashing-in-zk-settings-6980f406af0e)[th](https://medium.com/@horizenlabs-tech/introducing-monolith-for-faster-hashing-in-zk-settings-6980f406af0e)[ ](https://medium.com/@horizenlabs-tech/introducing-monolith-for-faster-hashing-in-zk-settings-6980f406af0e)Hashing ).
* Concurrent proof generation.
* Hardware acceleration (such as using GPU or FPGA).
We can also prove that we executed thousands of transactions or operations using recursive proof composition, [proof aggregation](https://blog.zk.link/nova-studies-i-exploring-aggregation-recursion-and-folding-23b9a67000cd), [folding schemes](https://medium.com/veridise/introduction-to-nova-and-zk-folding-schemes-4ef717574484), or [incrementally verifiable computing](https://blog.lambdaclass.com/incrementally-verifiable-computation-nova/).
### Our Proving Scheme's Architecture
1. **Performance Efficiency**: Performance is critical in blockchain applications, especially those involving frequent transactions or operations that require repeated proving of the same computational logic. We choose C++ and utilize the GPU for efficiency and cross-platform compatibility.\
\
**Plonkish Arithmetization** was chosen because it can be highly optimized using PLONK Lookup tables (PLookUp) and optimized for GPU devices. This efficiency is crucial for maintaining fast transaction times and lower computational costs.\
\
**Monolith Hashing** was chosen because it is efficient, comparable to SHA3-256 hash rate speed, can be highly optimized for GPU devices, and is highly efficient to implement in PLONK circuits.
2. **Succinct Proofs**: The Plonkish-based proofs generated by ZKLLVM are notably concise, especially when designed to leverage specific elliptic curves like Pallas and Vesta (PaSTA), known for their succinctness and efficiency in zero-knowledge proof systems. The commitment scheme is similar to the Halo2 and is more broadly called a Polynomial Commitment Scheme (PCS).\
\
The number of group elements in a PLONK proof can vary depending on the specific implementation details and optimizations applied. However, for a typical PLONK setup, the proof size is generally characterized by a few main components:
1. **Commitments to the polynomials** used in the protocol are usually represented as points on the elliptic curve.
2. **Evaluation Points** at which these polynomials are evaluated are also represented as elliptic curve points.
3. **The Opening Proof** for these polynomial commitments at the evaluation points involve elements from the base and scalar fields of the elliptic curve. \\
3. **Zero-Knowledge Property**: PLONK provides strong zero-knowledge guarantees, allowing the prover to validate the truth of a statement without revealing any underlying data. This is essential in blockchain applications where privacy and confidentiality are paramount, such as in the case of private transactions or confidential contracts.
4. **Security and Soundness**: The cryptographic strength of PLONK, which relies on the hardness of problems on elliptic curves, ensures a high degree of security. This aligns with the need for robust security in blockchain applications, where the integrity and trustworthiness of transactions are critical.
5. **Aggregate/Folding/IVC Proofs:** Incrementally Verifiable Computing (**I**VC) is a technique that allows proving that a function was repeatedly applied to some initial state, producing a sequence of states,\
\
PLONK can do IVC using the Pallas and Vesta (PaSTA) Elliptical Curve Pair.
1. PLONK is used with PaSTA curves defined over a finite field, which were chosen to aggregate proofs similar to the [Halo2 commitment scheme](https://zcash.github.io/halo2/index.html?ref=blog.lambdaclass.com).
2. Parts of the [Kimchi Proving System](https://minaprotocol.com/blog/kimchi-the-latest-update-to-minas-proof-system) were also adopted to minimize the blockchain's storage requirements.
6. **Compatibility with Ethereum and Other Platforms**: Since zkLLVM can also generate Solidity Smart Contract code for Ethereum Virtual Machines (EVMs) to verify via the Solidity Smart Contract, it can verify the aggregated proofs. The verifier Smart Contract is compatible with major blockchains like Ethereum, which is crucial.
### Final Decision on Proving System
Finally, after all the research, we decided that all these choices led us to use the [Placeholder Prover System](https://nil.foundation/blog/post/placeholder-proofsystem) that the =nil Foundation developed. The Placeholder Prover System is a modular approach to a robust zkSnark proving system, which allowed us to build a fast custom proving system.
---
source: /resources/contact-us/
title: Contact Us
---
# Contact Us
**Mailing Address:** 30 N Gould St., Suite R, Sheridan WY 82801
**Phone:** +1 (307) 763-5958
**Email:** support@geniusventures.io
You may also contact the team by visiting your preferred social platform and dropping us a question or comment. All official links can be found [here](official-links.md).
---
source: /resources/contracts/
title: Contracts
---
# Contracts
Part of GNUS.AI uses the Diamond Standard, a versatile proxy outlined in [EIP-2535](https://eips.ethereum.org/EIPS/eip-2535). This proxy can incorporate functionalities from various Facet contracts.
### GNUS.AI Main Network Smart Contracts
### Audits
{% file src="../.gitbook/assets/SmartContract_Audit_Solidproof_GNUSai.pdf" %}
February 24, 2024 Audit
{% endfile %}
---
source: /resources/faqs/
title: FAQS
---
# FAQS
**What is a GNUS Token?**
GNUS Tokens are tokens used in a unique, secure, smart, and easy-to-use platform that completely disrupts the way businesses do AI/ML Processing. It is the purchasing unit for AI/ML processing requests.
**What blockchain are the GNUS Tokens on?**
GNUS tokens are slated to launch on Bitcoin as (BGNS BRC-20), Ethereum, and Polygon, and others as (GNUS ERC-20/ERC-1155 Hybrid), Solana (SPL Token), and Cardano Native Token.
**What benefits do I gain from GNUS Token?**
The initial value of GNUS tokens is for prepurchasing AI/ML processing and will be used as the reserve currency for Games and applications that integrate with the GNUS blockchain. Once the ecosystem is in full swing, GNUS tokens used for AI/ML processing are paid to anybody who has installed the App or is playing a game with the system integrated. Once GNUS is distributed, it can be used for in-app purchases and becomes part of a gaming ecosystem.
**Why are GNUS Tokens multichain?**
GNUS tokens are a bridging mechanism between other Cryptocurrencies and Fiat currency and a bridge to the SGNUS (Super Genius) private blockchain. This allows AI processing payments earned by app and game developers to be converted to any currency.
**Are GNUS Tokens traded on a big exchange?**
GNUS Tokens are not yet trading on a major exchange. We plan on listing to a major CEX exchange after the launch around March 31, 2024
**How do GNUS and SGNUS relate?**
GNUS Tokens are blockchain tokens that are used to open AI/ML requests and act as a payment channel. SGNUS tokens are created and mapped one-to-one for GNUS tokens and are part of a rollup and bridging system that uses zkSnarks. They then enter their very own economic system for fast transaction processing.
**What is the difference between GNUS and SGNUS tokens?**
GNUS (Genius) tokens are currently on the Polygon mainnet, and SGNUS (Super Genius) Tokens are used in a private network for fast transactions. The SGNUS Tokens will roll up to multiple blockchains for cross-chain compatibility.
**Why is there a burn function in the smart contract?**
We implemented a burn function so that when AI/ML processing is done, the GNUS tokens will increase in value by destroying 10% of the GNUS tokens. This may seem counterintuitive, but from our research, doing this increases the value of your tokens by 12%.
**Will this token be considered a security?**
We don’t believe it will. We’ve been cautious not to do the ICO until we have the software in a minimally viable state. The tokens are also for prepurchasing AI/ML processing, so the token has a utility value. We’ve analyzed our offering based on the Howey test and scored very well not to be considered a security.
**Can I invest in the company by buying these tokens?**
No, these tokens are being used for AI/ML processing. However, please don’t hesitate to use the contact form if you are interested in investing in the company, as we do have a prospectus for a SAFE & SAFT offering for accredited investors.
**Would anybody be able to buy your tokens?**
Anyone can purchase the tokens, as they are utility tokens for use in AI/ML processing and not securities.
**Are you worried about the U.S. crackdown on Cryptocurrencies?**
Not in the slightest. Cryptocurrencies and Cryptotokens have been adopted by major corporations and have grown significantly over the last few years. The Genie is already out of the bottle!
---
source: /resources/faqs/technical-deep-dive-how-gnus.ai-works/
title: Technical Deep Dive: How GNUS.ai Works
---
# Technical Deep Dive: How GNUS.ai Works
### 1. How does GNUS.ai enable users in emerging markets to offset device costs by contributing to the AI network through apps?
GNUS.ai allows users in emerging markets to earn $GNUS tokens by sharing idle device computing power, primarily GPU resources, through a decentralized AI network. The GNUS SDK integrates into apps, games, and platforms, enabling participation without technical expertise. Users can convert tokens into fiat currency, in-app purchases, or other cryptocurrencies to offset costs of devices like smartphones, laptops, or IoT gadgets. For example, while using apps on Android, iOS, Windows, macOS, or consoles like Xbox and PlayStation, idle resources process AI/ML workloads such as data analysis or model training. This passive income stream makes devices more affordable in regions where upfront costs are high. The mobile-first design ensures low-power devices contribute efficiently, broadening access to AI compute and reducing reliance on costly cloud services.
### 2. What are the key differences between GNUS.ai's Cognitive Mining and traditional proof-of-work mining, particularly in AI-focused rewards?
GNUS.ai’s documentation doesn’t explicitly use “Cognitive Mining” but describes a system combining decentralized GPU mining with federated learning, where devices process AI/ML tasks instead of cryptographic puzzles. Key differences from traditional proof-of-work (PoW) mining, like Bitcoin’s hash computations, include:
* **Purpose and Output**: PoW secures blockchains with no utility beyond consensus. GNUS.ai processes AI/ML workloads like model training or inference, producing tangible outputs for developers and enterprises.
* **Resource Utilization**: PoW relies on specialized hardware (e.g., ASICs), consuming significant energy inefficiently. GNUS.ai uses idle GPUs across devices (desktops, mobiles, IoT) for federated learning, training models locally without sharing raw data to preserve privacy.
* **AI-Focused Rewards**: GNUS.ai rewards are based on AI contribution quality and volume, with 80% of $GNUS tokens allocated to developers and users, 10% burned for scarcity, and 10% retained by the network. PoW rewards are fixed per block, tied to speculative value rather than utility.
* **Efficiency and Sustainability**: GNUS.ai leverages underutilized resources, using zero-knowledge proofs for secure validation, unlike PoW’s energy-intensive, non-productive computation.
This shifts mining from speculative to AI-driven utility, aligning rewards with machine learning contributions.
### 3. What challenges in scaling AI does GNUS.ai address through its distributed web interface and cryptocurrency conversion system?
Scaling AI involves challenges like device variability, data privacy, workload distribution, payment accessibility, and network reliability. GNUS.ai addresses these through its distributed web interface and cryptocurrency conversion system:
* **Workload Distribution and Scalability**: The web interface divides AI/ML tasks into time-based subtasks, distributed via libP2P pub/sub protocols, allowing devices to contribute at varying GPU levels (e.g., 10% or 0.0001%). Future private networks will use the JSON compute specification for intelligent task allocation based on device capabilities.
* **Device Variability and Reliability**: Federated learning enables local task processing, preserving privacy and managing performance differences via load balancing and parity checks for result validation.
* **Payment Accessibility**: The conversion system supports fiat-to-$GNUS exchanges, reducing barriers in emerging markets and enabling payments in any currency via smart contracts on the Super Genius blockchain, with bridging to Layer 1 chains (e.g., Ethereum, Polygon, Solana) secured by zk-SNARK proofs and Solidity verification.
* **Resilience and Cost Efficiency**: The distributed file system with encrypted uploads ensures uptime, while low CapEx/OpEx compared to centralized clusters (e.g., xAI’s 100k GPU setup) offers competitive pricing without massive infrastructure.
These features create a scalable, accessible network that grows with user participation, overcoming centralized AI limitations.
### 4. How does GNUS.ai handle performance and reliability variability across devices, from high-end GPUs to low-power mobiles?
GNUS.ai manages device variability with a mobile-first SDK and adaptive networking system for heterogeneous environments:
* **Task Allocation**: Workloads are sliced by time and distributed via libP2P pub/sub, allowing flexible GPU utilization (e.g., 10% for bursts, 0.0001% for minimal impact). This supports high-end GPUs and low-power mobiles or IoT, with future private networks using the JSON compute specification for capability-based allocation.
* **Low-Power Efficiency**: Federated learning processes tasks locally, minimizing bandwidth and energy use. Idle CPU/GPU cycles are used without disrupting user experience (e.g., during gaming). Mobile Neural Networks (MNN) optimize model execution on edge devices.
* **Reliability**: Parity checks and zero-knowledge proofs verify results for accuracy and uptime. Unreliable nodes face reputation slashing, while reliable ones earn more $GNUS. The “Always Available” design redistributes failed tasks, ensuring 99%+ uptime.
* **Compatibility**: The SDK supports Windows, macOS, Linux, Android, iOS, Xbox, PlayStation, and IoT, with automatic scaling to prevent overload. Testnet phases incorporate community feedback to optimize performance.
This approach enables broad participation without compromising network integrity.
### 5. Your vision states “no high is high enough.” What does the ultimate high look like: GNUS.ai as a cheaper AWS or an invisible layer powering apps, games, and devices?
GNUS.ai’s vision, per founder Kenneth Hurley (@SuperGeniusEth), is to empower individuals over corporations with a collaborative ecosystem. The ultimate high is becoming an invisible layer powering apps, games, and devices, rather than just a cheaper AWS. While GNUS.ai offers 80% cost savings through low CapEx/OpEx, its goal is ubiquity: integrating the SDK into billions of devices for passive earning, like electricity powers homes. This makes AI a shared utility, enabling breakthroughs like cancer research via idle resources, with token burns and rewards sustaining the economy. It’s about seamless AI access, not just cost reduction.
### 6. How does GNUS.ai’s networking system orchestrate complex AI/ML workloads across diverse devices while ensuring uptime, resilience, and accuracy?
GNUS.ai’s networking system uses federated learning, smart routing, and blockchain verification for workload orchestration:
* **Orchestration**: Tasks are divided into time-based subtasks, distributed via libP2P pub/sub, enabling devices to process at varying GPU levels (e.g., 10% or 0.0001%). Real-time adaptation uses MNN for efficient model loading, with future private networks leveraging the JSON compute specification for capability-based division.
* **Device Adaptation**: The SDK supports cross-platform compatibility, with federated learning enabling local training to reduce bandwidth. Load balancing prioritizes idle resources to avoid disruption.
* **Uptime and Resilience**: The “Always Available” architecture redistributes tasks from failing nodes. The 10% $GNUS token burn per compute cycle increases value by 11.1%, functioning like automated staking. Nodes vote on consensus using reputation (e.g., Genesis transaction: 1,000,000 reputation, AI processing: 1 reputation, bridging/archiving: 10,000 reputation), with a 2/3 reputation points voting system. The Super Genius blockchain ensures fast, secure transactions, with bridging to Layer 1 chains (e.g., Ethereum, Polygon, Solana) secured by zk-SNARK proofs and Solidity verification.
* **Accuracy**: Parity checks, zero-knowledge proofs, and cryptographic commitments ensure tamper-proof results, with rewards tied to verified contributions.
This creates a scalable network for complex workloads like LLM training across diverse devices.
### 7. Beyond cost savings, does GNUS.ai aim to shift AI control from corporations, and is it about cheaper compute or broader empowerment?
GNUS.ai seeks to democratize AI control, moving power from corporations with billion-dollar CapEx (e.g., xAI’s 100k GPU clusters) to individuals. While offering 70-80% cost savings through low OpEx and idle resource use, it prioritizes:
* **Decentralized Infrastructure**: GNUS.ai uses global idle GPUs, reducing reliance on centralized providers and risks like insolvency.
* **User and Developer Empowerment**: Participants earn $GNUS, fostering collaboration. Federated learning preserves privacy, and the SDK enables indie developers and emerging market users to access AI.
* **Sustainable Tokenomics**: The 10% token burn per compute cycle increases value by 11.1%, with 80% of rewards to users, creating incentives unlike corporate models. Monte Carlo simulations on Machinations.io predict token appreciation.
* **Broader Impact**: Open AI for research (e.g., protein folding) promotes ethical access. Founder Kenneth Hurley calls this a movement for community control, not just affordability.
Cheaper compute is a byproduct of empowering users to shape AI’s future.
### 8. How does GNUS.ai prevent Sybil attacks where one entity creates fake nodes to gain disproportionate rewards or manipulate the network?
GNUS.ai prevents Sybil attacks through a security framework in its system architecture (US Patent 11,451,393 B2, covering the distributed computing and cryptotoken payment system). Tokenomics, simulated on Machinations.io, ensure fairness. Key measures include:
* **Reputation-Based Security**: Any node can join, with security via a reputation system. Nodes vote on consensus based on transactions processed (e.g., Genesis transaction: 1,000,000 reputation, AI processing: 1 reputation, bridging/archiving: 10,000 reputation). A 2/3 reputation points voting system ensures reputable nodes dominate. Fake nodes risk reputation slashing if detected, reducing Sybil attack influence.
* **Zero-Knowledge Proofs and Verification**: zk-SNARKs and parity checks validate contributions, preventing fake nodes from earning rewards.
* **Identity Systems**: Device fingerprinting, IP diversity checks, and on-chain verification (via ERC-20/1155 tokens) detect anomalies. The Super Genius blockchain handles secure transactions, with bridging to Layer 1 chains (e.g., Ethereum, Polygon, Solana) secured by zk-SNARK proofs and Solidity verification.
* **Economic Disincentives**: Rewards are proportional to verified output, with 10% token burn per transaction for scarcity, increasing value by 11.1% per cycle. Sybil attempts are uneconomical due to reputation slashing and verification overhead.
* **GNUS.ai DAO Governance**: The soon-to-launch GNUS.ai DAO uses GNUS Governance Tokens on an Ethereum-compatible blockchain for decentralized decision-making. Proposals, such as token transfers or supply increases, require a 50% quorum of total token voting power and a 2/3 majority of votes cast, ensuring community oversight to prevent Sybil attacks.
These mechanisms maintain a fair, resilient network. For updates, check docs.gnus.ai or Telegram (t.me/geniustokens).
### 9. How can a beginner join as a compute provider, and are there guides to help?
Becoming a compute provider is simple for beginners, using the Genius Wallet software. Steps include:
1. **Sign Up and Download**: Visit gnus.ai or docs.gnus.ai to download the Genius Wallet app (Windows, macOS, Linux, Android, iOS). It’s an easy installer, requiring no blockchain expertise. Join the public Testnet via the sign-up form (Phase 3 testers earn real $GNUS).
2. **Install and Connect**: Run the wallet, create a secure account (supports MetaMask), and connect your device. The app detects idle GPU/CPU resources and joins the network.
3. **Contribute and Earn**: Use apps or games with the GNUS SDK to share power passively. The wallet manages task allocation and rewards $GNUS based on contributions, viewable in the dashboard.
4. **Guides and Support**: Resources include:
* Tutorials in docs.gnus.ai’s FAQ and “How Does It Work?” sections.
* YouTube videos (e.g., Super Genius Chronicles by CEO Kenneth Hurley).
* Telegram community (t.me/geniustokens) for support, with testers noting minimal resource impact.
* GitHub repo for advanced users, but beginners use the wallet.
Start with Testnet to earn risk-free; mainnet (Q4 2025) will enable full rewards. No upfront costs beyond your device.
### 10. Has GNUS.ai undergone security audits, and how are funds kept secure?
GNUS.ai prioritizes security with robust mechanisms and testing during Testnet phases, including bug bounties via GitHub. Key features include:
* **Smart Contract Security**: Built on the ERC-2535 Diamond Standard for modular contracts (fungible $GNUS ERC-20 and ERC-1155 NFTs), using burn-on-mint and facet-based logic to isolate risks. The Super Genius blockchain ensures secure transactions, with bridging to Layer 1 chains (e.g., Ethereum, Polygon, Solana) secured by zk-SNARK proofs and Solidity verification.
* **Privacy and Verification**: zk-SNARKs enable privacy-preserving federated learning, with secure 2FA via TOTP and encrypted transactions using SSL/public keys.
* **Fund Protection**: The 10% token burn per compute cycle increases value by 11.1%, with tokens held in non-custodial wallets. Distributed nodes eliminate single points of failure.
* **Audits and Roadmap**: GNUS.ai completed two third-party smart contract audits, with results on docs.gnus.ai. Internal C++ code audits are ongoing, and a comprehensive third-party audit is planned before the Q4 2025 mainnet launch to validate the Super Genius blockchain and SDK integrations. Phase 3 Testnet (live since July 2025) includes public stress-testing, with community bug bounties via GitHub enhancing security. The GNUS.ai DAO, launching soon, strengthens governance, and partnerships like Volume for automated payments add trust.
Funds are secured via user-controlled wallets and on-chain transparency. Check docs.gnus.ai or Telegram for audit details.
### 11. Is a physical GNUS.ai device planned soon?
Based on GNUS.ai’s roadmap and announcements (up to September 2025), no dedicated physical device is planned. The focus is software-driven, using existing hardware (smartphones, PCs, consoles, IoT) via the GNUS SDK and Genius Wallet for accessibility. The roadmap (docs.gnus.ai) prioritizes mainnet launch (Q4 2025), SDK integrations (200+ apps/games), and ecosystem growth. Founder Kenneth Hurley emphasizes partnerships for mobile/IoT GPUs (e.g., Volume on Paloma Blockchain), enhancing existing devices. Future demand may lead to optimized hardware, but currently, it’s about software leveraging user-owned devices. Check Telegram or X for updates.
---
source: /resources/multisig-wallets/
title: Multisig Wallets
---
# Multisig Wallets
GNUS.AI Gnosis Safe Multisignature Wallets to protect against malicious attacks on the treasury and to deploy smart contracts and updates. These wallets are public and can be viewed on any blockchain scanners, i.e., [https://www.etherscan.io](https://www.etherscan.io), [https://www.polygonscan.com](https://www.polygonscan.com).
### GNUS.AI Multisig Wallets
---
source: /resources/glossary/
title: Glossary
---
# Glossary
#### Artificial Intelligence (A.I.)
Creating computer systems capable of human-like tasks, such as learning, problem-solving, and understanding language, aiming to mimic cognitive functions.
#### **Blockchain**
A decentralized ledger recording transactions transparently.
#### **Cloud Computing**
Getting computing services (storage, processing) over the internet for flexibility and cost-effectiveness.
#### **Decentralized Application (DApp)**
An app running on a decentralized network (blockchain). It uses smart contracts for secure operations.
#### **Directed Acyclic Graph (DAG)**
A data structure without loops. In blockchains, it's an alternative to the traditional chain structure.
#### **Fog Computing**
A decentralized computing setup extending cloud capabilities to the network's edge, closer to data sources.
#### **Hybrid Cryptocurrency/Crypto-Token System**
A mix of cryptocurrencies and tokens for fast transactions.
#### **Initial Token Offering (ITO)**
A way to fundraise for new crypto projects. It involves offering a percentage of tokens in exchange for currencies.
#### Machine Learning (M.L.)
A subset of A.I. focused on developing algorithms that enable computers to learn from data, improving their performance over time without explicit programming.
#### **Proof of Work (PoW)**
A way to secure blockchains where participants solve problems to add new transactions.
#### **Smart Contracts**
Self-executing contracts written in code. They run automatically when specific conditions are met.
#### **Zero Knowledge (ZK) Encryption**
A method that allows one party (the prover) to prove to another party (the verifier) that they possess a certain piece of information or knowledge without revealing the actual content of that information.
---
source: /resources/official-links/
title: Official Links
---
# Official Links
Website:[ ](https://www.gnus.ai/)[https://www.gnus.ai/](https://www.gnus.ai/)
Github:[ ](https://github.com/GeniusVentures)[https://github.com/GeniusVentures](https://github.com/GeniusVentures)
Discord: [https://discord.gg/gnusai](https://discord.gg/gnusai)
Facebook: [https://www.facebook.com/geniusventures.io/](https://www.facebook.com/geniusventures.io/)
Twitter (X):[ ](https://twitter.com/GNUSAI)[https://twitter.com/GNUSAI](https://twitter.com/GNUSAI)
LinkedIn:[ ](https://www.linkedin.com/company/geniusventuresio)[https://www.linkedin.com/company/geniusventuresio](https://www.linkedin.com/company/geniusventuresio)
Youtube:[ ](https://www.youtube.com/channel/UC6UmxSK3U8DGzXEe7eguCkA)[https://www.youtube.com/@gnusai](https://www.youtube.com/@gnusai)
Telegram:[ ](https://t.me/geniustokens)[https://t.me/gnusai](https://t.me/gnusai)
## GNUS Trading Pairs Information
DexTools: [https://www.dextools.io/app/en](https://www.dextools.io/app/en)
DexScreener: [https://www.dexscreener.com](https://www.dexscreener.com)
CoinMarketCap: [https://coinmarketcap.com/currencies/genius-token-nft-collections/](https://coinmarketcap.com/currencies/genius-token-nft-collections/)
---
source: /SuperGenius/Classes/df/da1/structeth_1_1abi_1_1_abi_param/
title: eth::abi::AbiParam (struct)
---
Members:
kind
indexed — true → value appears in topics
name — optional parameter name
---
source: /SuperGenius/Classes/dc/db1/structeth_1_1codec_1_1_access_list_entry/
title: eth::codec::AccessListEntry (struct)
---
An EIP-2930 access list entry: contract address + storage slots.
Members:
address
storage_keys
---
source: /SuperGenius/Classes/d5/d74/classsgns_1_1_account_messenger/
title: sgns::AccountMessenger (class)
---
Members:
Error — Account Messenger errors.
BlockResponseHandler
HeadRequestHandler
RequestType
BlockQuery
ACCOUNT_COMM — Basis of the account receiving topic.
REQUESTS_COMM — Basis of the global requests topic.
address_ — Own address.
account_comm_topic_ — Account receiving topic.
requests_topic_ — Global requests topic.
pubsub_ — Pubsub instance.
subs_acc_future_ — Future of the subscription to the receiving topic.
subs_requests_future_ — Future of the subscription to the requests topic.
nonce_responses_ — All current nonce responses.
no_nonce_responses_ — Addresses that responded with no nonce.
first_response_time_ — Timestamp of the first response.
nonce_responses_mutex_ — Mutex of the nonce_responses_.
block_responses_ — collected block CIDs per req_id
block_first_response_time_ — Timestamp of the first block response.
block_responses_mutex_ — Mutex protecting block_responses_.
utxo_responses_
utxo_first_response_time_
utxo_responses_mutex_
methods_ — Interface methods.
rd_ — Random device for request IDs.
global_block_handler_ — Global block response handler.
global_handler_mutex_
head_request_handler_ — Global head request handler.
head_handler_mutex_
worker_thread_
queue_mutex_
queue_cv_
request_queue_
stop_worker_
logger_ — The logger instance.
New — Factory constructor of new AccountMessenger.
~AccountMessenger — Destroy the Account Messenger object.
GetLatestNonce — Get the Latest Nonce from the network.
RequestGenesis — Request genesis block from the network (retries until timeout)
RequestAccountCreation — Request account creation from the network and invoke callback with found CIDs.
RequestValidatorRegistry
RequestRegularBlock — Request a block by CID from the network (retries until timeout)
RequestTransaction — Request a transaction by hash from the network (retries until timeout)
RequestUTXOs — Request UTXOs for a specific address and return the selected response.
RegisterBlockResponseHandler — Register global block response handler.
ClearBlockResponseHandler — Clears the block response handler.
RegisterHeadRequestHandler — Register handler for incoming head requests.
ClearHeadRequestHandler — Clears the head request handler.
RequestHeads — Request heads broadcast for specific topics.
WorkerLoop
EnqueueTask
PerformNonceRequest
PerformBlockRequest
PerformUTXORequest
HasRequestPeers
AccountMessenger — Private constructor of the Account Messenger.
RequestNonce — Requests the nonce to the network.
RequestBlock — Request a block (by index) from the network (no callback)
RequestBlockByCid — Request a block (by CID) from the network (no callback)
RequestBlockByHash
RequestUTXO
OnResponse — Callback of pubsub message when a response was received.
OnRequest — Callback of pubsub message when a request was received.
SendAccountMessage — Sends a pubsub message to a set of topics.
HandleNonceRequest — Handles the Nonce request package.
HandleNonceResponse — Handles the Nonce response package.
HandleBlockRequest — Handles the Genesis request package.
HandleBlockCidRequest — Handles the Block-by-CID request package.
HandleBlockResponse — Handles the Block response package (calls global handler)
HandleTransactionRequest
HandleBlockLikeRequest
HandleHeadRequest — Handles the Head request package (calls registered handler)
HandleUTXORequest — Handles the UTXO request package.
HandleUTXOResponse — Handles the UTXO response package.
---
source: /SuperGenius/Classes/d2/d93/structsgns_1_1_transaction_manager_1_1_account_u_t_x_o_state/
title: sgns::TransactionManager::AccountUTXOState (struct)
---
Members:
version
root
initialized
---
source: /SuperGenius/Classes/de/daa/classsgns_1_1_validator_registry_1_1_active_batch_handler_guard/
title: sgns::ValidatorRegistry::ActiveBatchHandlerGuard (class)
---
Members:
registry_
active_
ActiveBatchHandlerGuard
~ActiveBatchHandlerGuard
operator bool
---
source: /SuperGenius/Classes/d3/df9/classrlpx_1_1crypto_1_1_aes/
title: rlpx::crypto::Aes (class)
---
Members:
Aes
encrypt_ctr
decrypt_ctr
encrypt_ctr_inplace
decrypt_ctr_inplace
---
source: /SuperGenius/Classes/da/d2f/structrlpx_1_1_aes_block/
title: rlpx::AesBlock (struct)
---
RLPx wire structs — sizes are derived via sizeof() rather than magic numbers.
16-byte AES block (AES-128 / AES-256 share the same block size).
Members:
bytes
---
source: /SuperGenius/Classes/d2/da2/class_a_e_s_encryption/
title: AESEncryption (class)
---
Derived AES256 Encryption class.
Members:
EncryptData — AES256 Encrytion method.
DecryptData — AES256 Decryption method.
CheckEqual — Checks if two AESEncryption instances are equal.
---
source: /SuperGenius/Classes/d5/d83/classsgns_1_1_android_secure_storage/
title: sgns::AndroidSecureStorage (class)
---
Members:
jvm_
key_store_helper_class_
load_method_
save_method_
delete_method_
AndroidSecureStorage
~AndroidSecureStorage
GetName
LoadJSON
SaveJSON
GetJNIEnv
---
source: /SuperGenius/Classes/d9/d1f/classsgns_1_1_apple_secure_storage/
title: sgns::AppleSecureStorage (class)
---
Members:
identifier_
AppleSecureStorage
GetName
LoadJSON
SaveJSON
---
source: /SuperGenius/Classes/d2/deb/structsgns_1_1_genius_assigner_1_1_assigner_output/
title: sgns::GeniusAssigner::AssignerOutput (struct)
---
Members:
constrains
table
AssignerOutput
---
source: /SuperGenius/Classes/d8/da6/classsgns_1_1crdt_1_1_atomic_transaction/
title: sgns::crdt::AtomicTransaction (class)
---
AtomicTransaction provides atomic multi-key operations for CRDT datastore All operations within a transaction are combined into a single delta and published atomically to ensure consistency.
Members:
Operation
Buffer
Delta
datastore_
operations_
modified_keys_
stored_topics_
is_committed_
mutex_
AtomicTransaction — Constructor for AtomicTransaction.
~AtomicTransaction — Destructor ensures rollback if not committed.
Put — Add a key-value pair to the transaction.
Remove — Delete a key in the transaction.
Get — Get a value for a key.
Erase — Erase a key from the transaction (alias for Remove)
HasKey — Check if a key has been modified in this transaction.
AddTopic — Add a single topic to this transaction's internal topic set.
AddTopics — Add multiple topics to this transaction's internal topic set.
Commit — Commits all pending operations atomically. Combines all pending operations into a single Delta and publishes it.
Rollback — Rollback all pending operations.
FindLatestOperation — Find the most recent operation for a given key.
---
source: /SuperGenius/Classes/dc/d19/structeth_1_1rpc_1_1_audit_finding/
title: eth::rpc::AuditFinding (struct)
---
Members:
severity
chain_name
chain_id
message
---
source: /SuperGenius/Classes/d3/df0/structeth_1_1rpc_1_1_audit_summary/
title: eth::rpc::AuditSummary (struct)
---
Members:
passed
findings
---
source: /SuperGenius/Classes/d6/dcc/classrlpx_1_1auth_1_1_auth_handshake/
title: rlpx::auth::AuthHandshake (class)
---
Authentication handshake coordinator.
Members:
config_
transport_
AuthHandshake — Construct handshake with config and an already-connected transport.
execute — Execute full handshake (auth + hello exchange).
is_initiator — State query.
derive_frame_secrets — Derive RLPx frame secrets from authenticated handshake key material.
perform_auth — Internal auth phase (sends/receives auth messages).
exchange_hello — Internal hello exchange (capability negotiation).
---
source: /SuperGenius/Classes/da/d07/structrlpx_1_1auth_1_1_auth_key_material/
title: rlpx::auth::AuthKeyMaterial (struct)
---
Members:
peer_public_key
peer_ephemeral_public_key
local_ephemeral_public_key
local_ephemeral_private_key
initiator_nonce
recipient_nonce
initiator_auth_message
recipient_ack_message
---
source: /SuperGenius/Classes/d2/d0e/class_prime_numbers_1_1_baby_step_giant_step/
title: PrimeNumbers::BabyStepGiantStep (class)
---
Members:
g_n_inv
step_size
prime_number
value_table
BabyStepGiantStep
SolveECDLP
---
source: /SuperGenius/Classes/d9/dfe/classstd_1_1back__insert__iterator_3_01_buffer_01_4/
title: std::back_insert_iterator< Buffer > (class)
---
Members:
value_type
difference_type
pointer
reference
iterator_category
buf_
back_insert_iterator
back_insert_iterator
operator=
operator=
operator=
operator=
operator=
operator=
operator*
operator++
operator++
---
source: /SuperGenius/Classes/d3/d2a/structsgns_1_1crdt_1_1_global_d_b_1_1_backup_options/
title: sgns::crdt::GlobalDB::BackupOptions (struct)
---
Members:
enabled
interval_minutes
keep_count
auto_restore_on_repair_failure
---
source: /SuperGenius/Classes/d8/d2c/classsgns_1_1storage_1_1rocksdb_1_1_batch/
title: sgns::storage::rocksdb::Batch (class)
---
Class that is used to implement efficient bulk (batch) modifications of the Map.
Members:
db_
batch_
Batch
put
put
remove
commit — Writes batch.
clear — Clear batch.
---
source: /SuperGenius/Classes/de/d2d/structsgns_1_1storage_1_1face_1_1_batchable/
title: sgns::storage::face::Batchable (struct)
---
A mixin for a map that supports batching for efficiency of modifications.
K
key type
V
value type
Members:
~Batchable
batch — Creates new Write Batch - an object, which can be used to efficiently write bulk data.
---
source: /SuperGenius/Classes/d3/df4/structsgns_1_1storage_1_1face_1_1_batch_write_map/
title: sgns::storage::face::BatchWriteMap (struct)
---
An abstraction over a writeable key-value map with batching support.
K
key type
V
value type
---
source: /SuperGenius/Classes/d5/d79/classbitcoin_1_1_bitcoin_key_generator_1_1_bitcoin_e_c_d_s_a_public_key/
title: bitcoin::BitcoinKeyGenerator::BitcoinECDSAPublicKey (class)
---
Bitcoin ECDSA public key derived class.
Members:
CalcPubkeyUsedValue — Implements the calculation for the public key value used for bitcoin.
ECDSAPublicKey — Constructs a new ECDSAPublicKey object.
---
source: /SuperGenius/Classes/d6/d9d/classbitcoin_1_1_bitcoin_key_generator/
title: bitcoin::BitcoinKeyGenerator (class)
---
Creates a pair of ECDSA keys and a Bitcoin address from a compressed key.
Members:
PubKeyPair_t
key_gen — Bitcoin random key generator.
MAIN_NETWORK_ID — ID of the Main Bitcoin network.
PARITY_EVEN_ID — If even, the compressed address is prepend this.
PARITY_ODD_ID — If odd, the compressed address is prepend this.
CHECKSUM_SIZE_BYTES — Number of used checksum bytes.
privkey — The ECDSA private key.
pubkey — The ECDSA public key.
pubkey_info — Instance of public key information class.
address — The Bitcoin Address in string form.
BitcoinKeyGenerator — Constructs a new randomly generated Bitcoin key and address.
BitcoinKeyGenerator — Import private key string data to construct Bitcoin key and address.
BitcoinKeyGenerator — Import a private key scalar value to construct Bitcoin key and address.
get_private_key — Returns the private key reference.
get_public_key — Returns the public key reference.
get_address — Returns the bitcoin base58 address.
GetUsedPubKeyValue — Get the public key value used for bitcoin address derivation.
GetEntirePubValue — Get entire key value of the public key.
ExtractPubKeyFromField — Extract the key vector data from the ECDSA public key.
DeriveAddress — Derive the bitcoin address from de X coordinate of the public key.
CreateKeys — Create the ECDSA key pair.
DeriveAddress — Derive the bitcoin address from own key.
---
source: /SuperGenius/Classes/d8/dea/structsgns_1_1crdt_1_1_graphsync_d_a_g_syncer_1_1_blacklist_entry/
title: sgns::crdt::GraphsyncDAGSyncer::BlacklistEntry (struct)
---
Members:
timestamp
failures
ever_connected
backoff_attempts
BlacklistEntry
---
source: /SuperGenius/Classes/d4/dc6/classsgns_1_1base_1_1_blob/
title: sgns::base::Blob (class)
---
Base type which represents blob of fixed size.
std::string is convenient to use but it is not safe. We can not specify the fixed length for string.
For std::array it is possible, so we prefer it over std::string.
Members:
Blob
Blob — constructor enabling initializer list
toString
toReadableString
toHex
ToVec
size
fromString
fromReadableString
fromHex
fromHexWithPrefix
fromSpan
---
source: /SuperGenius/Classes/da/d14/structeth_1_1_block_bodies_message/
title: eth::BlockBodiesMessage (struct)
---
Response to GetBlockBodies (message id 0x06).
Members:
request_id
bodies
---
source: /SuperGenius/Classes/d2/df2/structeth_1_1_block_body/
title: eth::BlockBody (struct)
---
A single block body: transactions + ommers (uncle headers).
Members:
transactions
ommers
---
source: /SuperGenius/Classes/de/da2/classsgns_1_1_blockchain/
title: sgns::Blockchain (class)
---
Manages genesis/account-creation blocks and consensus integration.
This class coordinates CRDT-backed persistence of blockchain bootstrap blocks, validates signatures, tracks authoritative CIDs, and exposes a high-level interface to submit and verify consensus subjects/proposals.
Members:
Error — Error class of the Blockchain module.
BlockchainCallback — Callback invoked when blockchain initialization/processing finishes.
Migration3_5_0To3_6_0
Migration3_6_0To3_7_0
MultiAccountTestAccess
BLOCKCHAIN_TOPIC — Topic used for blockchain CRDT data.
DEFAULT_FULL_NODE_PUB_ADDRESS — Default authorized full-node public key.
GENESIS_KEY — Datastore key for genesis block payload.
GENESIS_CID_KEY — Datastore key for selected genesis CID.
ACCOUNT_CREATION_KEY_PREFIX — Prefix for account-creation payload keys.
ACCOUNT_CREATION_CID_KEY_PREFIX — Prefix for account-creation CID keys.
TIMEOUT_GENESIS_BLOCK_MS — Genesis CID download timeout in milliseconds.
TIMEOUT_ACC_CREATION_BLOCK_MS — Account-creation CID download timeout in milliseconds.
db_ — CRDT database instance.
account_ — GeniusAccount instance.
blockchain_processed_callback_ — Callback when the processing of the blockchain is done.
genesis_block_ — Cached genesis block for easy access.
account_creation_block_ — Cached account creation block.
cids_ — Cached CID selection state.
validator_registry_ — Validator registry component.
logger_ — Logger instance.
created_successfully_ — Indicates successful initialization/creation flow.
filters_registered_ — Indicates CRDT filters were registered.
callbacks_registered_ — Indicates CRDT callbacks were registered.
stop_started_ — Makes account-bound teardown one-shot.
validator_registry_initialized_ — Signals registry initialization completion.
start_deferred_ — Start() returned BLOCKCHAIN_NOT_INITIALIZED; retry once the registry is ready.
genesis_ready_ — Indicates genesis block is ready.
account_creation_ready_ — Indicates account-creation block is ready.
consensus_manager_ — Consensus manager used for proposals/certificates.
New — Factory method to create Blockchain as shared_ptr.
SetAuthorizedFullNodeAddress — Set the authorized full node public address (for testing purposes)
GetAuthorizedFullNodeAddress — Get the current authorized full node public address.
SetAdditionalGenesisValidatorAddresses — Registers additional validator addresses to include in the genesis registry.
GetAdditionalGenesisValidatorAddresses — Returns additional genesis validator addresses previously set.
CreateConsensusNonceSubject — Creates a consensus subject for nonce/transaction transition.
~Blockchain — Destroys the blockchain instance.
Start — Start the blockchain with async genesis block handling.
Stop — Stops blockchain background processing and callbacks.
OnGenesisBlockReceived — Handle received genesis block from pubsub.
OnAccountCreationBlockReceived — Handle received account creation block from pubsub.
GetGenesisCID — Returns the stored CID of the selected genesis block.
GetAccountCreationCID — Returns the stored CID of the selected account-creation block.
GetValidatorRegistry — Returns validator registry owned by this blockchain instance.
SetFullNodeMode — Forces full-node mode behavior for bootstrap/generation flow.
RegisterSubjectHandler — Registers a consensus subject handler by canonical subject type string.
UnregisterSubjectHandler — Unregisters a consensus subject handler by canonical subject type string.
RegisterCertificateHandler — Registers a consensus certificate handler by canonical subject type string.
UnregisterCertificateHandler — Unregisters a consensus certificate handler by canonical subject type string.
RegisterProposalCleanupHandler — Registers a proposal cleanup callback by canonical subject type string.
RegisterSlotKeyHandler — Registers a slot key handler for a specific embedded transaction oneof case.
SetSlotHashPopulator — Forwards a slot-hash populator to the consensus manager (Phase 6, D-01).
UnregisterSlotKeyHandler
CreateConsensusProposal — Creates a signed proposal for nonce/transaction transition.
SubmitProposal — Submits a proposal through consensus manager.
TryResumeProposal — Attempts to resume deferred handling for a subject hash.
TryResumePendingDependency — Attempts to resume deferred handling for a typed pending dependency.
CheckCertificate — Checks whether any certificate exists for subject hash.
CheckCertificateStrict — Performs strict certificate check for a specific subject object.
GetCertificateBySubjectHash — Loads certificate by subject hash.
BestHash — Chooses the preferred hash among two candidates.
MigrateCids — Migrates blockchain-related CIDs between GlobalDB instances.
Blockchain — Private constructor. Use New.
InitGenesisCID — Initializes cached/stored genesis CID state.
InitAccountCreationCID — Initializes account-creation CID state for account address.
SaveGenesisCID — Persists selected genesis CID.
SaveAccountCreationCID — Persists selected account-creation CID for address.
ComputeSignatureData — Builds canonical bytes to verify/sign genesis block.
ComputeSignatureData — Builds canonical bytes to verify/sign account-creation block.
VerifySignature — Verifies genesis block signature.
VerifySignature — Verifies account-creation block signature.
CreateGenesisBlock — Creates and publishes a genesis block when needed.
VerifyGenesisBlock — Verifies serialized genesis block payload.
CreateAccountCreationBlock — Creates and publishes an account-creation block when needed.
VerifyAccountCreationBlock — Verifies serialized account-creation block payload.
FilterGenesis — Filters CRDT elements to genesis-block entries.
FilterAccountCreation — Filters CRDT elements to account-creation entries.
ShouldReplaceGenesis — Determines whether candidate genesis should replace existing one.
ShouldReplaceAccountCreation — Determines whether candidate account block should replace existing.
GenesisReceivedCallback — Callback for incoming genesis CRDT updates.
AccountCreationReceivedCallback — Callback for incoming account-creation CRDT updates.
InformBlockchainResult — Delivers overall blockchain processing result to callback.
InformGenesisResult — Processes/report result of genesis acquisition/creation.
InformAccountCreationResponse — Processes/report result of account-creation acquisition/creation.
WatchCIDDownload — Watches CID download completion with timeout handling.
EnsureValidatorRegistry — Ensures validator registry is initialized and available.
AuthorizedFullNodeAddressStorage — Returns mutable process-wide storage for authorized full-node pub key.
AdditionalGenesisValidatorAddressesStorage — Returns mutable process-wide storage for additional genesis validator addresses.
---
source: /SuperGenius/Classes/d9/d46/structsgns_1_1_blockchain_1_1_blockchain_c_i_ds/
title: sgns::Blockchain::BlockchainCIDs (struct)
---
Members:
genesis_ — Selected genesis CID.
account_creation_ — Selected account-creation CIDs keyed by address.
hasGenesis — Checks whether a genesis CID is available.
hasAccount — Checks whether an address has account-creation CID.
hasAnyAccount — Checks whether any account-creation CID exists.
isCompleteFor — Checks whether both genesis and account CID exist for address.
---
source: /SuperGenius/Classes/db/d98/structsgns_1_1_account_messenger_1_1_block_cid_request/
title: sgns::AccountMessenger::BlockCidRequest (struct)
---
Members:
cid
---
source: /SuperGenius/Classes/d6/d5c/structeth_1_1codec_1_1_block_header/
title: eth::codec::BlockHeader (struct)
---
Members:
parent_hash
ommers_hash
beneficiary
state_root
transactions_root
receipts_root
logs_bloom
difficulty
number
gas_limit
gas_used
timestamp
extra_data
mix_hash
nonce
base_fee_per_gas
---
source: /SuperGenius/Classes/de/d70/structeth_1_1_block_headers_message/
title: eth::BlockHeadersMessage (struct)
---
Members:
request_id
headers
---
source: /SuperGenius/Classes/d1/dae/structsgns_1_1_account_messenger_1_1_block_index_request/
title: sgns::AccountMessenger::BlockIndexRequest (struct)
---
Members:
block_index
---
source: /SuperGenius/Classes/d2/dc2/structeth_1_1_block_range_update_message/
title: eth::BlockRangeUpdateMessage (struct)
---
Members:
earliest_block
latest_block
latest_block_hash
---
source: /SuperGenius/Classes/dd/d2b/structdiscv4_discovery_1_1_bootstrap_node/
title: discv4Discovery::BootstrapNode (struct)
---
Members:
ip
port
node_id_hex
---
source: /SuperGenius/Classes/d2/d31/structsgns_1_1_genius_node_1_1_bootstrap_reconnect_config/
title: sgns::GeniusNode::BootstrapReconnectConfig (struct)
---
Members:
base_delay
max_delay
health_check_interval
health_check_disconnected_interval
background_multiplier
---
source: /SuperGenius/Classes/d0/d96/classsgns_1_1evmwatcher_1_1_bridge_catchup_watcher/
title: sgns::evmwatcher::BridgeCatchupWatcher (class)
---
Polling watcher that scans bridge chains for historical burn events and forwards them to the node for parsing + minting.
Owns its own boost::thread (via MessagingWatcher). The watch() loop polls eth_getLogs at a configurable interval, tracks the last processed block per chain, and forwards discovered logs through a typed BurnProcessor callback. The callback implementation (provided by GeniusNode) handles ABI parsing and minting — the watcher itself only decodes the raw log.
Members:
ChainsProvider — Callback that returns the current set of chains to scan.
RpcUrlResolver — Callback that resolves a chain-id string to an RPC URL.
BurnProcessor — Callback invoked for each discovered burn event.
config_ — Polling and start-block configuration.
chains_provider_ — Returns the current chain list.
rpc_resolver_ — Resolves chain-id → RPC URL.
burn_processor_ — Called for each discovered burn log.
last_block_per_chain_ — Per-chain last processed block number (chain_id → block).
mutex_
BridgeCatchupWatcher — Constructs a BridgeCatchupWatcher.
startWatching
stopWatching
GetLastProcessedBlock — Returns the last processed block for a specific chain.
watch
poll_once
---
source: /SuperGenius/Classes/d7/d85/structeth_1_1_bridge_event_claim/
title: eth::BridgeEventClaim (struct)
---
Transport-neutral bridge event claim signed by watcher nodes.
Members:
src_chain_id
dest_chain_id
block_number
block_hash
tx_hash
log_index
bridge_contract
event_topic0
topics
data
sender
token_id_or_nonce
amount
recipient
observed_at
finality_depth
---
source: /SuperGenius/Classes/db/d36/structeth_1_1_bridge_event_key/
title: eth::BridgeEventKey (struct)
---
Dedupe/consumption key for a bridge event.
Members:
src_chain_id
tx_hash
log_index
---
source: /SuperGenius/Classes/d0/d03/structeth_1_1_bridge_event_observation/
title: eth::BridgeEventObservation (struct)
---
Watcher signature over a normalized bridge event claim.
Members:
claim
observer
signature
---
source: /SuperGenius/Classes/dd/d0d/classsgns_1_1_bridge_relayer/
title: sgns::BridgeRelayer (class)
---
Registers both BridgeSourceBurned (v1) and BridgeOutInitiated (v2) watches on a shared EthWatchService across multiple chains and calls MintFunds when burns are detected. OnWatchEvent dispatches on the variant type of values[5] to handle both event formats (D-06).
Members:
::BridgeRelayerTestAccess — Friend accessor for unit testing OnWatchEvent and chain_watches_.
tx_manager_ — Weak reference to TransactionManager for calling MintFunds.
watch_service_ — Shared EthWatchService for event detection.
logger_
chain_watches_ — Per-chain watch IDs, keyed by chain name. Populated by Start(). .first is the v1 (BridgeSourceBurned) watch_id; .second is the v2 (BridgeOutInitiated) watch_id. Both registered unconditionally per chain (D-15); the wrong-version watch simply never fires.
Create — Factory method to create a BridgeRelayer instance with weak TransactionManager reference.
ParseBurnEventValues — Parse decoded ABI values into BurnEventParams for bridging.
Start — Register both v1 (BridgeSourceBurned) and v2 (BridgeOutInitiated) watches on all provided chains.
OnRpcEndpointsReady — IBridgeInitObserver callback — self-starts when the provider signals readiness.
Stop — Stop watching (currently a no-op — EthWatchService lifecycle is external).
BridgeRelayer — Construct a BridgeRelayer.
OnWatchEvent — Processes a matched burn event and calls MintFunds.
---
source: /SuperGenius/Classes/d1/d21/classsgns_1_1evmwatcher_1_1_bridge_rpc_watcher/
title: sgns::evmwatcher::BridgeRpcWatcher (class)
---
RPC-based bridge event watcher that polls eth_getLogs, verifies receipts, and produces normalized BridgeEventClaim objects.
Unlike EvmMessagingWatcher (which uses WebSocket eth_subscribe), this watcher uses eth::rpc::RpcHttpTransport for JSON-RPC over HTTP. It polls at a configurable interval, fetches logs for the bridge contract, verifies each event through eth_getTransactionReceipt, and emits eth::BridgeEventClaim objects via a typed callback.
Members:
BridgeClaimCallback
config_ — Configuration parameters for the watcher.
claim_callback_ — Callback for handling parsed bridge event claims.
transport_ — RPC transport for making HTTP requests.
last_block_ — Last processed block number.
BridgeRpcWatcher — Constructs a BridgeRpcWatcher with the specified configuration and callbacks.
startWatching
stopWatching
GetConfig — Returns the watcher's configuration.
GetLastProcessedBlock — Returns the last processed block number.
watch
poll_once — Performs a single polling cycle: fetches logs from the RPC, verifies receipts, and emits claims.
---
source: /SuperGenius/Classes/d9/de2/classsgns_1_1crdt_1_1_broadcaster/
title: sgns::crdt::Broadcaster (class)
---
A Broadcaster provides a way to send (notify) an opaque payload to all replicas and to retrieve payloads broadcasted.
Members:
ErrorCode
~Broadcaster
Broadcast
Next
HasTopic — Checks whether the broadcaster is subscribed to the specified topic.
GetDagSyncer — Get the underlying DAG syncer (if available).
---
source: /SuperGenius/Classes/de/dd5/classsgns_1_1base_1_1_buffer/
title: sgns::base::Buffer (class)
---
Class represents arbitrary (including empty) byte buffer.
Members:
iterator
reverse_iterator
const_reverse_iterator
const_iterator
value_type
pointer
const_pointer
data_
Buffer — Allocates a buffer of the given size, filled with a byte value.
~Buffer
Buffer — lvalue construct buffer from a byte vector
Buffer
Buffer
Buffer
Buffer
Buffer
Buffer
reserve
resize
operator=
operator=
operator+=
operator[] — Accessor of byte elements given an index in the byte array.
operator[] — Accessor of byte elements given an index in the byte array.
operator== — Lexicographical comparison of two buffers.
operator== — Lexicographical comparison of buffer and vector of bytes.
operator== — Lexicographical comparison of buffer and vector of bytes.
operator< — Lexicographical comparison of two buffers.
begin — Iterator, which points to begin of this buffer.
end — Iterator, which points to the element next to the last in this buffer.
rbegin — Iterator, which points to last of this buffer.
rend — Iterator, which points to the element previous to first in this buffer.
rbegin — Iterator, which points to last of this buffer.
rend — Iterator, which points to the element previous to first in this buffer.
begin — Iterator, which points to begin of this buffer.
end — Iterator, which points to the element next to the last in this buffer.
size — Getter for size of this buffer.
putUint8 — Put an 8-bit value into this buffer.
putUint32 — Put a 32-bit value into this buffer.
putUint64 — Put a 64-bit value into this buffer.
put — Put a string into the byte buffer.
put — Put a vector of bytes into the byte buffer.
put — Put a sequence of bytes into the byte buffer.
putBytes — Put an array of bytes bounded by pointers into the byte buffer.
putBuffer — Put another buffer content at the end of current one.
clear
data — getter for raw array of bytes
data
toVector — getter for vector of bytes
toVector
subbuffer
toHex — encode bytearray as hex
empty
toString — return content of bytearray as string
fromHex — Construct Buffer from hex string.
putRange
---
source: /SuperGenius/Classes/de/d56/classsgns_1_1account_1_1_burn_config/
title: sgns::account::BurnConfig (class)
---
Genesis-seeded, in-memory-cached, quorum-updatable BURN_BASIS_POINTS value. Delegates ALL signature/quorum logic to SecureCrdt/SecureCrdtRegistry no bespoke signature/quorum logic exists here (mirrors TPR-03 precedent).
Members:
RefreshCallback
GENESIS_DEFAULT_BASIS_POINTS — Known genesis default burn-basis-points value (BURN-03 pre-quorum fallback).
secure_crdt_
db_
trusted_peer_registry_
quorum_threshold_
account_
base_key_
cached_basis_points_
refresh_callbacks_mutex_
refresh_callbacks_
registry_token_
logger_
BurnConfig
~BurnConfig
GetCachedBasisPoints — Returns the currently-cached, quorum-confirmed basis-points value (relaxed atomic load) no live CRDT read.
RegisterRefreshCallback — Registers a callback invoked whenever the cached basis-points value changes as a result of a fresh quorum-re-derivation.
Unregister — Unregisters this instance's signer-set-source from SecureCrdtRegistry (test-fixture teardown helper).
New — Constructs a BurnConfig, registers its signer-set-source and CRDT change-callback, and auto-seeds the genesis default exactly once if eligible.
RegisterSignerSetSource — Registers this instance's signer-set-source with SecureCrdtRegistry under base_key_.
RegisterCrdtChangeCallback — Registers the GlobalDB new-element callback that re-derives quorum on every base_key OR sig/ child element.
OnCrdtElementChanged — Re-runs SecureCrdt::ReadIfQuorum(base_key_) fresh NEVER trusts the callback's positionally-supplied new_data (Pitfall 2) and updates the cache + invokes registered refresh callbacks if the freshly-confirmed value differs from the current cache. Never signs anything.
TrySeedGenesisIfEligible — Proposes+signs the KNOWN GENESIS DEFAULT ONLY, exactly once, iff no value is yet confirmed at base_key_ AND this node's account address is among the current trusted peers (D-01, D-02, D-03). Never runs for any other proposed value.
---
source: /SuperGenius/Classes/d6/df5/classsgns_1_1account_1_1_burn_config_payload/
title: sgns::account::BurnConfigPayload (class)
---
ISignedCRDTData payload type carrying the burn-basis-points value. Serialization/verification mirrors TrustedPeerListPayload's structural-only-verify convention (never diffs against cached state).
Members:
BASIS_POINTS_TOTAL — Total basis points representing 100% any decoded value above this is semantically invalid.
basis_points_
applied_
BurnConfigPayload
BurnConfigPayload — Constructs a payload directly from a basis-points value (used by callers that need to serialize a proposed value).
SerializeToBytes — Serializes this instance's payload to raw bytes (codec, encode side).
DeserializeFromBytes — Deserializes raw bytes into this instance's payload (codec, decode side).
Verify — Performs type-specific semantic validation of payload beyond signature/quorum checks (e.g. field-range checks).
Apply — Applies the side effect of this value once the caller has independently confirmed quorum (e.g. via SecureCrdt::ReadIfQuorum). Apply() itself does NOT check quorum.
GetBasisPoints — Returns the decoded/constructed basis-points value.
---
source: /SuperGenius/Classes/da/d8d/structsgns_1_1_burn_event_params/
title: sgns::BurnEventParams (struct)
---
Parsed burn event parameters shared between real-time watch (OnWatchEvent) and startup catch-up scan (PerformStartupCatchupScan).
Members:
token_id — Token identifier from event [1].
amount — Burn amount from event [2].
destination — 128-char hex recipient from event [5] (decompressed if v2)
---
source: /SuperGenius/Classes/d4/d5a/structrlpx_1_1protocol_1_1_capability/
title: rlpx::protocol::Capability (struct)
---
Members:
name
version
---
source: /SuperGenius/Classes/df/d07/class_c_component_factory/
title: CComponentFactory (class)
---
Members:
ComponentTable
SINGLETON
Register
GetComponent
---
source: /SuperGenius/Classes/d8/dd7/structsgns_1_1_validator_registry_1_1_certificate_votes/
title: sgns::ValidatorRegistry::CertificateVotes (struct)
---
Partitioned vote extraction from a certificate.
Members:
approved — Validators that approved the certificate.
unregistered — Unregistered voters observed in certificate.
registered_votes — Vote decisions by registered validators.
unregistered_votes — Vote decisions by unregistered validators.
---
source: /SuperGenius/Classes/d7/d91/structsgns_1_1evmwatcher_1_1_evm_messaging_watcher_1_1_chain_config/
title: sgns::evmwatcher::EvmMessagingWatcher::ChainConfig (struct)
---
Members:
rpc_url
chain_id
chain_name
ws_url
---
source: /SuperGenius/Classes/d5/d01/structsgns_1_1_chain_contract_pair/
title: sgns::ChainContractPair (struct)
---
Represents a chain name and its GNUS bridge contract address.
Members:
chain_name
contract_address
chain_id
creation_block — Block at which the bridge contract was deployed (0 = unknown).
---
source: /SuperGenius/Classes/df/d1c/structeth_1_1_chain_head_snapshot/
title: eth::ChainHeadSnapshot (struct)
---
Members:
finalized_number
safe_number
latest_number
---
source: /SuperGenius/Classes/db/d52/structdiscv4_1_1_chain_peer_cache_refresh_result/
title: discv4::ChainPeerCacheRefreshResult (struct)
---
Result of refreshing the local chain peer cache from a remote URL.
Members:
cache_path
cache_available
cache_updated
---
source: /SuperGenius/Classes/db/dfc/structdiscv4_1_1_chain_peer_cache_signature_verification_result/
title: discv4::ChainPeerCacheSignatureVerificationResult (struct)
---
Verification result for a signed chain peer cache JSON document.
Members:
has_signature
signature_valid
signer_address
---
source: /SuperGenius/Classes/de/d85/structdiscv4_1_1_chain_peer_config/
title: discv4::ChainPeerConfig (struct)
---
Parsed chain configuration shared across peer discovery and ETH session setup.
Members:
canonical_name
network_id
genesis_hash
nodes
bootnodes
discv5_bootnodes
enr_trees
discovery_default
discovery_fork_filter
fork_id
eth_message_schemas
signature
signer_address
---
source: /SuperGenius/Classes/d9/dab/classsgns_1_1_chain_rpc_endpoint_provider/
title: sgns::ChainRpcEndpointProvider (class)
---
Encapsulates ChainList RPC endpoint loading and validator wiring.
Reads bridge_chains_config.json at the path provided, extracts chain_id and bridge_contract_address for each chain entry, runtime-fetches public RPC URLs from the chainid.network chainlist dataset (filter: bridge_contract_address + topic0 attached per chain), wires them into PublicChainInputValidator with consensus weights, calls IInputValidator::Register per chain, and notifies IBridgeInitObserver subscribers on success.
Members:
CancelChecker — Loads RPC endpoints from bridge_chains_config.json + a runtime chainlist fetch, wires them into the validator, then calls IInputValidator::Register per chain.
ObserverCallback
observers_
observer_callbacks_
chainlist_fetcher_
ChainRpcEndpointProvider
AddObserver — Registers an observer to receive the chain/contract list on Init success.
SetChainlistFetcher — Overrides the chainlist dataset fetcher (for tests; no network).
Initialize
AddObserverCallback
---
source: /SuperGenius/Classes/da/d95/struct_chain_runtime/
title: ChainRuntime (struct)
---
Members:
target
genesis
fork_id
stats
pool
scheduler
dv4
peers_count
chain_peers_loaded
bootstrap_peers
on_connection_activity
---
source: /SuperGenius/Classes/d4/d04/struct_chain_target/
title: ChainTarget (struct)
---
Members:
chain_key
chain_peer_cache_key
network_id
genesis_hex
fork_hash_fallback
---
source: /SuperGenius/Classes/d9/d25/classeth_1_1_chain_tracker/
title: eth::ChainTracker (class)
---
Tracks the chain tip and deduplicates block processing requests.
Responsibilities:
Record which blocks have already had their receipts requested so duplicate GetReceipts messages are never emitted for the same block.
Track the highest known block number (the "tip").
Detect when a block arrives that is lower than the current tip (potential reorg or redundant announcement).
This class is intentionally minimal — it does not store headers or receipts; it only tracks identity (hash) and height (number).
Thread-safety: not thread-safe. All calls must be externally synchronized.
Members:
kDefaultWindowSize — Maximum number of block hashes to remember for deduplication. Older entries beyond this window are evicted (FIFO order by insertion, not by block number).
window_size_
tip_number_
tip_hash_
seen_set_ — Ordered set for O(log n) lookup.
eviction_queue_ — FIFO queue for eviction — stores hashes in insertion order.
eviction_head_ — Index of oldest entry.
ChainTracker — Construct with an optional custom deduplication window size.
~ChainTracker
ChainTracker
operator=
ChainTracker
operator=
mark_seen — Attempt to mark a block as "receipts requested".
is_seen — Return true if this block hash has already been seen.
tip — Return the highest block number seen so far (0 if none).
tip_hash — Return the hash of the highest block seen, if any.
seen_count — Return the number of blocks currently in the deduplication window.
reset — Reset all state (tip, seen set, eviction queue).
---
source: /SuperGenius/Classes/d9/de6/structdiscv5_1_1discv5__client_1_1_challenge_state/
title: discv5::discv5_client::ChallengeState (struct)
---
Members:
remote_node_addr
challenge_data
request_nonce
id_nonce
record_seq
---
source: /SuperGenius/Classes/db/da1/struct_cmp/
title: Cmp (struct)
---
Members:
operator()
---
source: /SuperGenius/Classes/d9/da9/classsgns_1_1_coin_gecko_price_retriever/
title: sgns::CoinGeckoPriceRetriever (class)
---
Members:
PriceError
m_logger
CoinGeckoPriceRetriever
formatDate
getCurrentPrices
getHistoricalPrices
getHistoricalPriceRange
getCurrentPricesOnce
---
source: /SuperGenius/Classes/d7/d37/structeth_1_1_common_status_fields/
title: eth::CommonStatusFields (struct)
---
Fields common to both ETH/68 and ETH/69 Status messages.
Members:
protocol_version
network_id
genesis_hash
fork_id
---
source: /SuperGenius/Classes/d4/d56/structdiscv5_1_1_compressed_pub_key_wire/
title: discv5::CompressedPubKeyWire (struct)
---
Wire layout of a compressed secp256k1 public key.
Members:
bytes — 33-byte compressed point (02/03 prefix + X)
---
source: /SuperGenius/Classes/d9/d04/structsgns_1_1evmwatcher_1_1_bridge_catchup_watcher_1_1_config/
title: sgns::evmwatcher::BridgeCatchupWatcher::Config (struct)
---
Configuration for the catch-up scan watcher.
Members:
TransportFactory
poll_interval — Interval between polling cycles.
start_block — Earliest block to scan (0 = genesis). Test-injected (D-20).
max_blocks_per_query — Max block range per eth_getLogs call (matches provider limit).
max_chunks — Max backward chunks per poll (0 = unlimited). Tests use 3.
transport_factory — null = use default RpcHttpTransport.
---
source: /SuperGenius/Classes/d3/d68/structsgns_1_1evmwatcher_1_1_bridge_rpc_watcher_1_1_config/
title: sgns::evmwatcher::BridgeRpcWatcher::Config (struct)
---
Configuration structure for BridgeRpcWatcher.
Members:
rpc_url — URL of the RPC.
chain_id — The source chain ID.
dest_chain_id — The destination chain ID (Genius)
contract_address — The address of the bridge contract.
event_signature — The signature of the event to listen for.
confirmation_depth — The number of blocks to wait before considering an event confirmed.
poll_interval — The interval at which to poll for new events.
max_log_range — The maximum range of blocks to query for logs.
---
source: /SuperGenius/Classes/d5/d51/structsgns_1_1_genius_account_1_1_confirmed_tx_record/
title: sgns::GeniusAccount::ConfirmedTxRecord (struct)
---
Members:
nonce
hash
---
source: /SuperGenius/Classes/d1/d8a/classsgns_1_1_consensus_manager/
title: sgns::ConsensusManager (class)
---
Implements Consensus with weighted voting.
This class implements a consensus algorithm using pubsub messages.
A subject needs to be created and with it a proposal as well. The proposal gets sent to the network and gets voted by peers who receive it. This class has hooks to be filled by the caller to register methods to handle subject and proposal. The idea is to leave out the validation of specific data (transaction, job result and etc) for whomever creates the subject. It relies on ValidatorRegistry class to get the voters and their weights. Once consensus is reached a round scheme determines who amongst the validators will create the certificate which is the finality of the subject. The certificate also enabled registry updates to register new validators according to peer who voted correctly or penalize people who votes incorrectly.
Members:
Check — Object checking values.
Proposal — Alias for Consensus Proposal protobuf type.
Vote — Alias for Consensus Vote protobuf type.
VoteBundle — Alias for Consensus Vote Bundle protobuf type.
Certificate — Alias for Consensus Certificate protobuf type.
Subject — Alias for Consensus Subject protobuf type.
Signer — Alias for a signer method type.
SlotHashPopulator — Callback invoked during CreateVote to populate slot_N_hash fields before signing (Phase 6, D-01).
SubjectHandler — Alias for a subject handler method type.
CertificateSubjectHandler — Alias for a certificate handler method type.
ProposalCleanupHandler — Alias for a proposal cleanup handler method type Callback invoked when a proposal slot is cleaned up due to timeout. Receives the transaction hash so the handler can clean up associated tracking entries.
SlotKeyHandler — Alias for a slot key handler — produces a deterministic slot key for a proposal. Takes the raw subject, called from GetSlotKey by subject type hash.
AggregatorRole — Local node's certificate aggregation role for a proposal round.
ConsensusManagerTestAccess
ConsensusPendingLifecycleTestAccess
ConsensusSlotKeyTestAccess
CONSENSUS_CHANNEL_PREFIX — Prefix for pubsub consensus channels.
CERTIFICATE_BASE_PATH_KEY — Datastore key prefix for certificates.
DEFAULT_TIMESTAMP_WINDOW — Default timestamp acceptance window.
DEFAULT_ROUND_DURATION — Default consensus round duration.
DEFAULT_ROUND_SKEW — Default round skew tolerance.
NO_ROUND — Sentinel for uninitialized round.
CERT_KEY_PATTERN — Regex for certificate CRDT keys.
slot_key_handlers_ — Slot key handlers keyed by subject type hash.
slot_key_handlers_mutex_ — Guards slot_key_handlers_.
registry_ — Validator registry dependency.
db_ — GlobalDB dependency for persistence and CRDT operations.
certificate_work_journal_ — Work journal for certificate processing.
subject_handlers_ — Subject handlers keyed by subject type hash.
subject_handlers_mutex_ — Guards subject_handlers_.
certificate_subject_handlers_ — Certificate handlers by subject type hash.
certificate_handlers_mutex_ — Guards certificate_subject_handlers_.
proposal_cleanup_handlers_ — Proposal cleanup handlers by subject type hash.
cleanup_handlers_mutex_ — Guards proposal_cleanup_handlers_.
signer_ — Local signing callback.
slot_hash_populator_ — Optional slot-hash populator (Phase 6, D-01).
slot_hash_populator_mutex_ — Guards callback replacement/copy at shutdown.
account_address_ — Local validator/account id.
proposals_ — Proposal state map keyed by proposal id.
slot_states_ — Slot arbitration state keyed by slot key.
pending_entries_ — Canonical pending proposals keyed by proposal id.
pending_by_dependency_ — Proposal ids queued by typed dependency key.
pending_count_by_proposer_ — Pending proposal count by proposer id.
pending_retained_bytes_ — Total retained pending proposal bytes.
pending_config_ — Local pending lifecycle bounds.
pending_votes_ — Pending votes keyed by proposal id.
proposals_mutex_ — Guards proposal and pending maps.
pubsub_ — PubSub transport dependency.
consensus_messages_topic_ — PubSub topic for live consensus messages.
consensus_datastore_topic_ — Datastore namespace/topic for persisted data.
consensus_subs_future_ — Async subscription handle.
timestamp_window_ — Accepted timestamp window.
certificate_delay_ — Delay before certificate processing.
round_duration_ — Consensus round duration.
round_skew_ — Round skew tolerance.
close_started_ — Makes Close one-shot across Stop/destruction.
certificate_filter_registered_ — Owns the CRDT certificate filter.
certificate_callback_registered_ — Owns the CRDT certificate callback.
stop_timer_ — Signals the round timer thread to stop.
certificates_pending_ — Indicates pending certificate processing.
timer_cv_ — Condition variable used by the round timer.
timer_mutex_ — Mutex paired with timer_cv_.
round_timer_ — Background thread driving round-based retries.
New — Creates a ConsensusManager instance.
RegisterSlotKeyHandler — Registers a slot key handler for a canonical subject type.
UnregisterSlotKeyHandler — Unregisters the slot key handler for a canonical subject type.
CreateProposal — Builds and signs a proposal using an explicit signer.
IsBridgeMintSubject — Phase 6 (D-06): classifies a proposal's subject as a bridge mint.
ProposalSigningBytes — Computes canonical bytes to sign a proposal.
VoteSigningBytes — Computes canonical bytes to sign a vote.
VoteBundleSigningBytes — Computes canonical bytes to sign a vote bundle.
ComputeSubjectId — Computes deterministic subject id/hash.
ComputeSubjectTypeHash — Computes deterministic bytes for a canonical subject type string.
DecodeNonceSubject
DecodeTaskResultSubject
DecodeRegistryBatchSubject
SubjectTypeMatches
CreateNonceSubject — Creates a nonce subject.
CreateTaskResultSubject — Creates a task-result subject.
CreateRegistryBatchSubject — Creates a registry-batch subject.
CreateGenericSubject — Creates a generic typed subject for application-owned payload schemas.
BestHash — Returns the lexicographically better hash among two values.
~ConsensusManager — Destroys the Consensus Manager object.
Close — Close and cleanup members of the Consensus Manager.
RegisterSubjectHandler — Registers a subject validation/handling callback by canonical subject type string.
UnregisterSubjectHandler — Unregisters a subject handler by canonical subject type string.
RegisterCertificateHandler — Registers a certificate handling callback by canonical subject type string.
UnregisterCertificateHandler — Unregisters a certificate handler by canonical subject type string.
RegisterProposalCleanupHandler — Registers a proposal cleanup callback by canonical subject type string.
UnregisterProposalCleanupHandler — Unregisters all proposal cleanup handlers for a canonical subject type string.
SetPendingLifecycleConfig — Overrides local pending lifecycle limits for deterministic tests/configuration.
Publish — Publishes a consensus envelope to pubsub.
CreateProposal — Builds and signs a proposal using the manager signer.
CreateVote — Builds and signs a vote for a proposal.
SetSlotHashPopulator — Injects the slot-hash populator used by CreateVote (Phase 6, D-01).
CreateVoteBundle — Builds and signs an aggregated vote bundle.
CreateCertificate — Creates a certificate from a proposal and votes.
TallyVotes — Tallies votes against an explicit registry snapshot.
TallyVotes — Tallies votes using the manager registry source.
EvaluateQuorum — Phase 6 (D-06): single quorum dispatcher.
SubmitProposal — Submits a proposal for local handling and broadcast.
SubmitVote — Submits a vote for local handling and broadcast.
SubmitCertificate — Submits a certificate for local handling and broadcast.
ResumeProposalHandling — Retries proposal handling once its subject becomes ready.
WakePendingDependency — Retries pending proposals waiting on a typed dependency key.
ProcessCertificates — Processes queued certificate work entries.
ConfigureCertificateDelay — Configures local delayed processing for received certificates.
GetCertificateBySubjectHash — Retrieves a certificate by subject hash.
CheckCertificateForSubject — Checks whether a certificate exists for a subject hash.
CheckCertificateForSubject — Checks whether a certificate exists for a subject.
ConfigureTimestampWindow — Sets timestamp validation window for received objects.
ConfigureRoundDuration — Sets consensus round duration.
ConfigureRoundSkew — Sets allowable round skew tolerance.
ConsensusManager — Constructs a consensus manager.
StartRoundTimer — Starts the background round timer loop.
HandleProposal — Handles an incoming proposal.
HandleVote — Handles an incoming vote.
HandleVoteBundle — Handles an incoming vote bundle.
HandleCertificate — Handles an incoming certificate.
FireProposalCleanupCallbacks — Fires all registered proposal cleanup callbacks for a proposal being cleaned up. Decodes the NonceSubject payload, extracts tx_hash, and dispatches to all handlers registered for the subject type under a shared lock.
IsBetterProposal — Compares competing proposals for the same slot.
IsTimestampSane — Validates whether a timestamp is inside acceptable drift bounds.
GetAggregatorRole — Evaluates the local node's aggregation role for a proposal round.
GetOrderedActiveValidators — Returns active validators in deterministic ordering.
GetCurrentRound — Computes current round number relative to proposal timestamp.
FetchProposalState — Loads proposal state associated with a certificate.
CreateProposalState — Creates an initial proposal state from a certificate payload.
ValidateCertificateBestProposal — Validates whether certificate points to the best known proposal in slot.
CollectCertificateVotes — Extracts certificate votes into normalized vote objects.
ClearProposalSlot — Clears local slot bookkeeping for a proposal.
ContinueProposalAfterSubject — Continues deferred proposal processing after subject validation.
AddPendingProposal — Stores proposal pending subject readiness.
RemovePendingProposal — Removes one pending proposal and its local indexes/accounting.
TakePendingProposals — Removes and returns pending proposals for a subject hash.
RemovePendingProposalLocked
CanAdmitPendingProposalLocked
NormalizePendingDependencies
NextPendingRetryDelayLocked
RetryPendingProposal
ProcessDuePendingRetries
ExpirePendingProposals
AddPendingVote — Stores vote pending proposal availability.
TakePendingVotes — Removes and returns pending votes for a proposal id.
RegisterCertificateFilter — Registers CRDT filter used for certificate keys.
FilterCertificate — Filters CRDT entries to certificate payloads.
CertificateReceived — Callback for new certificate data received from CRDT.
RecoverPendingCertificateWork — Recovers unfinished certificate-processing work from journal.
ValidateCertificate — Validates a certificate semantic and quorum constraints.
OnConsensusMessage — Callback for incoming consensus pubsub messages.
UpdateCertificatesPending — Recomputes local pending-certificate flag.
GetSlotKey — Computes proposal slot key used for conflict resolution.
GetSubjectHash — Computes subject hash from a subject object.
CreateProposalId — Computes deterministic proposal identifier.
SubjectHasValidTypeHash — Checks if a subject has a valid type hash.
ValidateSubject — Performs basic subject sanity validation.
CheckSubject — Performs lightweight subject checks.
CheckProposal — Performs lightweight proposal checks.
CheckVote — Performs lightweight vote checks.
GetPrintableSubjectHash — Produces printable subject hash representation for logs.
---
source: /SuperGenius/Classes/d3/dce/structdiscv5_1_1_crawler_stats/
title: discv5::CrawlerStats (struct)
---
Snapshot of crawler activity counters.
Returned by discv5_crawler::stats() for monitoring / reporting.
Members:
queued — Peers currently in the outbound query queue.
measured — Peers that returned at least one NODES reply.
failed — Peers that timed out or returned an error.
discovered — Unique valid peers forwarded to the callback.
invalid_enr — Records rejected due to parse/signature failure.
wrong_chain — Records dropped by the fork-id filter.
no_eth_entry — Records without an "eth" entry when filter active.
duplicates — Records deduplicated against known node_ids.
---
source: /SuperGenius/Classes/d7/d42/classsgns_1_1crdt_1_1_c_r_d_t_callback_manager/
title: sgns::crdt::CRDTCallbackManager (class)
---
Members:
NewDataPair
NewDataCallback
NewDataCallbackRegistry
DeletedDataCallback
DeletedDataCallbackRegistry
work_journal_
new_data_callback_registry_mutex_ — Mutex to manipulate new_data_callback_registry_.
new_data_callback_registry_ — New data callback registry.
deleted_data_callback_registry_mutex_ — Mutex to manipulate deleted_data_callback_registry_.
deleted_data_callback_registry_ — Deleted data callback registry.
logger_ — Logger instance.
CRDTCallbackManager — Construct a new CRDTCallbackManager object.
~CRDTCallbackManager — Destroy the CRDTCallbackManager object.
RegisterNewDataCallback — Registers a callback for when new data gets recorded to a specific pattern.
RegisterDeletedDataCallback — Registers a callback for when data gets deleted to a specific pattern.
UnregisterNewDataCallback — Removes a previously registered new data callback.
UnregisterDeletedDataCallback — Removes a previously registered deleted data callback.
PutDataCallback — Executes a registered new data callback that matches the key.
DeleteDataCallback — Executes a registered deleted data callback that matches the key.
---
source: /SuperGenius/Classes/dd/d9b/classsgns_1_1crdt_1_1_c_r_d_t_data_filter/
title: sgns::crdt::CRDTDataFilter (class)
---
Members:
ElementFilterCallback — Element filtering callback definition.
FilterCallbackRegistry
work_journal_
accept_by_default_ — The default behavior for values not matching any filter.
element_registry_mutex_ — Mutex for the element registry.
tombstone_registry_mutex_ — Mutex for the tombstone registry.
element_registry_ — Element filter callback registry.
tombstone_registry_ — Tombstone filter callback registry.
CRDTDataFilter — Construct a new CRDTDataFilter object.
~CRDTDataFilter — Destroy the CRDTDataFilter object.
RegisterElementFilter — Registers an element filter callback.
RegisterTombstoneFilter — Registers a tombstone filter callback.
UnregisterElementFilter — Removes the registration of an element filter that corresponds to a pattern.
UnregisterTombstoneFilter — Removes the registration of a tombstone filter that corresponds to a pattern.
FilterElementsOnDelta — Tries to filter the elements on delta according to stored filters.
FilterTombstonesOnDelta — Tries to filter the tombstones on delta according to stored filters.
---
source: /SuperGenius/Classes/db/dbb/classsgns_1_1crdt_1_1_crdt_datastore/
title: sgns::crdt::CrdtDatastore (class)
---
Forward declaration of CRDT Set class.
CRDT datastore class based on https://github.com/ipfs/go-ds-crdt
Members:
JobStatus
Error
Buffer
Logger
RocksDB
QueryResult
Delta
Element
IPLDNode
CRDTElementFilterCallback
CRDTNewElementCallback
CRDTDeletedElementCallback
PubSubBroadcasterExt
::sgns::Blockchain
::sgns::ValidatorRegistry
dataStore_
options_
namespaceKey_
set_
heads_
broadcaster_
dagSyncer_
logger_
numberOfDagWorkers
handleNextFuture_
handleNextThreadRunning_
rebroadcastFuture_
rebroadcastThreadRunning_
dagWorkers_
workerThreadIdsMutex_
handleNextThreadId_
rebroadcastThreadId_
closeStarted_
dagWorkerJobListThreadRunning_
dagWorkerMutex_
dagWorkerCv_
rootCIDJobList_
selfCreatedJobList_
pendingHeadsByRootCID_
pendingHeadsMutex_
pendingRootQueue_
activeRootCID_
work_journal_
crdt_filter_
started_
broadcast_enabled_
root_cid_sync_enabled_
rebroadcastMutex_
dagWorkerCvMutex_
rebroadcastCv_
topicNames_
topicNamesMutex_
pendingBroadcastTopics_
crdt_cb_manager_
pending_jobs_
has_full_node_topic_
shutdown_started_
cid_string_cache_
cid_string_cache_mutex_
threadSleepTimeInMilliseconds_
headsNamespace_
setsNamespace_
New — Factory method to create a shared_ptr to a CrdtDatastore.
DeltaMerge
GetValueSuffix
DecodeBroadcast
CreateDeltaToAdd
Start — Starts the datastore threads.
StartCIDProcessing
StartRebroadcastHeads
~CrdtDatastore — Destructor of the CRDT datastore.
GetKey
QueryKeyValues
QueryKeyValues — Queries with a middle part that can be a wildcard, negated string or normal string.
GetKeysPrefix
PutKey — Stores the given value in the CRDT store.
HasKey
DeleteKey
Publish — Publishes a Delta. Creates a DAG node from the given Delta, merges it into the CRDT, and broadcasts the node.
PrintDAG
CreateDeltaToRemove
PrintDataStore
Close
CancelAndCloseNow — Immediately cancels CRDT work and closes all worker threads. Safe to call multiple times.
RegisterElementFilter
RegisterNewElementCallback
RegisterDeletedElementCallback
UnregisterElementFilter
UnregisterNewElementCallback
UnregisterDeletedElementCallback
GetWorkJournal
AddTopicName — Configure which topic this datastore should filter on.
GetHeadList
RemoveHead
GetHeadHeight
AddHead
GetJobStatus
BroadcastHeadsForTopics — Broadcast heads for the specified topics.
IsBroadcastEnabled — Query whether outgoing head broadcasts are enabled.
GetTopicNames
GetILPDNodeContent
HandleCIDBroadcast — Handles when a CID broadcast gets received If the CID is not known triggers HandleRootCIDBlock.
HandleRootCIDBlock — Handles a root CID block by creating a job to fetch and process its content.
CreateRootJob — Creates a RootCIDJob for the given root CID.
GetLinksToFetch — Gets the links to fetch for a given node in a job.
FetchNodes — Fetches the nodes for the given links and root job.
GetDeltaFromNode — Gets the Delta from a given IPLD node, filtering it if it wasn't created by self.
MergeDataFromDelta — Merges the data from a given Delta into the CRDT set.
ProcessJobIteration — Processes A Root CID job.
Sync
PrintDAGRec
RebroadcastHeads
Broadcast — Broadcasts a set of CIDs. Encodes and broadcasts the provided list of CIDs.
EncodeBroadcast
CreateIPLDNode
CreateDAGNode
AddDAGNode
SyncDatastore
PutElementsCallback
DeleteElementsCallback
UpdateCRDTHeads
EnqueueRootCID
WaitForJob
EncodeBroadcastStatic
CrdtDatastore
CrdtDatastore
ShouldContinueWorkerThread
ProcessJobs
SeedNextExternalRoot
StopWorkerLoops
IsCurrentThreadInternalWorker
WaitForWorkersToExit
IsRootCIDPendingOrActive
IsRootCIDPendingOrActiveLocked
HandleJobProcessingFailure
HandleJobProcessingSuccess
CleanupFailedJob
MarkJobPending
MarkJobFailed
---
source: /SuperGenius/Classes/d5/dea/classsgns_1_1crdt_1_1_crdt_heads/
title: sgns::crdt::CrdtHeads (class)
---
CrdtHeads manages the current Merkle-CRDT heads.
Members:
DataStore
Buffer
CRDTHeadList
CRDTListResult
mutex_
dataStore_
cache_
namespaceKey_
logger_
CrdtHeads
CrdtHeads
~CrdtHeads — Destroy the Crdt Heads object.
operator==
operator!=
operator=
GetNamespaceKey
GetKey
IsHead
GetHeadHeight
GetLength
Add
Remove
Replace
GetList
PrimeCache
Write
Delete
CrdtHeads
---
source: /SuperGenius/Classes/db/d77/structsgns_1_1crdt_1_1_crdt_options/
title: sgns::crdt::CrdtOptions (struct)
---
Options holds configurable values for CrdtDatastore.
Members:
VerifyErrorCode
Buffer
Logger
logger
rebroadcastIntervalMilliseconds
dagSyncerTimeoutSec
numWorkers
DefaultOptions
Verify
operator==
operator!=
---
source: /SuperGenius/Classes/dd/d80/classsgns_1_1crdt_1_1_crdt_set/
title: sgns::crdt::CrdtSet (class)
---
CrdtSet implements an Add-Wins Observed-Remove Set using delta-CRDTs (https://arxiv.org/abs/1410.2803) and backing all the data in a datastore. It is fully agnostic to MerkleCRDTs or the delta distribution layer. It chooses the Value with most priority for a Key as the current Value. When two values have the same priority, it chooses by alphabetically sorting their unique IDs alphabetically.
Members:
QuerySuffix
Delta
Element
Buffer
DataStore
QueryResult
PutHookPtr
DeleteHookPtr
dataStore_
namespaceKey_
mutex_
putHookFunc_
deleteHookFunc_
elemsNamespace_
tombsNamespace_
keysNamespace_
valueSuffix_
prioritySuffix_
CrdtSet
CrdtSet
~CrdtSet
operator==
operator!=
operator=
GetValueFromDatastore
CreateDeltaToRemove
GetElement
QueryElements
QueryElements — Queries with a middle part that can be a wildcard, negated string or normal string.
IsValueInSet
InElemsNotTombstoned
KeyPrefix
ElemsPrefix
TombsPrefix
KeysKey
ValueKey
PriorityKey
GetPriority
SetPriority
SetValue
SetValue
PutElems
PutTombs
Merge
InTombsKeyID
SetPutHook
SetDeleteHook
DataStoreSync
PrintDataStore
GetPrioritySuffix
GetValueSuffix
CreateDeltaToAdd
CrdtSet
SetPriority
PrintTombs
---
source: /SuperGenius/Classes/d9/dc9/classsgns_1_1crdt_1_1_c_r_d_t_work_journal/
title: sgns::crdt::CRDTWorkJournal (class)
---
Tracks key processing lifecycle persisted in RocksDB.
Entries are stored under the internal work namespace and can be recovered across process restarts.
Members:
State — Processing state for a tracked key.
NAMESPACE_PREFIX — Storage key namespace.
datastore_ — Backing datastore for journal state.
mutex_ — Synchronizes public journal operations.
New — Creates a work journal backed by RocksDB.
MarkSeen — Marks a key as seen and pending processing.
MarkProcessing — Marks an existing key as processing with a lease.
MarkStalled — Marks an existing key as stalled with a lease.
MarkDone — Removes a key from the journal.
GetEntry — Retrieves one entry by logical key.
ListUnfinished — Lists all unfinished entries, optionally filtered by key regex.
RecoverStaleProcessing — Converts stale processing entries to stalled.
CRDTWorkJournal — Constructs a work journal.
BuildStorageKey — Builds the internal storage key for a logical key.
GetEntryUnlocked — Retrieves an entry without taking the mutex.
PutEntryUnlocked — Stores an entry without taking the mutex.
NowMs — Returns current Unix time in milliseconds.
DeserializeEntry — Parses a serialized entry payload.
SerializeEntry — Serializes an entry payload.
Split — Splits a string by a separator.
---
source: /SuperGenius/Classes/dc/d29/struct_crypto3_util/
title: Crypto3Util (struct)
---
Members:
BytesToCppInt
CppIntToBytes
---
source: /SuperGenius/Classes/de/daf/class_c_singleton/
title: CSingleton (class)
---
Elemental Engine Copyright (C) 2013 Social Systems Technology, Inc.
This code is redistributable under the terms of the EE License.
This code is distributed without warranty or implied warranty of merchantability or fitness for a particular purpose. See the EE License for more details.
You should have received a copy of the EE License along with this code; If not, write to Social Systems Technology, Inc., 109 East 17th Street Suite 4210 Cheyenne, WY 82001 USA
Members:
isInitialized
_instance
Instance
CSingleton
~CSingleton
CSingleton
operator=
---
source: /SuperGenius/Classes/d1/d14/classsgns_1_1storage_1_1rocksdb_1_1_cursor/
title: sgns::storage::rocksdb::Cursor (class)
---
Instance of cursor can be used as bidirectional iterator over key-value bindings of the Map.
Members:
i_
~Cursor
Cursor
seekToFirst — Same as std::begin(...);.
seek
seekToLast — Same as std::rbegin(...);, e.g. points to the last valid element.
isValid — Is iterator valid?
next — Make step forward.
prev — Make step backwards.
key — Getter for key.
value — Getter for value.
---
source: /SuperGenius/Classes/d5/d05/classsgns_1_1crdt_1_1_d_a_g_syncer/
title: sgns::crdt::DAGSyncer (class)
---
A DAGSyncer is an abstraction to an IPLD-based p2p storage layer. A DAGSyncer is a DAGService with the ability to publish new ipld nodes to the network, and retrieving others from it.
Members:
LinkInfoPair
LinkInfoSet
HasBlock
GetNodeWithoutRequest
TraverseCIDsLinks
InitCIDBlock
IsCIDInCache
DeleteCIDBlock
Stop
markResolved
isResolved
---
source: /SuperGenius/Classes/db/d23/structsgns_1_1crdt_1_1_crdt_datastore_1_1_dag_worker/
title: sgns::crdt::CrdtDatastore::DagWorker (struct)
---
DAG worker structure to keep track of worker threads
Members:
dagWorkerFuture_
dagWorkerThreadRunning_
threadId_
---
source: /SuperGenius/Classes/de/d54/structsgns_1_1crdt_1_1_c_r_d_t_callback_manager_1_1_deleted_data_callback_entry/
title: sgns::crdt::CRDTCallbackManager::DeletedDataCallbackEntry (struct)
---
Members:
pattern
regex
callback
---
source: /SuperGenius/Classes/d5/d9e/structrlpx_1_1crypto_1_1_kdf_1_1_derived_keys/
title: rlpx::crypto::Kdf::DerivedKeys (struct)
---
Members:
aes_key
mac_key
---
source: /SuperGenius/Classes/de/d39/struct_dev_config/
title: DevConfig (struct)
---
Runtime configuration values used to bootstrap a Genius node instance.
Members:
Addr — Developer payout address.
Cut — Developer or peer cut encoded as a string.
TokenValueInGNUS — Conversion rate used for child-token.
TokenID — Child token identifier configured for this node.
BaseWritePath — Base directory for node databases, logs, and account storage.
---
source: /SuperGenius/Classes/d4/dae/classdiscv4_1_1_dial_history/
title: discv4::DialHistory (class)
---
Tracks recently-dialed peers and suppresses retry attempts until a configurable cooldown expires.
Mirrors go-ethereum's expHeap-backed dial history in p2p/dial.go. The default expiry (35 s) matches go-ethereum's dialHistoryExpiration (inboundThrottleTime 30 s + 5 s guard).
Not thread-safe — callers must serialise access if needed.
Members:
Clock
TimePoint
Duration
kDefaultExpiry — Default expiry duration matching go-ethereum's dialHistoryExpiration.
expiry_
entries_
DialHistory
add — Record that a node has just been dialed.
contains — Returns true if the node was recently dialed and the cooldown has not yet expired. Does NOT call expire() automatically — call expire() first if you want stale entries pruned.
expire — Remove all entries whose expiry time has passed.
size — Number of active (non-expired) entries.
key — Derive a stable string key from a node_id for use in the map.
---
source: /SuperGenius/Classes/db/dc2/structdiscv4_1_1_dial_scheduler/
title: discv4::DialScheduler (struct)
---
Per-chain dial scheduler mirroring go-ethereum's dialScheduler. Maintains up to pool->max_per_chain concurrent dial coroutines, respecting the global pool->max_total cap across all chains. All methods run on the single io_context thread — no mutex needed.
Members:
io
pool
dial_fn
feedback_fn
filter_fn — Optional peer filter; nullptr = accept all.
dial_history
active
validated_count — currently active validated connections
total_validated — cumulative count (never decrements)
stopping
queue
active_sessions
DialScheduler
enqueue — Enqueue a validated peer for dialing. If a slot is free (both per-chain and global caps), spawns immediately. Otherwise queues for later drain.
release — Called by every dial exit path. Recycles the slot and drains the queue up to the available capacity.
stop — Async stop — disconnect all active sessions immediately. Returns immediately; fds are freed on the next io_context cycle.
spawn_dial
---
source: /SuperGenius/Classes/de/dc8/struct_dial_stats/
title: DialStats (struct)
---
Members:
dialed — total dial attempts started
connect_failed — TCP / auth / pre-HELLO Disconnect.
wrong_chain — Status received but wrong network_id.
status_timeout — no Status within timeout (not TooManyPeers)
too_many_peers — TooManyPeers before chain confirmed.
too_many_peers_right_chain — TooManyPeers after chain confirmed.
connected — right chain, Status validated
eth_messages — post-handshake ETH messages observed
connected_seeded
connected_discv5
filtered_bad_peers
---
source: /SuperGenius/Classes/d2/d8d/structrlpx_1_1protocol_1_1_disconnect_message/
title: rlpx::protocol::DisconnectMessage (struct)
---
Members:
reason
encode
decode
---
source: /SuperGenius/Classes/d0/d12/structdiscv4_1_1_discovered_peer/
title: discv4::DiscoveredPeer (struct)
---
Members:
node_id
ip
udp_port
tcp_port
last_seen
eth_fork_id — ENR-derived ForkId; empty if eth entry absent or ENR failed.
---
source: /SuperGenius/Classes/df/d4a/classdiscv4_1_1discv4__client/
title: discv4::discv4_client (class)
---
Discovery v4 protocol client.
Implements the Ethereum Discovery v4 protocol for peer discovery. Uses UDP for communication with bootstrap nodes and discovered peers.
Protocol flow:
Send PING to bootstrap nodes
Receive PONG responses
Send FIND_NODE to discover more peers
Receive NEIGHBOURS responses with peer lists
Maintain K-bucket routing table
Members:
io_context_
config_
socket_
logger_
peers_mutex_
peers_
peer_callback_
error_callback_
running_
pending_replies_
bonded_set_ — Endpoints that completed PING→PONG bond. key: "ip:port".
discovered_set_ — Endpoints already queued for recursive PING+FIND_NODE (prevents duplicate work). key: "ip:port".
discv4_client
~discv4_client
start
stop
ping — Send PING to a specific node.
find_node — Send FIND_NODE to discover peers near a target.
request_enr — Send ENRRequest to a bonded peer and return the raw ENR record bytes.
get_peers
set_peer_discovered_callback
set_error_callback
local_node_id
bound_port — Return the local UDP port the socket is bound to. Useful in tests where bind_port=0 (OS-assigned ephemeral port).
receive_loop
handle_packet
handle_ping
handle_pong
handle_find_node
handle_neighbours
handle_enr_request
handle_enr_response
send_packet
sign_packet
verify_packet
ensure_bond — Ensure a PING→PONG bond exists before sending FIND_NODE. Calls ping() if the endpoint is not yet in bonded_set_.
compute_node_id
reply_key — Build the pending-reply map key.
---
source: /SuperGenius/Classes/d2/d8f/structdiscv4_1_1discv4__enr__request/
title: discv4::discv4_enr_request (struct)
---
ENRRequest packet — discv4 wire type 0x05 (EIP-868).
Mirrors go-ethereum v4wire.ENRRequest: ENRRequeststruct{
Expirationuint64
Rest[]rlp.RawValue`rlp:"tail"`
}
Wire layout (after signing): hash(32) || sig(65) || packet-type(1) || RLP([expiration])
Members:
expiration — Unix timestamp after which the packet expires.
RlpPayload — Encode as packet-type byte || RLP([expiration]), ready for signing.
---
source: /SuperGenius/Classes/d6/db4/structdiscv4_1_1discv4__enr__response/
title: discv4::discv4_enr_response (struct)
---
Parsed ENRResponse — discv4 wire type 0x06 (EIP-868).
Mirrors go-ethereum v4wire.ENRResponse: ENRResponsestruct{
ReplyTok[]byte//HashoftheENRRequestpacket.
Recordenr.Record
Rest[]rlp.RawValue`rlp:"tail"`
}
Wire layout (incoming): hash(32) || sig(65) || type(1) || RLP([reply_tok(32), record_rlp])
Members:
request_hash — Hash of the originating ENRRequest packet (the ReplyTok field).
record_rlp
Parse — Parse a full discv4 wire packet into a discv4_enr_response.
ParseEthForkId — Extract the ForkId from the eth ENR entry in record_rlp.
---
source: /SuperGenius/Classes/dd/da0/classdiscv4_1_1discv4__packet/
title: discv4::discv4_packet (class)
---
Base class for all Discovery V4 packets.
Members:
packetType_
version_
name_
~discv4_packet
RlpPayload
PacketType
Version
Name
ValidateHash
Keccak256 — Compute the Keccak-256 digest of payload.
discv4_packet
---
source: /SuperGenius/Classes/d4/d59/classdiscv4_1_1discv4__ping/
title: discv4::discv4_ping (class)
---
Members:
fromEp
toEp
expires
discv4_ping
RlpPayload
FromEndpoint
ToEndpoint
Expiration
---
source: /SuperGenius/Classes/d6/d87/structdiscv4_1_1discv4__pong/
title: discv4::discv4_pong (struct)
---
Members:
toEndpoint
pingHash
expiration
ersErq
Parse
ParseEndpoint
---
source: /SuperGenius/Classes/d6/dd3/structdiscv4_1_1discv4_config/
title: discv4::discv4Config (struct)
---
Members:
bind_ip — Local UDP bind address.
bind_port
tcp_port
private_key
public_key
ping_timeout
peer_expiry
---
source: /SuperGenius/Classes/d7/da5/classdiscv4_discovery/
title: discv4Discovery (class)
---
Members:
io_context_
socket_
ctx_
bootstrap_nodes_
peers_
discv4Discovery
~discv4Discovery
SendPing
GetNodeID
HandlePacket
Run
ParseNodeID
---
source: /SuperGenius/Classes/d7/d2f/classdiscv5_1_1discv5__client/
title: discv5::discv5_client (class)
---
Discovery v5 protocol client.
Owns the UDP socket, drives the receive loop, and delegates peer lifecycle management to an internal discv5_crawler.
The public interface is deliberately narrow and mirrors the discv4_client shape so that callers can adopt either protocol with minimal friction:
discv5::discv5Configcfg;
cfg.bootstrap_enrs=chain_config.discv5_bootnodes;
autoclient=std::make_unique(io,cfg);
client->set_peer_discovered_callback([](constdiscovery::ValidatedPeer&p){…});
client->start();
io.run();
Thread safety
All public methods must be called from the thread that drives the supplied io_context. The peer-discovered callback is invoked on that same thread.
Members:
io_context_
config_
socket_
crawler_
logger_
sessions_
pending_requests_
sent_challenges_
running_
received_packets_
dropped_undersized_packets_
send_findnode_failures_
whoareyou_packets_
handshake_packets_
outbound_handshake_attempts_
outbound_handshake_failures_
inbound_handshake_reject_auth_
inbound_handshake_reject_challenge_
inbound_handshake_reject_record_
inbound_handshake_reject_crypto_
inbound_handshake_reject_decrypt_
inbound_handshake_seen_
inbound_message_seen_
inbound_message_decrypt_fail_
nodes_packets_
discv5_client — Construct the client.
~discv5_client
discv5_client
operator=
discv5_client
operator=
add_bootnode — Add a single bootstrap ENR URI.
set_peer_discovered_callback — Register the callback invoked for each newly discovered peer.
set_error_callback — Register the error callback.
start — Bind the UDP socket and start the receive + crawler loops.
stop — Close the UDP socket and signal the crawler to stop.
stats — Return a snapshot of current crawler activity counters.
local_node_id — Return the local node identifier (64-byte public key).
is_running — Returns true when the client has been started and not yet stopped.
bound_port — Return the local UDP port the socket is currently bound to. Useful in tests when bind_port is 0 (ephemeral OS-assigned port).
received_packet_count — Return the number of non-undersized UDP packets accepted by the receive loop.
dropped_undersized_packet_count — Return the number of undersized UDP packets dropped by the receive loop.
send_findnode_failure_count — Return the number of FINDNODE send attempts that failed.
whoareyou_packet_count — Return the number of valid WHOAREYOU packets parsed by the receive path.
handshake_packet_count — Return the number of successfully decrypted handshake packets.
outbound_handshake_attempt_count — Return the number of outbound handshake send attempts.
outbound_handshake_failure_count — Return the number of outbound handshake send attempts that failed.
inbound_handshake_reject_auth_count — Return the number of inbound handshake packets rejected during auth parsing.
inbound_handshake_reject_challenge_count — Return the number of inbound handshake packets rejected due to missing/mismatched challenge state.
inbound_handshake_reject_record_count — Return the number of inbound handshake packets rejected during ENR/identity validation.
inbound_handshake_reject_crypto_count — Return the number of inbound handshake packets rejected during shared-secret/key derivation.
inbound_handshake_reject_decrypt_count — Return the number of inbound handshake packets rejected due to message decrypt failure.
inbound_handshake_seen_count — Return the number of inbound handshake packets observed before validation.
inbound_message_seen_count — Return the number of inbound MESSAGE packets observed before validation/decrypt.
inbound_message_decrypt_fail_count — Return the number of inbound MESSAGE packets that failed decrypt with a matching session.
nodes_packet_count — Return the number of successfully decoded NODES packets.
receive_loop — Async receive loop — reads UDP packets and dispatches them.
crawler_loop — Async crawler loop — drains the queued peer set and issues FINDNODE requests at the configured interval.
handle_packet — Handle a raw incoming UDP packet.
send_findnode — Send a FINDNODE request to target.
send_packet — Send a raw UDP packet to a peer endpoint.
send_whoareyou — Send a WHOAREYOU challenge in response to a packet from sender.
handle_findnode_request — Process a decrypted FINDNODE request and send a NODES response.
build_local_enr — Build the local ENR record used in handshake/NODES responses.
---
source: /SuperGenius/Classes/db/d16/classdiscv5_1_1discv5__crawler/
title: discv5::discv5_crawler (class)
---
Discv5 peer crawler: seed → FINDNODE loop → ValidatedPeer emission.
Manages four peer sets that mirror the nim dcrawl pattern:
queued: nodes to be queried next (FINDNODE not yet sent)
measured: nodes that responded to at least one FINDNODE query
failed: nodes that timed out or returned an error
discovered: deduplication set; node_ids already forwarded downstream
Protocol implementation note
The first iteration keeps the network I/O intentionally simple: it pings bootstrap nodes with ENR-sourced addresses and processes NODES replies. A full WHOAREYOU/HANDSHAKE session layer will be added in a future sprint.
Thread safety
start() and stop() must be called from the same thread that drives the provided asio::io_context. The stats() accessor is lock-protected.
Members:
config_
state_mutex_
queued_peers_ — Peers waiting to be queried (dequeue → FINDNODE).
measured_ids_ — node_id keys of peers that have responded at least once.
failed_ids_ — node_id keys of peers that failed to respond.
discovered_ids_ — node_id keys of peers already forwarded to the callback (dedup).
stat_discovered_
stat_invalid_enr_
stat_wrong_chain_
stat_no_eth_entry_
stat_duplicates_
running_
peer_callback_
error_callback_
discv5_crawler — Construct the crawler with a fully-populated configuration.
~discv5_crawler
discv5_crawler
operator=
discv5_crawler
operator=
add_bootstrap — Seed the crawler with an additional bootstrap ENR record.
set_peer_discovered_callback — Register the callback invoked for each newly discovered peer.
set_error_callback — Register the error callback for non-fatal diagnostics.
start — Enqueue all bootstrap seeds and transition to running state.
stop — Stop the crawler and clear the running flag.
process_found_peers — Manually enqueue a set of ValidatedPeer entries from an external source (e.g. a NODES reply decoded by the client layer).
ingest_discovered_peers — Accept peers decoded from a live NODES response.
stats — Return a snapshot of current activity counters (thread-safe).
is_running — Returns true if the crawler has been started and not yet stopped.
mark_measured — Mark a peer as measured (responded to a query).
mark_failed — Mark a peer as failed (query timed out or returned error).
dequeue_next — Return the next queued NodeId to probe, or nullopt if queue empty.
is_discovered — True if node_id has already been forwarded to the callback.
enqueue_enr_uri — Attempt to parse and enqueue a single ENR URI string.
enqueue_enode_uri — Attempt to parse and enqueue a single enode URI string.
emit_peer — Forward a valid peer through the fork-id filter and callback.
node_key — Convert a NodeId to a string key for use in sets/maps.
---
source: /SuperGenius/Classes/de/df2/structdiscv5_1_1discv5_config/
title: discv5::discv5Config (struct)
---
Configuration for the discv5 client and crawler.
All numeric fields default to the values defined in discv5_constants.hpp.
Members:
bind_ip — Bind address for the local UDP socket.
bind_port — UDP port to bind. 0 → OS-assigned ephemeral port.
tcp_port — TCP port advertised to peers (for RLPx dial-back).
private_key — secp256k1 private key (32 bytes). Must be set before start().
public_key — secp256k1 public key (64 bytes, uncompressed, no 0x04 prefix).
bootstrap_enrs — Bootstrap ENR URI strings ("enr:…"). At least one is required.
max_concurrent_queries — Maximum number of concurrent FINDNODE queries.
query_interval_sec — Seconds between full crawler sweeps.
peer_expiry_sec — Seconds before a discovered peer is considered stale and evicted.
required_fork_id
---
source: /SuperGenius/Classes/d7/dab/structdiscv5_1_1_discv5_peer/
title: discv5::Discv5Peer (struct)
---
A peer discovered by the discv5 crawler.
Owns the source enr, derives the peer handoff record from it, and tracks the last-contact timestamp for eviction bookkeeping.
Members:
enr — Full parsed ENR.
peer — Handoff record for DialScheduler.
last_seen — Time of most recent contact.
---
source: /SuperGenius/Classes/d2/d3c/structintx_1_1div__result/
title: intx::div_result (struct)
---
Division.
Members:
quot
rem
operator std::tuple< QuotT &, RemT & > — Conversion to tuple of references, to allow usage with std::tie().
---
source: /SuperGenius/Classes/da/d28/classrlpx_1_1crypto_1_1_ecdh/
title: rlpx::crypto::Ecdh (class)
---
Members:
Ecdh
compute_shared_secret
generate_ephemeral_keypair
verify_public_key
---
source: /SuperGenius/Classes/d5/db7/class_e_c_d_h_encryption/
title: ECDHEncryption (class)
---
Elliptic-curve Diffie-Hellman class using AES 256 Encryption.
Members:
session_secret — The session secret used in encryption and decryption.
EncryptData — Encrypts a vector of data using the session secret.
DecryptData — Decrypts a vector of data using the session secret.
CheckEqual — Checks if two ECDHEncryption instances are equal.
ECDHEncryption — Constructs an ECDHEncryption object and creates a session secret.
---
source: /SuperGenius/Classes/de/d81/class_e_c_d_s_a_public_key/
title: ECDSAPublicKey (class)
---
Base class to organize public key values of ECDSA.
Members:
X — String representation of X coordinate.
Y — String representation of Y coordinate.
X_vect — Vector representation of X coordinate.
Y_vect — Vector representation of Y coordinate.
pubkey_used_value — Used value of the public key (compressed, uncompressed..)
ECDSAPublicKey — Constructs a new ECDSAPublicKey object.
~ECDSAPublicKey — Virtual destructor to prevent memory leak.
operator std::string & — Overloads the assignment to string.
GetEntireKey
CalcPubkeyUsedValue — Calculates the single data used key value.
---
source: /SuperGenius/Classes/de/d75/class_e_c_el_gamal_key_generator/
title: ECElGamalKeyGenerator (class)
---
Members:
cpp_int
private_key — Private key instance.
public_key — Public key instance.
ECElGamalKeyGenerator
GetPrivateKey
EncryptData
DecryptData
---
source: /SuperGenius/Classes/df/d3c/struct_e_c_el_gamal_point/
title: ECElGamalPoint (struct)
---
Members:
cpp_int
curve_point_type
coeff_type
a_coeff
b_coeff
prime_number
curve_point
ECElGamalPoint
ECElGamalPoint
operator+
operator-
UnMap
CalcPossibleYSquared
---
source: /SuperGenius/Classes/dd/d23/classrlpx_1_1auth_1_1_ecies_cipher/
title: rlpx::auth::EciesCipher (class)
---
Members:
EciesCipher
encrypt
decrypt
estimate_encrypted_size
compute_shared_secret
derive_aes_key
derive_mac_key
---
source: /SuperGenius/Classes/de/dda/structrlpx_1_1auth_1_1_ecies_decrypt_params/
title: rlpx::auth::EciesDecryptParams (struct)
---
Members:
ciphertext
recipient_private_key
shared_mac_data
---
source: /SuperGenius/Classes/d8/d5d/structrlpx_1_1auth_1_1_ecies_encrypt_params/
title: rlpx::auth::EciesEncryptParams (struct)
---
Members:
plaintext
recipient_public_key
shared_mac_data
---
source: /SuperGenius/Classes/da/d91/class_key_generator_1_1_el_gamal/
title: KeyGenerator::ElGamal (class)
---
Members:
CypherTextType
SAFE_PRIME
GENERATOR
private_key — Private key instance.
public_key — Public key instance.
bsgs_instance
DecryptDataAdditive
ElGamal
ElGamal
ElGamal
ElGamal
~ElGamal
GetPublicKey
GetPrivateKey
DecryptData
DecryptData
CreateGeneratorParams — Create prime number and generator.
EncryptData
EncryptData
EncryptDataAdditive
DecryptData
DecryptDataAdditive
---
source: /SuperGenius/Classes/d7/d5e/class_encryption/
title: Encryption (class)
---
Base class for Encryption scheme.
Members:
~Encryption — Virtual destructor to prevent memory leakage.
EncryptData — Interface function to Encrypt data.
DecryptData — Interface function to Decrypt data.
CheckEqual — Interface function to check if two Encryption instances are equal.
operator== — Overloads equality operator to CheckEqual.
---
source: /SuperGenius/Classes/d3/d8e/structdiscv4_1_1discv4__ping_1_1_endpoint/
title: discv4::discv4_ping::Endpoint (struct)
---
Members:
ipBv
ipBytes
udpPort
tcpPort
Endpoint
Endpoint
encode
---
source: /SuperGenius/Classes/d5/d01/structdiscv4_1_1discv4__pong_1_1_endpoint/
title: discv4::discv4_pong::Endpoint (struct)
---
Members:
ip
udpPort
tcpPort
---
source: /SuperGenius/Classes/d7/de7/classdiscv5_1_1_enr_parser/
title: discv5::EnrParser (class)
---
Parses and validates Ethereum Node Records (EIP-778).
Responsibilities:
Decode the base64url body of an "enr:…" URI.
RLP-decode the record into signature + key–value content.
Verify the secp256k1-v4 ECDSA signature.
Extract all standard fields into an EnrRecord.
Reject incomplete records that cannot yield a dialable ValidatedPeer.
The class is stateless and all public methods are const/noexcept-safe.
Members:
parse — Parse and validate an ENR URI of the form "enr:".
decode_uri — Decode the base64url body of an ENR URI into raw bytes.
base64url_decode — Base64url-decode a raw body string (without the "enr:" prefix).
decode_rlp — RLP-decode raw bytes into an EnrRecord (no signature verification).
verify_signature — Verify the secp256k1-v4 signature embedded in record.
to_validated_peer — Convert a fully-parsed EnrRecord into a ValidatedPeer.
decode_ipv4 — Decode a single 4-byte "ip" field into a dotted-decimal string.
decode_ipv6 — Decode a 16-byte "ip6" field into a compressed IPv6 string.
decode_port — Decode a big-endian uint16 from up to 2 bytes.
decode_eth_entry — Decode the "eth" key–value entry into a ForkId.
decompress_pubkey — Derive the 64-byte uncompressed node_id from a 33-byte compressed key.
---
source: /SuperGenius/Classes/d2/db1/structdiscv5_1_1_enr_record/
title: discv5::EnrRecord (struct)
---
Parsed Ethereum Node Record as defined by EIP-778.
All fields are optional except seq, raw_rlp, and node_id (which are populated whenever a record is successfully parsed by EnrParser).
Key–value pairs that are not natively understood are stored verbatim in extra_fields so that the record can be re-serialised without loss.
Members:
seq — Sequence number. Higher value → more recent record.
raw_rlp — Raw RLP bytes of the complete record (signature + content). Stored so that the signature can be re-verified later.
node_id — 64-byte uncompressed node public key (sans 0x04 prefix). Derived from the "secp256k1" (compressed) field.
compressed_pubkey — 33-byte compressed secp256k1 public key as stored in the record.
ip — IPv4 address string (empty if absent).
ip6 — IPv6 address string (empty if absent).
udp_port — UDP discovery port (0 if absent).
tcp_port — TCP RLPx port (0 if absent).
udp6_port — UDP discovery port for IPv6 endpoint (0 if absent).
tcp6_port — TCP port for IPv6 endpoint (0 if absent).
identity_scheme — ENR identity scheme name, e.g. "v4" for secp256k1-v4.
eth_fork_id — Optional Ethereum fork identifier parsed from the "eth" entry.
extra_fields — Unknown key–value pairs preserved verbatim (key → raw bytes).
---
source: /SuperGenius/Classes/db/dea/structdiscv5_1_1_enr_sig_wire/
title: discv5::EnrSigWire (struct)
---
Wire layout of an ENR compact secp256k1 signature (no recovery id).
Members:
bytes — 64-byte compact signature (R || S)
---
source: /SuperGenius/Classes/d2/d7c/classdiscv5_1_1_enr_tree_resolver/
title: discv5::EnrTreeResolver (class)
---
Resolve EIP-1459 DNS discovery trees into ENR URI seed records.
Members:
lookup_
EnrTreeResolver
resolve
is_enr_tree_url
parse_url
system_txt_lookup
resolve_url
resolve_entry
---
source: /SuperGenius/Classes/d4/de2/structdiscv5_1_1_enr_tree_url/
title: discv5::EnrTreeUrl (struct)
---
Parsed EIP-1459 ENR-tree URL.
Members:
public_key
domain
---
source: /SuperGenius/Classes/d6/db5/structsgns_1_1crdt_1_1_c_r_d_t_work_journal_1_1_entry/
title: sgns::crdt::CRDTWorkJournal::Entry (struct)
---
Serialized work-journal entry for a key.
Members:
key — Logical key being tracked.
state — Current processing state.
attempt_count — Number of processing/stall transitions.
updated_at_ms — Last update time in Unix milliseconds.
lease_until_ms — Processing lease deadline in Unix milliseconds.
---
source: /SuperGenius/Classes/db/d70/classsgns_1_1_escrow_transaction/
title: sgns::EscrowTransaction (class)
---
Transaction that reserves funds for a job escrow while tracking peer payout metadata.
Members:
utxo_params_ — Signed inputs and outputs for the escrow hold.
amount_ — Total amount locked in escrow.
dev_addr_ — Developer payout address for escrow remainder.
peers_cut_ — Peer payout multiplier used during escrow release.
registered — Forces static initialization of the escrow-hold transaction deserializer.
New — Creates a new escrow-hold transaction from signed UTXO parameters.
DeSerializeByteVector — Deserializes a serialized escrow transaction.
~EscrowTransaction — Destroys the escrow transaction.
SerializeByteVector — Serializes the transaction into a byte vector, including the DAG metadata.
SerializeToEmbeddedTransaction — Serializes the transaction into an EmbeddedTransaction proto with the appropriate oneof field set.
GetNumChunks — Returns the number of chunks reserved for peer payouts.
GetTransactionSpecificPath — Returns the transaction-specific path component for storage and retrieval.
GetUTXOParameters — Returns the escrow transaction UTXO inputs and outputs.
HasUTXOParameters — Returns if transaction supports UTXOs.
GetUTXOParametersOpt — Returns the UTXOs.
GetDevAddress — Returns the developer payout address.
GetAmount — Returns the total amount locked in escrow.
GetPeersCut — Returns the configured peer-share multiplier.
SerializeByteVector — Serializes the transaction into a byte vector, including the DAG metadata.
SerializeByteVector — Serializes the transaction using the internal DAG metadata.
SerializeToEmbeddedTransaction — Serializes the transaction into an EmbeddedTransaction proto with the appropriate oneof field set.
SerializeToEmbeddedTransaction — Serializes using internal DAG metadata.
EscrowTransaction — Constructs an escrow-hold transaction from its payload and DAG metadata.
Register — Registers the deserializer for the escrow-hold transaction type.
---
source: /SuperGenius/Classes/d7/db6/classethereum_1_1_ethereum_key_generator_1_1_ethereum_e_c_d_s_a_public_key/
title: ethereum::EthereumKeyGenerator::EthereumECDSAPublicKey (class)
---
Ethereum ECDSA public key derived class.
Members:
CalcPubkeyUsedValue — Implements the calculation for the public key value used for ethereum.
ECDSAPublicKey — Constructs a new ECDSAPublicKey object.
---
source: /SuperGenius/Classes/dc/dc0/classethereum_1_1_ethereum_key_generator/
title: ethereum::EthereumKeyGenerator (class)
---
Creates a pair of ECDSA keys and a ethereum address.
Members:
PubKeyPair_t
key_gen — Ethereum random key generator.
ADDRESS_HEADER — Ethereum address header.
KECCAK_RES_VALID_POS — Start position for address derivation.
ADDRESS_VALID_POS — Start position of the address.
ADDRESS_SIZE_CHARS — Size of the address in characters.
privkey — Private key pointer.
pubkey — Public key pointer.
pubkey_info — Instance of public key information class.
address — Ethereum address.
EthereumKeyGenerator — Construct a new Ethereum Key Generator.
EthereumKeyGenerator — Import a private key and construct a new Ethereum Key Generator.
EthereumKeyGenerator — Import a private key and construct a new Ethereum Key Generator.
get_private_key — Getter for private key (be careful with security implications)
get_public_key — Getter for public key.
get_address — Getter for the Ethereum address.
GetUsedPubKeyValue — Get the single public key value used by ethereum addressing.
GetEntirePubValue — Get all key value of the public key.
ExtractPubKeyFromField — Extract the key vector data from the ECDSA public key.
DeriveAddress — Derive the ethereum address from de XY concatenated coordinates.
CreateKeys — Create the ECDSA key pair.
BuildPublicKey
DeriveAddress — Derive the Ethereum address from own key.
---
source: /SuperGenius/Classes/d7/da3/structeth_1_1_eth_message_field_schema/
title: eth::EthMessageFieldSchema (struct)
---
Members:
name
type
size
offset
---
source: /SuperGenius/Classes/dd/df0/structeth_1_1_eth_message_schema/
title: eth::EthMessageSchema (struct)
---
Members:
name
message_id
protocol_version
fields
---
source: /SuperGenius/Classes/d8/ddf/structeth_1_1_eth_peer_disconnect_feedback/
title: eth::EthPeerDisconnectFeedback (struct)
---
Feedback from a completed or disconnected peer session.
Members:
peer
reason
was_connected
---
source: /SuperGenius/Classes/da/d7f/classeth_1_1_eth_peer_queue/
title: eth::EthPeerQueue (class)
---
Producer/consumer boundary for eth-watch peer candidates.
Cached chain peers and live discovery both feed this queue. Discovery seeds are retained separately and are never consumed as direct RLPx/ETH peers.
Members:
scheduler_
config_
discovery_bootnodes_
seen_node_ids_
disconnect_counts_
backoff_until_
cached_peer_count_
discovered_peer_count_
requeued_peer_count_
duplicate_peer_drop_count_
capacity_drop_count_
flaky_peer_drop_count_
too_many_peers_backoff_count_
backoff_drop_count_
disconnect_feedback_count_
disconnected_before_connected_count_
disconnected_after_connected_count_
too_many_peers_before_connected_count_
too_many_peers_after_connected_count_
tcp_failure_count_
timeout_count_
subprotocol_error_count_
EthPeerQueue
~EthPeerQueue
preload_cached_peers — Enqueue pre-cached RLPx/ETH peer candidates from chain_enodes.json.nodes.
set_discovery_bootnodes — Store discovery-only seed nodes from chain_enodes.json.bootnodes.
enqueue_discovered_peer — Enqueue a live peer produced by discovery.
enqueue_validated_discovery_peer — Enqueue a validated live peer produced by ENR/discv5 discovery.
report_peer_disconnected — Requeue eligible disconnected peers without letting flaky nodes cycle forever.
discovery_bootnodes
needs_discovery
cached_peer_count
discovered_peer_count
requeued_peer_count
duplicate_peer_drop_count
capacity_drop_count
flaky_peer_drop_count
too_many_peers_backoff_count
backoff_drop_count
stats
scheduler
enqueue_candidate
rotate_cached_peers
spread_cached_peers_for_dial_slots
node_key
is_requeueable_disconnect
---
source: /SuperGenius/Classes/d4/d87/structeth_1_1_eth_peer_queue_config/
title: eth::EthPeerQueueConfig (struct)
---
Bounded peer producer queue policy.
Members:
max_pending_peers — Maximum peers waiting in the scheduler queue.
max_disconnect_requeues — Maximum requeues after disconnect feedback before a peer is considered flaky.
too_many_peers_backoff — How long a peer that reports TooManyPeers is suppressed.
cache_peer_start_offset — Rotate cached peers by this many entries before dial-slot spreading.
---
source: /SuperGenius/Classes/d7/d96/structeth_1_1_eth_peer_queue_stats_snapshot/
title: eth::EthPeerQueueStatsSnapshot (struct)
---
Members:
cached_peer_count
discovered_peer_count
requeued_peer_count
duplicate_peer_drop_count
capacity_drop_count
flaky_peer_drop_count
too_many_peers_backoff_count
backoff_drop_count
disconnect_feedback_count
disconnected_before_connected_count
disconnected_after_connected_count
too_many_peers_before_connected_count
too_many_peers_after_connected_count
tcp_failure_count
timeout_count
subprotocol_error_count
---
source: /SuperGenius/Classes/d6/d62/classeth_1_1_eth_receipt_source_bridge/
title: eth::EthReceiptSourceBridge (class)
---
Connects a transport-neutral receipt source to the existing EthWatchService path.
Members:
service_
source_
subscriptions_
EthReceiptSourceBridge
watch_event
unwatch
process_receipt_batch
---
source: /SuperGenius/Classes/da/daa/structeth_1_1_eth_status_handshake_result/
title: eth::EthStatusHandshakeResult (struct)
---
Result of the ETH Status startup handshake owned by the ETH layer.
Members:
remote_status
---
source: /SuperGenius/Classes/d1/d5b/structeth_1_1_eth_status_handshake_start/
title: eth::EthStatusHandshakeStart (struct)
---
Parameters for starting the ETH Status handshake on a negotiated session.
Members:
channel
network_id
genesis_hash
fork_id
eth_message_schemas
accepted_status_handler
remote_disconnect_handler
inbound_message_handler
---
source: /SuperGenius/Classes/df/d1a/structeth_1_1_eth_watch_connection_config/
title: eth::EthWatchConnectionConfig (struct)
---
Connection pool limits for eth watch peer sessions. Defaults keep three active dial/watch slots per chain.
Members:
max_total_connections
max_connections_per_chain
---
source: /SuperGenius/Classes/d5/d8d/structeth_1_1_eth_watch_event_spec/
title: eth::EthWatchEventSpec (struct)
---
Event filter registration consumed by the production watch runtime.
Members:
contract_address
event_signature
params
from_block
to_block
---
source: /SuperGenius/Classes/d4/def/classeth_1_1_eth_watch_runner/
title: eth::EthWatchRunner (class)
---
Per-session ETH watch runner layered above RLPx and EthWatchService.
Members:
session_
channel_
chain_name_
network_id_
genesis_hash_
fork_id_
eth_message_schemas_
watch_service_
event_callback_
EthWatchRunner — Construct a runner for one RLPx session.
EthWatchRunner
set_event_callback — Set the top-level callback for enriched filtered events.
service — Access the underlying watch service for subscription setup.
send_local_status — Send local ETH Status for the negotiated protocol version.
install_session_bridge — Install the session ETH message bridge into the underlying RLPx session.
watch_event — Register a watch and emit enriched notifications through the runner callback.
context — Access the enriched event context.
notify_event
---
source: /SuperGenius/Classes/d7/ddf/structeth_1_1_eth_watch_runtime_stats_snapshot/
title: eth::EthWatchRuntimeStatsSnapshot (struct)
---
Members:
tcp_connect_failures — TCP/socket connection attempts that failed before RLPx auth produced any peer reason.
tcp_connected
auth_success
local_hello_sent
peer_disconnect_before_hello — Peer sent RLPx Disconnect as its first post-auth message, before peer HELLO.
peer_hello_accepted
eth_status_sent
remote_status_accepted
remote_status_rejected
remote_status_rejected_disconnect_reasons
remote_status_rejected_validation_errors
peer_queue
---
source: /SuperGenius/Classes/d0/d0a/classeth_1_1_eth_watch_service/
title: eth::EthWatchService (class)
---
Ties together EventWatcher, ABI decoding, and eth message dispatch.
Usage:
Call set_send_callback() so the service can emit GetReceipts requests.
Register subscriptions via watch_event().
Feed incoming eth wire messages via process_message().
Matching logs trigger the registered DecodedEventCallback.
Thread-safety: not thread-safe; all calls must be externally synchronized.
Members:
send_cb_
chain_tracker_
watcher_
subscriptions_
next_id_
next_req_id_
stats_
eth_message_schemas_
pending_requests_ — Outstanding GetReceipts requests keyed by request_id.
orchestration_initialized_
orchestration_running_
orchestration_config_
orchestration_callback_
runtime_chains_
active_runners_
runtime_stats_by_chain_
EthWatchService
~EthWatchService
EthWatchService
operator=
EthWatchService
operator=
initialize — Initialize production orchestration from chain/watch config.
run — Start production eth-watch orchestration on io.
stop — Stop schedulers and discovery clients created by run().
initialized
runtime_chain_count
scheduler_count
peer_queue_count
discovery_client_count
discv4_fallback_count
active_runner_count
aggregate_runtime_stats
aggregate_connection_stats
peer_queue
set_send_callback — Provide a callback used to send outgoing eth messages.
set_eth_message_schemas — Configure schema-aware runtime decoders for this service/session.
watch_event — Register a watch for a specific contract event.
tip — Return the highest block number seen so far (0 if none).
tip_hash — Return the hash of the highest block seen, if any.
unwatch — Remove a previously registered subscription.
subscription_count — Return the number of active subscriptions.
stats — Return a snapshot of the live watcher counters.
process_message — Process a raw eth wire message payload.
process_receipts — Directly process a batch of receipts for a known block.
process_new_block — Directly process a NewBlock message.
request_receipts — Request receipts for a block by hash.
make_default_dial_fn
start_discv4_fallback
start_enr_tree_discovery
start_discv5_discovery
---
source: /SuperGenius/Classes/db/dc5/structeth_1_1_eth_watch_service_config/
title: eth::EthWatchServiceConfig (struct)
---
Production eth-watch orchestration config.
Members:
connection
peer_queue
chains
watches
discovery_mode
enable_discv4_fallback
enable_enr_tree_discovery
attach_peer_dialer
discovery
discv5_discovery
dial_fn_factory — Optional test seam for replacing live RLPx dialing.
discovery_client_factory — Optional test seam for replacing live discv4 client construction/startup.
discv5_client_factory — Optional test seam for replacing live discv5 client construction/startup.
enr_tree_resolver — Optional test seam for resolving configured ENR trees to ENR URI seeds.
discv4_fallback_starter — Optional test seam for replacing live discv4 fallback startup.
discv5_enr_tree_starter — Optional test seam for replacing live discv5 ENR-tree startup.
---
source: /SuperGenius/Classes/de/dd9/classeth_1_1_event_deduper/
title: eth::EventDeduper (class)
---
In-memory event deduper keyed by source chain, transaction hash, and log index.
Members:
seen_
contains
mark_seen
size
clear
---
source: /SuperGenius/Classes/d1/d46/structeth_1_1_event_filter/
title: eth::EventFilter (struct)
---
Specifies which logs to accept: by emitting address(es) and/or topic(s).
Topic matching follows the eth_getLogs semantics:
An empty topics vector matches any log.
topics[i] == std::nullopt matches any value at position i.
topics[i] == some_hash matches only that exact value at position i.
Address matching:
An empty addresses vector matches logs from any contract.
Otherwise only logs whose emitting address appears in the list are accepted.
Members:
addresses — Contracts to watch; empty means "any contract".
topics
from_block — Optional inclusive block range.
to_block
matches — Test whether a log entry matches this filter.
---
source: /SuperGenius/Classes/d9/dc4/classeth_1_1cli_1_1_event_registry/
title: eth::cli::EventRegistry (class)
---
Registry mapping event signatures to their ABI parameter descriptors.
Pre-populated with common GNUS/ERC-20/bridge events. External code can call event_registry().register_event(sig, params) to add project-specific events before starting the watcher.
Example — adding a custom event: eth::cli::event_registry().register_event(
"MyEvent(address,uint256)",
{{eth::abi::AbiParamKind::kAddress,true,"owner"},
{eth::abi::AbiParamKind::kUint,false,"value"}});
Members:
map_
register_event — Register (or overwrite) the ABI parameter list for sig.
lookup — Look up ABI parameters for sig.
params_for — Convenience: return params for sig, or empty vector if unknown.
---
source: /SuperGenius/Classes/d4/d57/classeth_1_1_event_watcher/
title: eth::EventWatcher (class)
---
Registers filters and dispatches matching logs to callbacks.
Thread-safety: not thread-safe. All calls must be made from the same thread (or externally synchronised).
Members:
subscriptions_
next_id_
EventWatcher
~EventWatcher
EventWatcher
operator=
EventWatcher
operator=
watch — Register a new filter+callback pair.
unwatch — Remove a previously registered subscription.
process_block_logs — Process a slice of logs from a single block and trigger callbacks.
process_receipt — Process a single receipt and trigger callbacks for matching logs.
subscription_count — Return the number of active subscriptions.
---
source: /SuperGenius/Classes/d5/d52/class_evm_messaging_dapp/
title: EvmMessagingDapp (class)
---
Members:
evmWatcher
EvmMessagingDapp
start
stop
---
source: /SuperGenius/Classes/d6/d4c/classsgns_1_1evmwatcher_1_1_evm_messaging_watcher/
title: sgns::evmwatcher::EvmMessagingWatcher (class)
---
Members:
Context
TopicFilter
contract_address
topic_filters
ws_client
ws_context
chain
EvmMessagingWatcher
getContractAddress
setContractAddress
getTopicFilters
setTopicFilters
setupWebSocketListener
getChain
startWatching
stopWatching
parseConfig
---
source: /SuperGenius/Classes/dc/d20/structnil_1_1crypto3_1_1pubkey_1_1ext__private__key/
title: nil::crypto3::pubkey::ext_private_key (struct)
---
Forward declaration of class.
---
source: /SuperGenius/Classes/d9/dd9/structnil_1_1crypto3_1_1pubkey_1_1ext__private__key_3_01ecdsa_3_01_curve_type_00_01_padding_00_04592937b2016ef21d2ba9ad8549745c7/
title: nil::crypto3::pubkey::ext_private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if< std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type > (struct)
---
Extended private key class with deterministic generator and operator modifications.
Members:
private_key_data
operator* — Multiplication overload to derive public key from private key multiplication.
---
source: /SuperGenius/Classes/df/d7c/structsgns_1_1crdt_1_1_c_r_d_t_data_filter_1_1_filter_callback_entry/
title: sgns::crdt::CRDTDataFilter::FilterCallbackEntry (struct)
---
Members:
pattern
regex
filter
---
source: /SuperGenius/Classes/d1/d4c/structeth_1_1_finality_decision/
title: eth::FinalityDecision (struct)
---
Members:
kind
block_number
confirmation_depth
operator bool
---
source: /SuperGenius/Classes/db/ddb/structeth_1_1_finality_policy/
title: eth::FinalityPolicy (struct)
---
Members:
prefer_finalized
prefer_safe
confirmation_depth
---
source: /SuperGenius/Classes/da/d4a/structdiscovery_1_1_fork_id/
title: discovery::ForkId (struct)
---
Ethereum EIP-2124 fork identifier used for chain-correctness filtering.
Mirrors the go-ethereum forkid.ID type:
hash — CRC-32 of the canonical chain's genesis hash XOR'd with all activated fork block numbers up to the current block.
next — the next scheduled fork block (0 if none is known).
Members:
hash — 4-byte CRC-32 fork hash
next — next fork block number (0 = none)
---
source: /SuperGenius/Classes/dd/dec/structdiscv4_1_1_fork_id/
title: discv4::ForkId (struct)
---
Fork identifier per EIP-2124.
Mirrors go-ethereum forkid.ID: typeIDstruct{
Hash[4]byte//CRC32checksumofgenesis+appliedforkblocks
Nextuint64//Nextupcomingforkblock/timestamp;0=none
}
Wire encoding inside an ENR eth entry: RLP(enrEntry) = RLP([ RLP([hash4, next]) ]) (outer list = enrEntry struct, inner = ForkId struct)
Members:
hash — CRC32 checksum of genesis + applied fork blocks.
next — Block/timestamp of the next upcoming fork; 0 = none.
operator==
---
source: /SuperGenius/Classes/dd/d93/structeth_1_1_fork_id/
title: eth::ForkId (struct)
---
Members:
fork_hash
next_fork
---
source: /SuperGenius/Classes/d5/d76/structfmt_1_1formatter_3_01sgns_1_1_transaction_manager_1_1_state_01_4/
title: fmt::formatter< sgns::TransactionManager::State > (struct)
---
Members:
format
---
source: /SuperGenius/Classes/df/dd2/classsgns_1_1face_1_1_forward_iterator/
title: sgns::face::ForwardIterator (class)
---
As GenericIterator is abstract and cannot be instantiated, there is a concrete object that wraps a pointer to a generic iterator
Container
over which the iterator would iterate
Members:
iterator_category
pointer
const_pointer
reference
const_reference
value_type
it_
ForwardIterator
ForwardIterator
ForwardIterator
~ForwardIterator
get_iterator
get_iterator
operator=
operator=
operator!=
operator==
operator*
operator->
operator++
---
source: /SuperGenius/Classes/d2/d07/classrlpx_1_1framing_1_1_frame_cipher/
title: rlpx::framing::FrameCipher (class)
---
Members:
secrets_
impl_ — Pimpl for OpenSSL CTR and hashMAC state.
FrameCipher
~FrameCipher
encrypt_frame
decrypt_header
decrypt_frame — Decrypt a complete frame (header + body) in one call.
decrypt_frame_body — Decrypt the frame body only, after decrypt_header has already been called.
secrets
update_egress_mac
update_ingress_mac
compute_header_mac
compute_frame_mac
---
source: /SuperGenius/Classes/d0/d8a/structrlpx_1_1framing_1_1_frame_cipher_1_1_frame_cipher_impl/
title: rlpx::framing::FrameCipher::FrameCipherImpl (struct)
---
Members:
enc
dec
egress_mac
ingress_mac
---
source: /SuperGenius/Classes/d9/d0c/structrlpx_1_1framing_1_1_frame_decrypt_params/
title: rlpx::framing::FrameDecryptParams (struct)
---
Members:
header_ciphertext
header_mac
frame_ciphertext
frame_mac
---
source: /SuperGenius/Classes/d3/de7/structrlpx_1_1framing_1_1_frame_encrypt_params/
title: rlpx::framing::FrameEncryptParams (struct)
---
Members:
frame_data
is_first_frame
---
source: /SuperGenius/Classes/df/d3e/structrlpx_1_1_frame_header_wire/
title: rlpx::FrameHeaderWire (struct)
---
16-byte RLPx frame header: 3-byte length || 13-byte header-data (RLP list).
Members:
bytes
---
source: /SuperGenius/Classes/d0/ded/structrlpx_1_1auth_1_1_frame_secrets/
title: rlpx::auth::FrameSecrets (struct)
---
Members:
aes_secret
mac_secret
egress_mac_seed — Raw bytes written to egress MAC Keccak accumulator.
ingress_mac_seed — Raw bytes written to ingress MAC Keccak accumulator.
---
source: /SuperGenius/Classes/dc/d90/structsgns_1_1_from_mnemonic/
title: sgns::FromMnemonic (struct)
---
Restore from a BIP39 mnemonic.
Members:
mnemonic
---
source: /SuperGenius/Classes/d2/d53/structsgns_1_1_from_private_key/
title: sgns::FromPrivateKey (struct)
---
Restore from an Ethereum hex private key.
Members:
eth_private_key
---
source: /SuperGenius/Classes/d6/d1a/structsgns_1_1_from_public_key/
title: sgns::FromPublicKey (struct)
---
Load from storage by public address (read-only).
Members:
public_address
---
source: /SuperGenius/Classes/d3/d86/structdiscv5_1_1_gcm_nonce_wire/
title: discv5::GcmNonceWire (struct)
---
AES-GCM nonce embedded in the discv5 static header.
Members:
bytes — 12-byte GCM nonce
---
source: /SuperGenius/Classes/d3/dd5/classsgns_1_1face_1_1_generic_iterator/
title: sgns::face::GenericIterator (class)
---
An interface for an iterator
Container
over which the iterator would iterate
Members:
value_type
~GenericIterator
clone
get
get
operator*
operator*
operator++
operator->
operator!=
operator==
---
source: /SuperGenius/Classes/d4/dc6/classsgns_1_1face_1_1_generic_list/
title: sgns::face::GenericList (class)
---
An interface for a generic list.
Members:
size_type
value_type
iterator
~GenericList
push_back
push_back
push_front
push_front
pop_back
pop_front
erase
begin
end
empty
size
---
source: /SuperGenius/Classes/d4/d01/structsgns_1_1storage_1_1face_1_1_generic_map/
title: sgns::storage::face::GenericMap (struct)
---
An abstraction over a readable, writeable, iterable key-value map.
K
key type
V
value type
---
source: /SuperGenius/Classes/da/d5d/structsgns_1_1storage_1_1face_1_1_generic_storage/
title: sgns::storage::face::GenericStorage (struct)
---
An abstraction over readable, writeable, iterable key-value storage that supports write batches.
K
key type
V
value type
---
source: /SuperGenius/Classes/dc/d64/classsgns_1_1_genius_account/
title: sgns::GeniusAccount (class)
---
Members:
StorageWithAddress
SecureStorageFactory — Factory function type for creating secure storage instances.
ELGAMAL_PUBKEY_PREDEFINED — Legacy deterministic seed bytes.
NONCE_CACHE_DURATION_MS — Cache nonce results for 5 seconds.
Blockchain
TransactionManager
LOCAL_CONFIRMED_TX_HISTORY_LIMIT
NONCE_KEY_PREFIX
LOCAL_CONFIRMED_TX_HISTORY_KEY_PREFIX
token — Token ID of the account.
storage_ — Secure storage instance.
is_full_node_ — Whether this account is a full node.
signer_ — In-memory signing identity.
confirmed_nonces_ — Map of the confirmed nonces from peers.
nonce_mutex_ — Mutex for the nonce map.
pending_nonces_ — Reserved but not confirmed nonces.
local_confirmed_nonce_ — Highest locally confirmed nonce.
local_confirmed_transactions_ — Recent local confirmed txs.
messenger_ — Messenger instance.
utxo_manager_
nonce_request_mutex_ — Mutex for nonce request tracking.
nonce_request_cv_ — Condition variable for waiting on nonce requests.
nonce_request_in_progress_ — Flag indicating if a nonce request is in progress.
cached_nonce_result_ — Cached result from in-progress request.
cached_nonce_timestamp_ — Timestamp when cached nonce was obtained.
get_cids_mutex_ — Mutex for the genesis method.
get_cids_method_ — Function to get blockchain CIDs.
has_cid_method_ — Function to check CID presence.
get_utxos_method_ — Function to get UTXOs for an address.
get_validator_weight_method_ — Function to get validator weight for an address.
get_transaction_cid_method_ — Function to get transaction CID by hash.
nonce_db_mutex_ — Mutex for nonce database pointer access.
nonce_db_ — RocksDB for nonce persistence.
SetSecureStorageFactory — Sets the secure storage factory used by all GeniusAccount factory methods.
GetSecureStorageFactory — Returns the current secure storage factory (default if none set).
New — Try creating an account by first loading it from storage, and if failure, create one with NewFromRandomMnemonic.
NewEphemeral — Create a fresh account whose key exists only in memory.
NewFromPrivateKey — Creates an account from an Ethereum private key.
NewFromPublicKey — Creates an account by loading directly from storage. If the account wasn't previously stored, returns nullptr.
NewFromMnemonic — Creates an account from a BIP39 mnemonic phrase.
NewFromRandomMnemonic — Creates an account with a newly generated random BIP39 mnemonic.
GetAvailableAccounts
DeleteAccount
NormalizeAddress — Strips the "0x" prefix from an address if present. Stored addresses are prefix-free; this normalizes user input for lookups.
IsValidPublicKey — Validates that a string is a valid 512-bit public key in hex format. A valid key is exactly 128 hex characters with no prefix.
VerifySignature — Verify a signature using the Genius account's public key.
VerifySignature — Verify a byte-vector signature using the Genius account's public key.
GenerateGeniusAddress
GenerateGeniusAddress
InitMessenger — Initialize the messenger for the account.
ConfigureDatabaseDependencies — Configures database dependencies: nonce store, block response handler, head request handler, and block CID lookup method.
DeconfigureDatabaseDependencies — Clears handlers and methods set by ConfigureDatabaseDependencies.
~GeniusAccount — Destroy the Genius Account object.
GetAddress — Get the Address object.
GetToken — Get the account's token.
GetNonce — Get the proposed (next available) nonce as a string.
Sign — Sign data using the Genius account's private key.
CreateInputsFromUTXOs — Build signed transaction inputs from UTXOs.
SetPeerConfirmedNonce — Set the confirmed nonce for an address.
RollBackPeerConfirmedNonce — Rollback the confirmed nonce for the given address. Also rolls back local confirmed nonce and tx history when the address is local.
GetPeerNonce — Get the confirmed nonce for a peer.
GetLocalConfirmedNonce — Get the local confirmed nonce.
GetLocalConfirmedTxHash — Get a locally persisted confirmed transaction hash by nonce.
GetConfirmedNonce — Get confirmed nonce from the network.
FetchNetworkNonce — Fetch the latest nonce from the network without relying on cached values.
GetProposedNonce — Get the next available nonce without reserving it.
ReserveNextNonce — Reserve the next available nonce.
ReleaseNonce — Release a previously reserved nonce.
RequestGenesis
RequestAccountCreation
RequestValidatorRegistry
RequestRegularBlock
RequestTransaction
RequestUTXOs — Request UTXOs for a specific address and return the selected response.
RequestHeads — Request heads broadcast for specific topics.
SaveInSecureStorage
LoadFromSecureStorage
GetUTXOManager
GetUTXOManager
SetGetBlockChainCIDMethod
ClearGetBlockChainCIDMethod
SetHasBlockCidMethod
ClearHasBlockCidMethod
SetGetValidatorWeightMethod
ClearGetValidatorWeightMethod
SetGetTransactionCIDMethod
ClearGetTransactionCIDMethod
SetNonceStore
LoadGeniusAccount
LoadGeniusAccount
CreateInstanceFromResponse
SerializeConfirmedTxHistory
DeserializeConfirmedTxHistory
LoadConfirmedNonces
PersistConfirmedNonce
UpdateLocalConfirmedTxHistoryLocked
RollbackLocalConfirmedTxHistoryLocked
GetNextNonceLocked
GeniusAccount — Private constructor for a new GeniusAccount.
---
source: /SuperGenius/Classes/d6/d8b/classsgns_1_1_genius_assigner/
title: sgns::GeniusAssigner (class)
---
Members:
AssignerError
TableDescriptionType
PlonkConstraintSystemType
PlonkAssignTableType
PrintTableKind
BlueprintFieldType
AssignerEndianess
ArithmetizationType
ConstraintSystemType
AssignmentTableType
WITNESS_COLUMNS
PUBLIC_INPUT_COLUMNS
COMPONENT_CONSTANT_COLUMNS
LOOKUP_CONSTANT_COLUMNS
COMPONENT_SELECTOR_COLUMNS
LOOKUP_SELECTOR_COLUMNS
STACK_SIZE
LOG_LEVEL
MAX_NUM_PROVERS
TARGET_PROVER
POLICY
CHECK_VALIDITY
gen_mode_
assigner_instance_
GeniusAssigner
~GeniusAssigner
GenerateCircuitAndTable
GenerateCircuitAndTable
PrintCircuitAndTable
GetPlonkTableDescription
BuildPlonkAssignmentTable
GetTableVectors
BuildPlonkConstraintSystem
FillVectorValue
GetUsableRowsAmount
---
source: /SuperGenius/Classes/dd/d55/classsgns_1_1_genius_input_validator/
title: sgns::GeniusInputValidator (class)
---
Validator for native Genius-chain transactions.
Members:
ValidateUTXOParameters — Validates UTXO ownership and signatures for Genius-native inputs.
ValidateWitness — Validates witness data against Genius-chain consensus state.
RequiresConsensusUTXOData — Genius-native validation requires consensus UTXO context.
Register
---
source: /SuperGenius/Classes/d1/d00/classsgns_1_1_genius_node/
title: sgns::GeniusNode (class)
---
High-level facade that initializes and coordinates account, networking, transaction, blockchain, and processing subsystems.
Members:
NodeState — Lifecycle states reported while the node is bootstrapping.
Error — Error codes returned by GeniusNode operations.
NodeType — Deployment node role, read from sgns_config.json ("node_type").
TIMEOUT_ESCROW_PAY — Escrow payout timeout.
TIMEOUT_TRANSFER — Transfer timeout.
TIMEOUT_MINT — Mint timeout.
TransactionSyncTest
MultiAccountTestAccess
GeniusNodeTestAccess
write_base_path_ — Base path for node databases, logs, and account storage.
account_ — Active account used by node services.
io_ — Shared IO context for async services.
io_work_guard_ — Keeps io_ alive.
tx_globaldb_ — Transaction/global state CRDT DB.
pubsub_ — PubSub networking service.
bitswap_event_bus_ — Event bus for bitswap.
bitswap_ — IPFS bitswap service for content-addressed data.
transaction_manager_ — Transaction service.
migration_manager_ — Migration engine (valid during MIGRATING_DATABASE).
migration_mutex_ — Guards migration_manager_ reads from const methods.
eth_watch_service_ — Shared EVM event watcher.
bridge_relayer_ — Bridge burn→mint relayer.
task_queue_ — Processing task queue.
my_task_ids_ — Recent task IDs submitted by this node (capped in memory).
processing_core_ — Processing engine core.
processing_service_ — Processing network service.
task_result_storage_ — Subtask result store.
logging_system_ — libp2p logging system.
autodht_ — Whether DHT discovery is enabled.
isprocessor_ — Whether processing service should run.
is_full_node_ — Whether this node runs in full-node mode.
node_type_ — Role from sgns_config.json (default Light; derived in the AccountSource ctor).
node_logger_ — Main node logger.
dev_config_ — Runtime node configuration.
ipfs_cache_dir_ — Directory for IPFS block flat-file cache.
mirror_results_ — Whether to mirror processing results from other nodes.
result_retention_hours_ — Hours to retain results before GC (0 = keep forever).
result_retention_max_mb_ — Max MB for result cache (0 = no space cap).
catchup_chains_ — Populated by OnRpcEndpointsReady for catch-up scan (D-02).
catchup_mutex_
rpc_endpoint_provider_ — Shared so the posted Initialize() job can hold it across an account switch.
catchup_watcher_ — Polling watcher that scans historical blocks for bridge burns (replaces PerformStartupCatchupScan).
chainlist_fetcher_
bridge_init_generation_
gnus_network_full_path_ — Versioned network DB path.
processing_channel_topic_ — Processing task channel topic.
processing_grid_chanel_topic_ — Processing grid topic.
subnet_id_
rpc_catchup_ — Starts the catchup scan watcher at bridge init (default true). Set false in sgns_config.json to disable.
bootstrap_peers_
bootstrap_fullnodes_
trusted_peers_genesis_ — Genesis trusted-peer list (BURN-02/BURN-03).
bootstrapper_node_address_
trusted_peer_quorum_threshold_
burn_config_quorum_threshold_ — Quorum threshold for BurnConfig updates; 0 = unset (defaulted the same way).
bootstrap_fullnode_infos_
bootstrap_fullnode_ids_
bootstrap_peer_infos_
bootstrap_peer_ids_
pubsubport_ — Active PubSub TCP port.
blockchain_ — Blockchain service.
secure_crdt_ — BURN-02: quorum-signing wrapper.
trusted_peer_registry_ — BURN-02: signer-set source.
burn_config_ — BURN-02/BURN-03: live burn-rate source.
gc_timer_ — Periodic GC timer for result cache cleanup.
m_tokenPriceCache — Cached token price data by token id.
m_cacheValidityDuration — Price cache TTL.
m_lastApiCall — Last external price API call time.
io_thread_count_ — IO thread count.
io_threads_ — Threads running io_.
upnp_thread — Background UPnP refresh thread.
stop_upnp — UPnP thread stop flag.
base58key_ — Base58 key suffix for DB paths.
scheduler_ — libp2p scheduler.
generator_ — GraphSync request ID generator.
graphsyncnetwork_ — GraphSync network.
state_ — Current node lifecycle state.
shutdown_started_ — Whether shutdown has been initiated.
reconnect_config_
bootstrap_disconnect_subscription_
health_check_handle_
reconnect_attempts_
reconnect_mutex_
crdt_backup_config_
kMyTasksMemoryLimit — Max task IDs kept in my_task_ids_.
MIN_API_CALL_INTERVAL — Minimum price API interval.
DEFAULT_IO_THREADS — Default IO thread count.
DB_PATH — Blockchain DB path format.
MAIN_NET — Main network identifier.
TEST_NET — Test network identifier.
MAX_NODES_COUNT — Processing service node count limit.
PROCESSING_GRID_CHANNEL — Processing job topic.
PROCESSING_CHANNEL — Processing result topic.
GNUS_NETWORK_PATH — Base network DB path.
New — Canonical node factory (INTF-01). Account identity is chosen via AccountSource; node role (is_full_node_) is derived from node_type in sgns_config.json, not a param. Old factories are retained this phase (deleted in Phase 3 per 02-CONTEXT.md D-01).
WriteNetworkConfig — Writes a minimal network_config.json for test/example setup (MIG-02).
WriteSgnsConfig — Writes a minimal sgns_config.json for test/example setup; validates node_type (MIG-02).
GetBurnBasisPoints — Basis points of an escrow payout burned to the zero address during release.
GetBasisPointsTotal — Total basis points denominator used with GetBurnBasisPoints.
~GeniusNode — Stops node services, joins background threads, and releases processing callbacks.
GetAvailableAccounts — Lists the account addresses currently available in local storage.
GetPubsubPort — Returns the resolved PubSub listening port.
IsAutodhtEnabled — Returns whether DHT discovery is enabled after config resolution.
IsFullNode — Returns whether this node runs in full-node mode after config resolution.
GetNodeType — Returns the resolved node role.
AddAccountWithKey — Adds an account to local storage using an Ethereum private key.
AddAccountWithMnemonic — Adds an account to local storage using a BIP39 mnemonic phrase.
AddAccountWithRandomMnemonic — Adds an account to local storage using a newly generated random BIP39 mnemonic.
SelectAccount — Selects the active account for subsequent node operations.
TransferAccount — Transfers node ownership to another stored account address.
DeleteAccount — Deletes a locally stored account.
MergeAccount — Merges the active account into another stored account.
SetPayoutAddress — Updates the payout address used by processing rewards.
ProcessImage — Submits an image-processing request described by JSON input.
GetMyTaskIds — Returns the task IDs of jobs submitted by the active account.
GetTaskResult — Retrieves the completed result for a specific job by its task ID.
GetProcessCost — Estimates the GNUS cost of a processing request manager.
GetGNUSPrice — Retrieves the current GNUS market price from the configured pricing service.
GetName — Returns the component name used by the component framework.
GetVersion — Returns the full SuperGenius version string.
LoadLogConfig
MintTokens — Creates and submits a mint transaction.
MintTokens — Creates a mint transaction and waits for it to finalize.
AddPeer — Adds a peer to PubSub and starts connecting to it.
AddPeers — Adds peers to PubSub and starts connecting to them.
RefreshUPNP — Starts or restarts the background UPnP port refresh thread.
GetBalance — Returns the active account balance across all tokens.
GetBalance — Returns the active account balance for a token.
GetBalance — Returns an address balance across all tokens.
GetBalance — Returns an address balance for a token.
GetInTransactions — Returns serialized incoming transactions known to the transaction manager.
GetOutTransactions — Returns serialized outgoing transactions known to the transaction manager.
CountTransactions — Counts known transactions filtered by optional status.
GetAddress — Returns the active account public address.
GetMnemonicOfActiveAccount — Retrieves the BIP39 mnemonic of the active account from secure storage.
GetTokenID — Returns the configured child token identifier.
GetInitializationStatus — Returns the current node initialization progress as a percentage and description. The percentage ranges from 0.0 (CREATING) to 1.0 (READY), with sub-progress reported during database migration and transaction manager initialization.
GetProcessingStatus — Returns the current processing service status.
TransferFunds — Transfers funds and waits for the transaction to finalize.
TransferFunds — Transfers funds without waiting for finalization.
PayDev — Transfers funds to the configured developer address.
PayDev — Transfers funds to the configured developer address and waits for finalization.
WaitForFinalized — Waits until an outgoing transaction reaches a terminal state.
IsFinalized — Checks whether an outgoing transaction has reached a terminal state.
GetPubSub — Returns the underlying PubSub service.
ResetProcessingMembers — Releases processing service, core, queue, and result-storage references.
FormatTokens — Formats a fixed-point amount into a human-readable string.
ParseTokens — Parses a human-readable string into a fixed-point amount.
PrintDataStore — Prints the transaction GlobalDB datastore for debugging.
StopProcessing — Stops the processing service if it is initialized.
StartProcessing — Starts the processing service on the configured processing grid channel.
GetCoinprice — Retrieves current USD prices for token identifiers, using a short local cache.
GetCoinPriceByDate — Retrieves historical USD prices for token identifiers at exact timestamps.
GetCoinPricesByDateRange — Retrieves historical USD prices for token identifiers over a date range.
WaitForTransactionIncoming — Waits for an incoming transaction to be processed.
WaitForTransactionOutgoing — Waits for an outgoing transaction to be processed.
WaitForEscrowRelease — Waits until an escrow hold output is consumed.
GetTransactionManagerState — Returns the current transaction manager lifecycle state.
GetTransactionManager — Returns the transaction manager when initialized.
ConfigureRpcEndpoint — Configures RPC endpoints for a specific EVM chain on the public-chain input validator.
SetChainlistFetcher — Injects a custom chainlist fetcher for RPC endpoint discovery (test injection point).
GetTransactionStatus — Returns a tracked transaction status by transaction hash.
SetAuthorizedFullNodeAddress — Sets the authorized full-node address for blockchain genesis verification.
GetAuthorizedFullNodeAddress — Gets the current authorized full-node public address.
GetState — Returns the current GeniusNode lifecycle state.
SendTransactionAndProof — Enqueues a transaction and its proof directly through the transaction manager.
GeniusNode — Constructs a node, creating the account from source AFTER LoadSgnsConfig() resolves node_type_ -> is_full_node_ (the init-order hinge fix, INTF-03).
InitOpenSSL — Initializes OpenSSL library state used by networking dependencies.
LoadSgnsConfig — Loads sgns_config.json which contains net_id, subnet_id, bootstrap_fullnodes, authorized_full_node, and is_processor. All fields are optional and default to safe values (DEV net, empty bootstrap, is_processor=true).
StartResultGC — Starts periodic garbage collection of expired processing results from disk cache.
RunResultGC — Runs one GC pass: evicts expired result files and enforces space cap.
InitLoggers — Initializes application and dependency loggers.
ConfigureLogger — Creates a tagged logger with the requested sink and level.
InitNetwork — Initializes PubSub, GraphSync networking, and optional DHT discovery.
LoadCrdtConfig — Loads the CRDT configuration.
InitUPNP — Attempts initial UPnP port mapping for the PubSub port.
InitDatabase — Initializes and starts the transaction GlobalDB.
InitProcessingModules — Initializes processing queue, core, and result storage components.
BeginDBInitialization — Begins the asynchronous database migration and initialization state flow.
StateTransition — Moves the node to the next lifecycle state and runs state-specific work.
MigrateDatabase — Runs versioned database migrations on a detached thread.
ScheduleMigrationRetry — Schedules a delayed migration retry after migration bootstrap failure.
ScheduleBlockchainRetry — Schedules a delayed blockchain initialization retry.
ResolveBridgeChainsConfigPath — Resolves the bridge_chains_config.json path using D-01 priority: BaseWritePath → binary-relative → CWD fallback.
InitializeAndStartBridge — Async bridge initialization launched from INITIALIZING_TRANSACTIONS.
OnRpcEndpointsReady — IBridgeInitObserver callback — stores chain list for catch-up scan.
ShutdownForDestruction — Shuts down node services: cancels health-check timer, unsubscribes disconnect events, and stops the transaction GlobalDB.
ShutdownAccountBoundServices — Stops account-bound runtime services in dependency order.
ResetQuorumMembers — Unregisters and releases quorum services while GlobalDB and account dependencies are alive.
ReleaseRuntimeMembersAfterIoStopped — Releases the runtime object graph after all node I/O threads have stopped.
CreateEscrowInfoCRDTTransaction
DHTInit — Starts DHT provider discovery for the processing grid topic.
ConnectPeer — Connect to a peer on the PubSub I/O thread, retrying transient failures.
InitBootstrapReconnect — Subscribe to libp2p disconnect events for bootstrap fullnodes.
StartBootstrapHealthCheck — Start the periodic health-check polling for bootstrap fullnode connections.
ScheduleBootstrapReconnect — Schedule a reconnection attempt with exponential backoff.
DoReconnectToBootstrapPeer — Perform the actual reconnection to a bootstrap peer.
ScheduleNextHealthCheck — Schedule the next periodic health check.
PerformHealthCheck — Perform a health check on all bootstrap fullnode connections.
ProcessingDone — Handles successful processing completion and triggers escrow payout.
ProcessingError — Handles processing failure notifications.
RotateLogFiles — Rotates existing node log files before logger initialization.
ParseBlockSize — Parse and sum all "block_len" values from the JSON.
TransactionStateChanged — Reacts to transaction manager state changes by starting or stopping processing.
MyTasksFilePath — Returns the path to the local task-ID persistence file.
LoadMyTaskIds — Loads previously-submitted task IDs from the local JSON file.
PersistMyTaskIds — Writes the current task ID list to the local JSON file.
ParsePeerInfoFromString — Parse a multiaddr string into a PeerInfo, replicating ipfs_pubsub::PeerInfoFromString.
GetLoggingSystem — Builds the YAML logging configuration used by the node.
---
source: /SuperGenius/Classes/d0/d7f/structsgns_1_1_genius_prover_1_1_genius_proof/
title: sgns::GeniusProver::GeniusProof (struct)
---
Members:
proof
constrains
table
GeniusProof
---
source: /SuperGenius/Classes/da/da5/classsgns_1_1_genius_prover/
title: sgns::GeniusProver (class)
---
Prover class of SuperGenius.
Members:
ProverError
ProofSnarkType
ProofType
ConstraintMarshallingType
PlonkMarshalledTableType
ParameterType
BlueprintFieldType
HashType
ProverEndianess
ConstraintSystemType
TableDescriptionType
PlonkColumn
AssignmentTableType
PublicTableType
LpcParams
Lpc
LpcScheme
FriParams
CircuitParams
PlaceholderParams
PublicPreprocessor
PublicPreprocessedData
PrivatePreprocessor
PrivatePreprocessedData
ProverType
PlonkTablePair
COMPONENT_CONSTANT_COLUMNS_DEFAULT
EXPAND_FACTOR_DEFAULT
GeniusProver — Constructs a GeniusProver with default settings.
CreateProof
CreateProof
WriteProofToFile
WriteProofToVector
VerifyProof
VerifyProof
VerifyProof
MakePlonkConstraintSystem
MakePlonkTableDescription
MakeFRIParams
GenerateRandomStepList
FillPlaceholderProof
---
source: /SuperGenius/Classes/df/df2/classsgns_1_1_genius_signer/
title: sgns::GeniusSigner (class)
---
Owns a Genius keypair without imposing account persistence or lifecycle concerns.
GeniusAccount composes this type, while short-lived signing workflows can use it directly without touching secure storage.
The keypair is held as a raw secp256k1 secret key so that this component depends only on libsecp256k1, not on the crypto3-based ProofSystem.
Members:
PrivateKey — Big-endian secp256k1 secret key, matching libsecp256k1's own encoding.
PRIVATE_KEY_SIZE
SIGNATURE_SIZE
private_key_
address_ — Derived once on construction; empty on an invalid key.
Generate — Generate a fresh, in-memory-only keypair.
VerifySignature — Verify a canonical Genius signature.
VerifySignature — Verify a canonical Genius signature supplied as bytes.
GeniusSigner — Take ownership of an existing secret key.
GetAddress — Return the 128-character hexadecimal Genius public address.
Sign — Sign bytes using the canonical Genius signature encoding.
---
source: /SuperGenius/Classes/d6/dc8/classsgns_1_1_genius_transaction/
title: sgns::GeniusTransaction (class)
---
Base class of the GeniusTransaction.
Members:
TransactionDeserializeFn — Alias for the de-serializer method type to be implemented in derived classes.
GENIUS_CHAIN_ID — The chain ID used for transactions that are not associated with a specific external chain.
dag_st — The DAG metadata struct that is included in all transactions, containing common fields such as source address, hashes, timestamp, nonce, and signature.
deserializers_map — Static map that holds registered deserializer functions for different transaction types, allowing dynamic deserialization based on the type field in the DAG metadata.
transaction_type — The transaction type string that identifies the specific type of transaction (e.g., "transfer", "mint", "escrow-hold").
GeniusTransaction — Constructs a GeniusTransaction with the specified type and DAG metadata.
~GeniusTransaction — Virtual destructor to avoid leakage when deleting derived classes through a base pointer.
GetType — Returns the transaction type.
SerializeByteVector — Serializes the transaction into a byte vector, including the DAG metadata.
SerializeToEmbeddedTransaction — Serializes the transaction into an EmbeddedTransaction proto with the appropriate oneof field set.
SerializeToEmbeddedTransaction — Serializes using internal DAG metadata.
SerializeByteVector — Serializes the transaction using the internal DAG metadata.
HasUTXOParameters — Returns if transaction supports UTXOs.
GetUTXOParametersOpt — Returns the UTXOs.
GetChainId — Returns the source chain id for input validation routing.
GetTransactionSpecificPath — Returns the transaction-specific path component for storage and retrieval.
GetTransactionFullPath — Returns the full storage path for the transaction based on its hash.
GetProofFullPath — Returns the full storage path for the proof based on the transaction hash.
GetSrcAddress — Returns the source address for the transaction.
GetHash — Returns the hash of the transaction.
GetPreviousHash — Returns the hash of the previous transaction.
GetUncleHash — Returns the hash of the uncle transaction.
GetTimestamp — Returns the timestamp of the transaction.
GetNonce — Returns the nonce of the transaction.
GetTopics — Returns the destination topics associated with the transaction.
FillHash — Fills the data hash field in the DAG metadata based on the transaction content.
CheckHash — Checks the integrity of the transaction by verifying that the hash field matches the calculated hash.
MakeSignature — Creates a signature for the transaction using the provided GeniusAccount.
CheckSignature — Verifies the transaction signature using the source address and the serialized transaction content.
CheckDAGSignatureLegacy — Legacy method to verify the transaction signature using the DAG metadata. This method may be used for backward compatibility with older transaction formats.
GetSlotID — Generates a slot ID used by consensus to identify competing transactions.
DeSerializeDAGStruct — Deserializes the DAG metadata from a byte vector.
DeSerializeDAGStruct — Deserializes the DAG metadata from a string.
SetDAGWithType — Sets the transaction type in the DAG metadata and returns the modified DAGStruct.
GetTransactionFullPath — Returns the full storage path for the transaction based on its hash.
RegisterDeserializer — Registers a deserializer function for a specific transaction type.
GetDeSerializers — Returns the map of registered deserializer functions for transaction types.
---
source: /SuperGenius/Classes/da/da7/classsgns_1_1_genius_u_t_x_o/
title: sgns::GeniusUTXO (class)
---
Immutable-style UTXO value object containing ownership, token, amount, and outpoint metadata.
Members:
outpoint_ — Producing transaction hash and output index.
amount_ — Amount carried by the output.
token_id_ — Token identifier carried by the output.
owner_address_ — Address that owns or can spend the output.
GeniusUTXO — Constructs an empty UTXO placeholder.
GeniusUTXO — Constructs a UTXO without an owner address.
GeniusUTXO — Constructs a fully specified UTXO.
SetOwnerAddress — Sets the owner address associated with this UTXO.
GetOwnerAddress — Returns the owner address associated with this UTXO.
GetOutPoint — Returns the full outpoint descriptor.
GetTxID — Returns the originating transaction id.
GetOutputIdx — Returns the output index within the originating transaction.
GetAmount — Returns the unencrypted amount represented by the UTXO.
GetTokenID — Returns the token identifier associated with the UTXO.
---
source: /SuperGenius/Classes/d3/dcd/structeth_1_1_get_block_bodies_message/
title: eth::GetBlockBodiesMessage (struct)
---
Request for block bodies by hash (message id 0x05).
Members:
request_id
block_hashes
---
source: /SuperGenius/Classes/de/d19/structeth_1_1_get_block_headers_message/
title: eth::GetBlockHeadersMessage (struct)
---
Members:
request_id
start_hash
start_number
max_headers
skip
reverse
---
source: /SuperGenius/Classes/dd/dee/structeth_1_1_get_pooled_transactions_message/
title: eth::GetPooledTransactionsMessage (struct)
---
Members:
request_id
transaction_hashes
---
source: /SuperGenius/Classes/d0/d41/structeth_1_1_get_receipts_message/
title: eth::GetReceiptsMessage (struct)
---
Members:
request_id
block_hashes
---
source: /SuperGenius/Classes/da/d32/classsgns_1_1crdt_1_1_global_d_b/
title: sgns::crdt::GlobalDB (class)
---
Members:
Error — Enumeration of error codes used in the proof classes.
Buffer
QueryResult
RocksDB
CRDTHeadListResult
DataPair — Pair of key and value to be stored in CRDT.
GlobalDBFilterCallback — CRDT Filter callback type.
GlobalDBNewElementCallback
GlobalDBDeletedElementCallback
m_context
m_databasePath
m_dagSyncPort
m_graphSyncAddrs
m_pubsub
m_broadcaster
m_datastore
started_
cid_sync_started_
cid_receiving_started_
head_broadcasting_started_
backup_options_
backup_directory_
stop_backup_thread_
shutdown_started_
backup_thread_
backup_wait_mutex_
backup_wait_cv_
obsAddrRetries
m_crdtDatastore
lifecycle_mutex_ — Guards service pointers during shutdown.
m_logger
New — Factory method to create a GlobalDB instance.
~GlobalDB — Destructor or GlobalDB.
Put — Puts key-value pair to the CRDT store, optionally specifying a broadcast topic.
Put — Writes a batch of CRDT data all at once.
Get
Remove
QueryKeyValues
QueryKeyValues — Queries with a middle part that can be a wildcard, negated string or normal string.
KeyToString
BeginTransaction
AddBroadcastTopic
AddTopicName
AddListenTopic
PrintDataStore
GetDataStore
GetBroadcaster
GetWorkJournal
RegisterElementFilter
RegisterNewElementCallback
RegisterDeletedElementCallback
UnregisterElementFilter
UnregisterNewElementCallback — Unregisters the new element callback for a pattern.
UnregisterDeletedElementCallback — Unregisters the deleted element callback for a pattern.
Start — Starts the GlobalDB instance.
ShutdownNow — Immediately quiesce and shut down CRDT intake and workers. Safe to call multiple times.
StartCIDReceiving — Starts receiving CIDs.
StartCICSync — Starts CIC synchronization.
StartRebroadcastHeads — Starts rebroadcasting heads.
GetCRDTHeadList
GetCRDTHeadHeight
CRDTHeadRemove
CRDTHeadAdd
GetCIDJobStatus
RequestHeadBroadcast — Request head broadcast for specified topics.
GetMonitoredTopics — Get the topics that are being listened to.
GetCRDTDataStore
GetCIDContent
GlobalDB — Constructs a new Global D B object.
Init — Initializes the GlobalDB instance by creating the CRDT datastore and broadcaster.
scheduleBootstrap
ActiveCRDTDataStore
ActiveBroadcaster
ResolveBackupDirectory — Resolves the backup directory path based on the database path.
CreateBackupNow — Creates a backup immediately.
StartBackupLoop — Starts the backup loop in a separate thread.
StopBackupLoop — Stops the backup loop and waits for the thread to finish.
---
source: /SuperGenius/Classes/d0/d05/classsgns_1_1crdt_1_1_graphsync_d_a_g_syncer/
title: sgns::crdt::GraphsyncDAGSyncer (class)
---
A DAGSyncer is an abstraction to an IPLD-based p2p storage layer. A DAGSyncer is a DAGService with the ability to publish new ipld nodes to the network, and retrieving others from it.
Members:
Error
IpfsDatastore
Graphsync
ResponseMetadata
Extension
ResponseStatusCode
Multiaddress
Multihash
PeerId
Subscription
Logger
BlockCallback
PeerKey
PeerEntry
RouteMapType
TIMEOUT_SECONDS
MAX_FAILURES
started_
unexpected_blocks
dagMutex_
dagService_
graphsync_
host_
logger_
requests_
peer_registry_
peer_index_
registry_mutex_
routing_
routing_mutex_
blacklist_
blacklist_mutex_
cid_failures_
cid_failures_mutex_
request_status_
request_status_mutex_
received_blocks_
lru_cid_cache_
is_stopped_
GraphsyncDAGSyncer
~GraphsyncDAGSyncer
Listen
StartSync
AddRoute
addNode
getNode
removeNode
select
fetchGraph
fetchGraphOnDepth
HasBlock
GetNodeWithoutRequest
GetNodeFromMerkleDAG
TraverseCIDsLinks
markResolved
isResolved
GetId
GetPeerInfo
AddToBlackList
IsOnBlackList
InitCIDBlock
IsCIDInCache
DeleteCIDBlock
Stop
RequestNode
RequestProgressCallback
BlockReceivedCallback
StopSync
RegisterPeer
GetPeerById
AddCIDBlock
GrabCIDBlock
BlackListPeer
GetRouteKeys
GetRoute
MoveRoutePeerToFront
EraseRoutesFromPeerID
EraseRoute
SetRequestStatus
GetRequestStatus
ClearRequestStatus
RecordSuccessfulConnection — record successful connections
RecordCIDFailure — CID-specific failure tracking methods.
HasRecentCIDFailure
ClearCIDFailure
IsConnectionFailureStatus
GetCurrentTimestamp
getBackoffTimeout — Using exponential backoff for both cases but with different base values.
---
source: /SuperGenius/Classes/d0/d2d/structrlpx_1_1auth_1_1_handshake_config/
title: rlpx::auth::HandshakeConfig (struct)
---
Members:
local_public_key
local_private_key
client_id
listen_port
peer_public_key
---
source: /SuperGenius/Classes/d1/d9f/structrlpx_1_1auth_1_1_handshake_result/
title: rlpx::auth::HandshakeResult (struct)
---
Members:
key_material
frame_secrets
peer_client_id
peer_listen_port
transport — Socket to hand off to MessageStream after handshake.
keys
secrets
---
source: /SuperGenius/Classes/d9/d75/structstd_1_1hash_3_01sgns_1_1base_1_1_blob_3_01_n_01_4_01_4/
title: std::hash< sgns::base::Blob< N > > (struct)
---
Members:
operator()
---
source: /SuperGenius/Classes/d0/dcb/structstd_1_1hash_3_01sgns_1_1base_1_1_buffer_01_4/
title: std::hash< sgns::base::Buffer > (struct)
---
Members:
operator()
---
source: /SuperGenius/Classes/d4/d33/structstd_1_1hash_3_01sgns_1_1base_1_1_wrapper_3_01_t_00_01_tag_01_4_01_4/
title: std::hash< sgns::base::Wrapper< T, Tag > > (struct)
---
Members:
operator()
---
source: /SuperGenius/Classes/dd/d53/structrlp_1_1_header/
title: rlp::Header (struct)
---
Members:
list
payload_size_bytes
header_size_bytes
---
source: /SuperGenius/Classes/d1/da4/structrlpx_1_1protocol_1_1_hello_message/
title: rlpx::protocol::HelloMessage (struct)
---
Members:
protocol_version
client_id
capabilities
listen_port
node_id
encode
decode
---
source: /SuperGenius/Classes/d6/dfe/classsgns_1_1crdt_1_1_hierarchical_key/
title: sgns::crdt::HierarchicalKey (class)
---
A Key represents the unique identifier of an object, inspired by file systems and Google App Engine key model. Keys are meant to be unique across a system. Keys are hierarchical, incorporating more and more specific namespaces. Thus keys can be deemed 'children' or 'ancestors' of other keys:: Key("/Comedy") Key("/Comedy/MontyPython") Also, every namespace can be parametrized to embed relevant object information. For example, the Key name (most specific namespace) could include the object type:: Key("/Comedy/MontyPython/Actor:JohnCleese") Key("/Comedy/MontyPython/Sketch:CheeseShop") Key("/Comedy/MontyPython/Sketch:CheeseShop/Character:Mousebender")
Members:
key_
HierarchicalKey
HierarchicalKey
SetKey
GetKey
ChildString — Appends s to the key.
GetList
IsTopLevel
operator==
operator!=
---
source: /SuperGenius/Classes/dc/de2/classrlpx_1_1crypto_1_1_hmac/
title: rlpx::crypto::Hmac (class)
---
Members:
Hmac
compute
compute_mac
verify
---
source: /SuperGenius/Classes/d9/dbe/classsgns_1_1_i_basic_proof/
title: sgns::IBasicProof (class)
---
Base proof class header file.
This class provides methods for generating full proofs and verifying them, along with virtual methods for derived proofs
Members:
Error — Enumeration of error codes used in the proof classes.
PublicParamDeserializeFn — Alias for the de-serializer method type to be implemented in derived classes.
PublicParamDeSerializers — A map of deserialization functions for public parameters by proof type.
ByteCodeMap — A map of bytecodes associated with each proof type.
bytecode_payload_ — The bytecode generated by the modified clang.
IBasicProof — Constructs a proof and informs the bytecode that will be used.
~IBasicProof — Virtual destructor for IBasicProof.
GetProofType — Pure virtual function to get the proof type.
GenerateFullProof — Generates a full proof using the internal class values.
VerifyFullProof — Verifies the proof with the public parameters.
VerifyFullProof — Verifies the proof with parameters and bytecode.
GenerateIntParameter — Generates a JSON object for an integer parameter.
GenerateArrayParameter — Generates a JSON object for an array parameter.
GenerateFieldParameter — Generates a JSON object for a field parameter.
RegisterDeserializer — Registers a deserializer function for a specific proof type.
RegisterBytecode — Registers a bytecode for a specific proof type.
DeSerializeBaseProof — Deserializes a BaseProofProto from the provided proof data.
SerializeFullProof — Pure virtual function to serialize a full proof using the snark and internal public parameters.
GenerateProof — Generates the base proof (snark) structure using the internal class data.
GenerateJsonParameters — Pure virtual function to generate the parameters in JSON form.
---
source: /SuperGenius/Classes/d7/db1/classsgns_1_1_i_bridge_init_observer/
title: sgns::IBridgeInitObserver (class)
---
Observer interface notified when RPC endpoints have been loaded and wired.
Subscribers (e.g. BridgeRelayer) implement this interface and call ChainRpcEndpointProvider::AddObserver() before Initialize() is posted to the io_context. The callback fires synchronously inside Initialize() after all endpoints are wired and IInputValidator::Register has been called for each discovered chain.
Members:
OnRpcEndpointsReady — Called when RPC endpoint initialization completes successfully.
~IBridgeInitObserver
---
source: /SuperGenius/Classes/d1/dbf/class_i_component/
title: IComponent (class)
---
Members:
~IComponent
GetName
---
source: /SuperGenius/Classes/d0/d47/class_i_component_factory/
title: IComponentFactory (class)
---
Members:
~IComponentFactory
Register
GetComponent
---
source: /SuperGenius/Classes/d4/d4b/classeth_1_1_i_eth_receipt_source/
title: eth::IEthReceiptSource (class)
---
Transport-neutral source of receipt/log evidence for EthWatchService.
Members:
~IEthReceiptSource
add_filter — Let the source optimize acquisition around the same filter used by EthWatchService.
remove_filter — Remove a previously registered acquisition filter.
set_receipt_batch_handler — Set the handler that receives normalized receipt batches.
get_receipt — Fetch one receipt by transaction hash when the source supports lookup verification.
---
source: /SuperGenius/Classes/d5/d94/classeth_1_1_i_eth_session_channel/
title: eth::IEthSessionChannel (class)
---
Minimal session-facing seam used by ETH runner logic and tests.
Members:
~IEthSessionChannel
negotiated_eth_version
negotiated_eth_offset
peer_info
post_message
receive_message
receive_message_with_timeout
set_eth_message_handler
---
source: /SuperGenius/Classes/de/d6f/classsgns_1_1_i_input_validator/
title: sgns::IInputValidator (class)
---
Strategy interface for validating transaction inputs and their witness data.
Members:
ValidatorPtr
~IInputValidator — Destroys the input validator.
ValidateUTXOParameters — Validates ownership and structure of the supplied UTXO parameters.
ValidateWitness — Validates the chain-specific witness data associated with a transaction input set.
RequiresConsensusUTXOData — Indicates whether this validator requires consensus-provided UTXO data.
Register — Register a validator for a chain if the chain is currently unowned.
UnregisterIf — Remove a chain's registration only if it currently points to expected (compare-and-remove). This prevents a non-owner from removing the current registration and lets a validator self-clean on destruction.
Get
registryState
---
source: /SuperGenius/Classes/d7/d29/classsgns_1_1sgprocessing_1_1_image_splitter/
title: sgns::sgprocessing::ImageSplitter (class)
---
Members:
splitparts_
partwidth_
partheight_
blockstride_
blocklinestride_
blocklen_
channels_
inputImage
imageSize
chunkWidthActual_
chunkHeightActual_
cids_
ImageSplitter
ImageSplitter
ImageSplitter
ImageSplitter
~ImageSplitter
GetPart
GetPartByCid
GetPartSize
GetPartStride
GetPartWidthActual
GetPartHeightActual
GetPartCount
GetImageSize
GetPartCID
SplitImageData
---
source: /SuperGenius/Classes/d5/d0d/classsgns_1_1_i_migration_step/
title: sgns::IMigrationStep (class)
---
Interface for a migration step between two schema versions.
Members:
~IMigrationStep
FromVersion — Get the version from which the migration starts.
ToVersion — Get the version to which the migration applies.
Init — Initializes internal variables after constructor.
Apply — Execute the migration logic.
ShutDown — Shuts down internal variables.
IsRequired — Check if migration is required.
ParseVersion
IsVersionLessThan
---
source: /SuperGenius/Classes/d6/d09/classsgns_1_1sgprocessing_1_1_input_types/
title: sgns::sgprocessing::InputTypes (class)
---
Members:
Error
InputTypes
~InputTypes
GetImageChannels
---
source: /SuperGenius/Classes/d3/dbc/structsgns_1_1_input_u_t_x_o_info/
title: sgns::InputUTXOInfo (struct)
---
Raw UTXO input data included in a spend request.
Members:
txid_hash_ — Hash of the transaction that created the output.
output_idx_ — Zero-based output index within the originating transaction.
signature_ — Signature authorizing the spend of this outpoint.
SerializeForSigning — Serializes the input fields that must be signed by the owner.
---
source: /SuperGenius/Classes/d5/d0e/structsgns_1_1_transaction_manager_1_1_input_validator_selection/
title: sgns::TransactionManager::InputValidatorSelection (struct)
---
Members:
chain_id
validator
---
source: /SuperGenius/Classes/dd/d3e/structsgns_1_1_account_messenger_1_1_interface_methods/
title: sgns::AccountMessenger::InterfaceMethods (struct)
---
Interface methods the user needs to define.
Members:
sign_ — Signing method.
verify_signature_ — Verify signature method.
get_local_nonce_ — Get local nonce method.
get_block_cid_ — Get local genesis block method.
has_block_cid_ — Check if a CID is locally available.
get_utxos_ — Get local UTXOs as a list of strings for a given address.
get_validator_weight_ — Get validator weight for an address (empty if not a validator)
get_transaction_cid_ — Get transaction CID by hash.
---
source: /SuperGenius/Classes/d0/d33/classsgns_1_1_ipfs_d_h_t/
title: sgns::IpfsDHT (class)
---
Members:
kademlia_
bootstrapAddresses_
logger_
IpfsDHT
Start
FindProviders
FindPeer
GetBootstrapNodes
---
source: /SuperGenius/Classes/d5/d3e/structdiscv5_1_1_i_pv4_wire/
title: discv5::IPv4Wire (struct)
---
Wire layout of a 4-byte IPv4 address as stored in an ENR "ip" field.
Members:
msb — Most-significant octet.
b1 — Second octet.
b2 — Third octet.
lsb — Least-significant octet.
---
source: /SuperGenius/Classes/d9/dc3/structdiscv5_1_1_i_pv6_wire/
title: discv5::IPv6Wire (struct)
---
Wire layout of a 16-byte IPv6 address as stored in an ENR "ip6" field.
Members:
bytes — 16 raw octets (network byte order)
---
source: /SuperGenius/Classes/d5/db7/classsgns_1_1_i_secure_storage/
title: sgns::ISecureStorage (class)
---
Members:
SecureBufferType
~ISecureStorage
Load
Save
DeleteKey
---
source: /SuperGenius/Classes/d8/d89/classsgns_1_1securecrdt_1_1_i_signed_c_r_d_t_data/
title: sgns::securecrdt::ISignedCRDTData (class)
---
Interface implemented by every CRDT-backed value that requires a quorum of authorized signers to create/update.
Members:
~ISignedCRDTData
SerializeToBytes — Serializes this instance's payload to raw bytes (codec, encode side).
DeserializeFromBytes — Deserializes raw bytes into this instance's payload (codec, decode side).
Verify — Performs type-specific semantic validation of payload beyond signature/quorum checks (e.g. field-range checks).
Apply — Applies the side effect of this value once the caller has independently confirmed quorum (e.g. via SecureCrdt::ReadIfQuorum). Apply() itself does NOT check quorum.
---
source: /SuperGenius/Classes/d4/d27/structsgns_1_1storage_1_1face_1_1_iterable/
title: sgns::storage::face::Iterable (struct)
---
A mixin for an iterable map.
K
key type
V
value type
Members:
~Iterable
cursor — Returns new key-value iterator.
---
source: /SuperGenius/Classes/d9/d71/classsgns_1_1_j_s_o_n_backend/
title: sgns::JSONBackend (class)
---
Members:
JSONBackend
~JSONBackend
GetName
Load
Save
DeleteKey
LoadJSON
SaveJSON
---
source: /SuperGenius/Classes/d0/d06/structrlp_1_1base_1_1json_1_1_json_error/
title: rlp::base::json::JsonError (struct)
---
Members:
code
field
---
source: /SuperGenius/Classes/d0/d30/structrlp_1_1base_1_1json_1_1_json_parsed_array/
title: rlp::base::json::JsonParsedArray (struct)
---
Members:
values
---
source: /SuperGenius/Classes/d9/d87/structrlp_1_1base_1_1json_1_1_json_parsed_object/
title: rlp::base::json::JsonParsedObject (struct)
---
Members:
fields
find
---
source: /SuperGenius/Classes/de/dcc/structrlp_1_1base_1_1json_1_1_json_parsed_size/
title: rlp::base::json::JsonParsedSize (struct)
---
Members:
value
---
source: /SuperGenius/Classes/da/d8c/structrlp_1_1base_1_1json_1_1_json_parsed_value/
title: rlp::base::json::JsonParsedValue (struct)
---
Members:
Storage
type
value
---
source: /SuperGenius/Classes/d3/d97/classeth_1_1rpc_1_1_json_rpc_transport/
title: eth::rpc::JsonRpcTransport (class)
---
Members:
~JsonRpcTransport
call
---
source: /SuperGenius/Classes/d6/de7/structrlp_1_1base_1_1json_1_1_json_schema_array/
title: rlp::base::json::JsonSchemaArray (struct)
---
Members:
element_type
object_schema
array_schema
---
source: /SuperGenius/Classes/d7/dad/structrlp_1_1base_1_1json_1_1_json_schema_field/
title: rlp::base::json::JsonSchemaField (struct)
---
Members:
name
type
required
default_value
object_schema
array_schema
---
source: /SuperGenius/Classes/d5/d93/structrlp_1_1base_1_1json_1_1_json_schema_object/
title: rlp::base::json::JsonSchemaObject (struct)
---
Members:
fields
---
source: /SuperGenius/Classes/d4/dd2/classsgns_1_1_j_s_o_n_secure_storage/
title: sgns::JSONSecureStorage (class)
---
Members:
directory_
JSONSecureStorage
~JSONSecureStorage
Load
Save
DeleteKey
GetName
LoadJSON
GetInstance
---
source: /SuperGenius/Classes/d8/d69/classrlpx_1_1crypto_1_1_kdf/
title: rlpx::crypto::Kdf (class)
---
Members:
Kdf
derive
derive_aes_key
derive_mac_key
derive_keys
---
source: /SuperGenius/Classes/d7/db7/class_k_d_f_generator/
title: KDFGenerator (class)
---
KDF Generator class.
Members:
HashType
SignatureType
ECDSAPubKey
EXPECTED_SECRET_SIZE — Expected size of the signature in bytes.
encryptor — The encryptor used by KDF to hide the shared secret.
KDFGenerator — Constructs a new KDFGenerator object.
GenerateSharedSecret — Generates a shared secret with a new derived key.
GetNewKeyFromSecret — Extracts the derived new key from the signed secret.
operator== — Checks if the encryptor is the same for the KDF.
BuildPublicKeyECDSA — Builds the public key data type from the data.
GenerateKDF — Generates a shared secret with a new derived key.
---
source: /SuperGenius/Classes/d5/d6a/structdiscv5_1_1_keccak256_wire/
title: discv5::Keccak256Wire (struct)
---
Wire layout of a Keccak-256 hash.
Members:
bytes — 32-byte hash digest
---
source: /SuperGenius/Classes/d0/d38/structrlpx_1_1crypto_1_1_ecdh_1_1_key_pair/
title: rlpx::crypto::Ecdh::KeyPair (struct)
---
Members:
public_key
private_key
---
source: /SuperGenius/Classes/d6/d1e/classsgns_1_1crdt_1_1_key_pair_file_storage/
title: sgns::crdt::KeyPairFileStorage (class)
---
Members:
m_keyPath
m_logger
KeyPairFileStorage
GetKeyPair
---
source: /SuperGenius/Classes/d0/d1b/classai_1_1gnus_1_1sdk_1_1_key_store_helper/
title: ai::gnus::sdk::KeyStoreHelper (class)
---
Members:
TAG
ANDROID_KEYSTORE
KEY_ALIAS
TRANSFORMATION
GCM_TAG_LENGTH
PREFS_NAME
PREFS_KEY
sInstance
sLock
context
KeyStoreHelper
initializeKeyStore
getSecretKey
loadInternal
saveInternal
deleteInternal
encrypt
decrypt
initialize
isInitialized
load
save
delete
nativeInit
getInstance
---
source: /SuperGenius/Classes/dc/d78/structsgns_1_1lambda__visitor_3_01_lambda_01_4/
title: sgns::lambda_visitor< Lambda > (struct)
---
Members:
lambda_visitor
---
source: /SuperGenius/Classes/d2/d5d/structsgns_1_1lambda__visitor_3_01_lambda_00_01_lambdas_8_8_8_01_4/
title: sgns::lambda_visitor< Lambda, Lambdas... > (struct)
---
Members:
lambda_visitor
---
source: /SuperGenius/Classes/dd/de8/classsgns_1_1_linux_secure_storage/
title: sgns::LinuxSecureStorage (class)
---
Members:
identifier_
schema_
LinuxSecureStorage
~LinuxSecureStorage
GetName
LoadJSON
SaveJSON
---
source: /SuperGenius/Classes/dd/d85/structeth_1_1codec_1_1_log_entry/
title: eth::codec::LogEntry (struct)
---
EVM log entry emitted by a CALL or CREATE instruction.
Members:
address
topics
data
---
source: /SuperGenius/Classes/d9/d91/classsgns_1_1crdt_1_1_graphsync_d_a_g_syncer_1_1_l_r_u_c_i_d_cache/
title: sgns::crdt::GraphsyncDAGSyncer::LRUCIDCache (class)
---
Members:
MAX_CACHE_SIZE
cache_map_
lru_list_
mutex_
init
add
get
remove
contains
hasContent
size
---
source: /SuperGenius/Classes/da/d9b/structrlpx_1_1_mac_digest_wire/
title: rlpx::MacDigestWire (struct)
---
16-byte frame-level MAC digest (first 16 bytes of the running Keccak state).
Members:
bytes
---
source: /SuperGenius/Classes/df/df2/structsgns_1_1storage_1_1face_1_1_map_cursor/
title: sgns::storage::face::MapCursor (struct)
---
An abstraction over generic map cursor.
K
key type
V
value type
Members:
~MapCursor
seekToFirst — Same as std::begin(...);.
seek — Find given key and seek iterator to this key.
seekToLast — Same as std::rbegin(...);, e.g. points to the last valid element.
isValid — Is iterator valid?
next — Make step forward.
prev — Make step backwards.
key — Getter for key.
value — Getter for value.
---
source: /SuperGenius/Classes/d8/d65/structdiscv5_1_1_masking_iv_wire/
title: discv5::MaskingIvWire (struct)
---
Masking IV that precedes the static packet header.
Members:
bytes — 16-byte AES-128 IV
---
source: /SuperGenius/Classes/da/d2f/structeth_1_1_matched_event/
title: eth::MatchedEvent (struct)
---
A matched event: the original log decorated with block context.
Members:
log — The raw log entry.
block_number — Block the log appeared in.
block_hash — Hash of that block (if known)
tx_hash — Transaction hash (if known)
log_index — Position within the block's log set.
receipt_log_index — Absolute zero-based position in receipt.logs.
---
source: /SuperGenius/Classes/d0/d0d/classsgns_1_1_memory_secure_storage/
title: sgns::MemorySecureStorage (class)
---
In-memory JSON backend for tests. Stores data in a map — no OS keychain access, no password prompts, no cleanup needed.
Members:
identifier_
store_
MemorySecureStorage
GetName
LoadJSON
SaveJSON
---
source: /SuperGenius/Classes/d9/da4/structrlpx_1_1framing_1_1_message/
title: rlpx::framing::Message (struct)
---
Members:
id
payload
---
source: /SuperGenius/Classes/d3/d51/structrlpx_1_1protocol_1_1_message/
title: rlpx::protocol::Message (struct)
---
Members:
id
payload
is_hello
is_disconnect
is_ping
is_pong
---
source: /SuperGenius/Classes/de/d48/classrlpx_1_1_rlpx_session_1_1_message_channel/
title: rlpx::RlpxSession::MessageChannel (class)
---
Members:
mutex_
queue_
MessageChannel
push
try_pop
empty
---
source: /SuperGenius/Classes/d6/dea/structrlpx_1_1framing_1_1_message_send_params/
title: rlpx::framing::MessageSendParams (struct)
---
Members:
message_id
payload
compress
---
source: /SuperGenius/Classes/d4/d77/classrlpx_1_1framing_1_1_message_stream/
title: rlpx::framing::MessageStream (class)
---
Message stream handles framing, encryption, and compression.
Members:
cipher_
transport_
compression_enabled_
send_buffer_
recv_buffer_
MessageStream — Takes ownership of cipher and socket transport.
send_message — Send message (encodes, compresses if enabled, frames, encrypts).
receive_message — Receive message (decrypts, deframes, decompresses, decodes).
enable_compression — Enable compression after hello exchange.
close — Close the underlying socket, unblocking any pending receive_message call.
is_compression_enabled — Query state.
cipher_secrets — Access cipher secrets (grouped values).
send_frame
receive_frame
---
source: /SuperGenius/Classes/d9/deb/classsgns_1_1watcher_1_1_messaging_watcher/
title: sgns::watcher::MessagingWatcher (class)
---
Members:
MessageCallback
messageCallback
running
running_mutex
watcherThread
m_watchers
~MessagingWatcher
startWatching
stopWatching
isRunning
addWatcher
startAll
stopAll
MessagingWatcher
watch
---
source: /SuperGenius/Classes/d9/d5c/classsgns_1_1_migration0__2__0_to1__0__0/
title: sgns::Migration0_2_0To1_0_0 (class)
---
Migration step for version 0.2.0 to 1.0.0.
Copies transactions and proofs from legacy DB (“out” and “in”) into the new CRDT store.
Members:
db_1_0_0_ — Target GlobalDB.
db_0_0_2_out_ — Target GlobalDB.
db_0_0_2_in_ — Target GlobalDB.
ioContext_ — IO context for DB I/O.
pubSub_ — PubSub instance for legacy DB.
graphsync_ — GraphSync network.
scheduler_ — libp2p scheduler.
generator_ — Request ID generator.
crdt_transaction_ — CRDT transaction to make it all atomic.
writeBasePath_ — Base path for writing DB files.
base58key_ — Key to build legacy paths.
topics_
m_logger — Logger for this step.
Migration0_2_0To1_0_0 — Construct the step with all resources needed to open legacy DBs.
FromVersion — Get the source version for this step.
ToVersion — Get the target version for this step.
Init — Initializes internal variables after constructor.
IsRequired — Check if this migration should run.
Apply — Apply the migration: initialize legacy DBs and migrate data.
ShutDown — Shuts down internal variables.
InitTargetDb — Opens the target database to migrate into.
InitLegacyDb — Open a legacy GlobalDB given a suffix ("out" or "in").
MigrateDb — Migrate all transactions and proofs from oldDb into newDb.
---
source: /SuperGenius/Classes/d0/d09/classsgns_1_1_migration1__0__0_to3__4__0/
title: sgns::Migration1_0_0To3_4_0 (class)
---
Migration step for version 1.0.0 to 3.4.0. Changes the full node topic from CRDT heads.
Members:
ioContext_ — IO context for DB I/O.
pubSub_ — PubSub instance for legacy DB.
graphsync_ — GraphSync network.
scheduler_ — libp2p scheduler.
generator_ — Request ID generator.
writeBasePath_ — Base path for writing DB files.
base58key_ — Key to build legacy paths.
logger_ — Logger for this step.
db_3_4_0_ — Target GlobalDB.
db_1_0_0_ — Legacy GlobalDB.
Migration1_0_0To3_4_0
~Migration1_0_0To3_4_0
FromVersion — Get the source version for this step.
ToVersion — Get the target version for this step.
Init — Initializes internal variables after constructor.
IsRequired — Check if this migration should run.
Apply — Apply the migration: initialize legacy DBs and migrate data.
ShutDown — Shuts down internal variables.
InitLegacyDb — Open a legacy GlobalDB from 1.0.0.
InitTargetDb
---
source: /SuperGenius/Classes/d1/dd2/classsgns_1_1_migration3__4__0_to3__5__0/
title: sgns::Migration3_4_0To3_5_0 (class)
---
Migration step for version 3.4.0 to 3.5.0. Updates persisted data required by the 3.5.0 node layout.
Members:
Status — Internal status used while waiting for blockchain-backed migration tasks.
ioContext_ — IO context for GlobalDB services.
pubSub_ — PubSub service for CRDT sync.
graphsync_ — GraphSync network.
scheduler_ — libp2p scheduler.
generator_ — GraphSync request ID generator.
writeBasePath_ — Base path for versioned DBs.
base58key_ — Node key suffix for DB paths.
logger_ — Logger for this step.
db_3_5_0_ — Target 3.5.0 database.
db_3_4_0_ — Legacy 3.4.0 database.
blockchain_ — Blockchain instance used during migration.
account_ — Local account being migrated.
blockchain_status_ — Async blockchain startup status.
Migration3_4_0To3_5_0 — Constructs the migration step with the services required to read and write both database versions.
~Migration3_4_0To3_5_0 — Destroys the migration step.
FromVersion — Returns the source schema version handled by this step.
ToVersion — Returns the target schema version produced by this step.
Init — Initializes migration resources before the step is applied.
IsRequired — Determines whether the 3.4.0 to 3.5.0 migration must run.
Apply — Applies the migration and writes the upgraded transaction state.
ShutDown — Releases resources allocated during migration.
InitLegacyDb — Opens the legacy 3.4.0 database view.
InitTargetDb — Opens the target 3.5.0 database view.
---
source: /SuperGenius/Classes/d8/d7f/classsgns_1_1_migration3__5__0_to3__6__0/
title: sgns::Migration3_5_0To3_6_0 (class)
---
Executes the storage migration from database version 3.5.1 to 3.6.0.
Members:
logger_ — Logger for migration progress and errors.
ioContext_ — IO context for GlobalDB services.
pubSub_ — PubSub service for CRDT sync.
graphsync_ — GraphSync network.
scheduler_ — libp2p scheduler.
generator_ — GraphSync request ID generator.
writeBasePath_ — Base path for versioned DBs.
base58key_ — Node key suffix for DB paths.
db_3_5_1_ — Legacy 3.5.1 database.
db_3_6_0_ — Target 3.6.0 database.
Migration3_5_0To3_6_0 — Constructs the migration step with the services required to read and write both database versions.
FromVersion — Returns the source schema version handled by this step.
ToVersion — Returns the target schema version produced by this step.
Init — Initializes migration resources before the step is applied.
Apply — Applies the migration logic and persists the upgraded data.
ShutDown — Releases any temporary migration resources.
IsRequired — Determines whether the migration needs to run for the current node state.
InitLegacyDb — Opens the legacy 3.5.1 database view.
InitTargetDb — Opens the target 3.6.0 database view.
---
source: /SuperGenius/Classes/db/d7d/classsgns_1_1_migration3__6__0_to3__7__0/
title: sgns::Migration3_6_0To3_7_0 (class)
---
Executes the 3.6.0 to 3.7.0 migration, including legacy balance recovery.
Members:
Status — Internal status used while waiting for blockchain-backed migration tasks.
AddressBalance — Address and balance pair recovered from the legacy database.
logger_ — Logger for migration progress and errors.
ioContext_ — IO context for GlobalDB services.
pubSub_ — PubSub service for CRDT sync.
graphsync_ — GraphSync network.
scheduler_ — libp2p scheduler.
generator_ — GraphSync request ID generator.
writeBasePath_ — Base path for versioned DBs.
base58key_ — Node key suffix for DB paths.
db_3_6_0_ — Legacy 3.6.0 database.
db_3_7_0_ — Target 3.7.0 database.
blockchain_ — Blockchain instance used during migration.
transaction_manager_ — Transaction manager used for the migration claim.
account_ — Local account being migrated.
is_full_node_ — Whether this node is a full node.
blockchain_status_ — Async blockchain startup status.
Migration3_6_0To3_7_0 — Constructs the migration step with access to legacy and target storage plus account services.
FromVersion — Returns the source schema version handled by this step.
ToVersion — Returns the target schema version produced by this step.
Init — Initializes migration resources before applying the step.
Apply — Applies the migration and writes the upgraded balance state.
ShutDown — Releases resources allocated during migration.
IsRequired — Determines whether the 3.6.0 to 3.7.0 migration must run.
InitLegacyDb — Opens the legacy 3.6.0 database view.
InitTargetDb — Opens the target 3.7.0 database view.
ComputeLegacyBalances — Scans the legacy dataset and computes the balances to migrate.
---
source: /SuperGenius/Classes/d9/dcf/classsgns_1_1_migration_allow_list/
title: sgns::MigrationAllowList (class)
---
Stores observed legacy balances and validates migration claim eligibility.
Members:
AddressBalance — Address and observed balance pair stored in the migration allow-list.
::MigrationParamTest
db_ — Database storing allow-list entries.
migration_version_ — Source migration version namespace.
prefix_ — Cached key prefix for migration_version_.
logger_ — Component logger.
MigrationAllowList — Creates an allow-list view scoped to a specific migration version.
StoreObservedBalance — Persists the observed legacy balance for a single address.
StoreObservedBalances — Persists observed legacy balances for multiple addresses.
LoadObservedBalance — Loads the observed legacy balance for a single address when present.
IsEligible — Checks whether an address may claim the provided migrated balance.
ListObservedBalances — Lists every stored observed balance in the current migration namespace.
BuildPrefix — Builds the RocksDB key prefix used for a migration version namespace.
BuildKey — Builds the RocksDB key used for a specific address inside a migration namespace.
SetEligibilityCheckEnabledForTests — Enables or disables eligibility checks for migration tests.
IsEligibilityCheckEnabledForTests — Returns whether eligibility checks are enabled for migration tests.
DecodeBalance — Decodes a stored observed balance from its serialized database value.
---
source: /SuperGenius/Classes/dd/d2f/classsgns_1_1_migration_input_validator/
title: sgns::MigrationInputValidator (class)
---
Implements the InputValidator for a Migration type.
Members:
ValidateUTXOParameters — Validates ownership and structure of the supplied UTXO parameters.
ValidateWitness — Validates the chain-specific witness data associated with a transaction input set.
RequiresConsensusUTXOData — Indicates whether this validator requires consensus-provided UTXO data.
Register — Registers this validator in the global registry for the "migration" chain ID.
---
source: /SuperGenius/Classes/d6/d9a/classsgns_1_1_migration_manager/
title: sgns::MigrationManager (class)
---
Executes a sequence of migration steps to update a CRDT store.
Members:
Error
VERSION_INFO_KEY
steps_ — Queue of registered migration steps.
m_logger — Logger instance.
current_step_index_ — 1-based index of the step currently being migrated.
total_steps_ — Total number of steps (set before migration begins).
New — Factory function to create a MigrationManager and register all known steps.
RegisterStep — Register a migration step.
Migrate — Perform all registered migration steps in sequence.
GetCurrentStepIndex
GetTotalSteps
GetCurrentStepDescription
MigrationManager — Private default constructor.
---
source: /SuperGenius/Classes/d3/d30/classsgns_1_1_migration_transaction/
title: sgns::MigrationTransaction (class)
---
Members:
utxo_params_
from_version_
token_id_
registered
SerializeToEmbeddedTransaction — Serializes the transaction into an EmbeddedTransaction proto with the appropriate oneof field set.
~MigrationTransaction
SerializeByteVector — Serializes the transaction into a byte vector, including the DAG metadata.
GetAmount
GetTokenID
GetChainId — Returns the source chain id for input validation routing.
GetUTXOParameters
HasUTXOParameters — Returns if transaction supports UTXOs.
GetUTXOParametersOpt — Returns the UTXOs.
GetFromVersion
GetTransactionSpecificPath — Returns the transaction-specific path component for storage and retrieval.
GetTopics — Returns the destination topics associated with the transaction.
SerializeByteVector — Serializes the transaction into a byte vector, including the DAG metadata.
SerializeByteVector — Serializes the transaction using the internal DAG metadata.
SerializeToEmbeddedTransaction — Serializes the transaction into an EmbeddedTransaction proto with the appropriate oneof field set.
SerializeToEmbeddedTransaction — Serializes using internal DAG metadata.
DeSerializeByteVector
New
DeriveUniqueSourceKey
MigrationTransaction
Register
---
source: /SuperGenius/Classes/d7/d9c/classsgns_1_1_mint_transaction/
title: sgns::MintTransaction (class)
---
Transaction that mints tokens after proving a corresponding source-chain event.
Members:
amount — Amount of token units minted by this transaction.
chain_id — Source chain identifier associated with the mint event.
token_id — Token identifier for the asset being minted.
registered — Forces static initialization of the mint transaction deserializer.
~MintTransaction — Destroys the mint transaction.
SerializeToEmbeddedTransaction — Serializes the transaction into an EmbeddedTransaction proto with the appropriate oneof field set.
SerializeByteVector — Serializes the mint transaction payload and DAG metadata.
GetAmount — Returns the minted amount.
GetTokenID — Returns the minted token identifier.
GetChainId — Returns the source chain identifier associated with the mint.
GetTransactionSpecificPath — Returns the transaction-specific storage path component.
SerializeByteVector — Serializes the transaction into a byte vector, including the DAG metadata.
SerializeByteVector — Serializes the transaction using the internal DAG metadata.
SerializeToEmbeddedTransaction — Serializes the transaction into an EmbeddedTransaction proto with the appropriate oneof field set.
SerializeToEmbeddedTransaction — Serializes using internal DAG metadata.
DeSerializeByteVector — Deserializes a serialized mint transaction.
New — Creates a new mint transaction instance.
MintTransaction — Constructs a mint transaction from its payload and DAG metadata.
Register — Registers the deserializer for the mint transaction type.
---
source: /SuperGenius/Classes/db/d6b/classsgns_1_1_mint_transaction_v2/
title: sgns::MintTransactionV2 (class)
---
Implements a Mint Version 2 transaction.
Members:
utxo_params_ — The UTXOs (inputs and outputs)
chain_id_ — The chain ID from the bridge.
token_id_ — The ID of the token minted.
registered — Forces the static initialization of the Deserializer.
SerializeToEmbeddedTransaction — Serializes the transaction into an EmbeddedTransaction proto with the appropriate oneof field set.
~MintTransactionV2 — Destroy the Mint Transaction V 2 object.
SerializeByteVector — Serializes the transaction.
GetAmount — Get the amount of the mint.
GetTokenID — Get the Token ID.
GetChainId — Get source chain identifier for bridge mint validation routing.
GetUTXOParameters — Returns the UTXOs.
HasUTXOParameters — Returns if transaction supports UTXOs.
GetUTXOParametersOpt — Returns the UTXOs.
GetTransactionSpecificPath — Gets the transaction specific path.
GetTopics — Returns the topics of interest of this transaction.
GetSlotID — Generates a slot ID for consensus slot key determination.
SerializeByteVector — Serializes the transaction into a byte vector, including the DAG metadata.
SerializeByteVector — Serializes the transaction using the internal DAG metadata.
SerializeToEmbeddedTransaction — Serializes the transaction into an EmbeddedTransaction proto with the appropriate oneof field set.
SerializeToEmbeddedTransaction — Serializes using internal DAG metadata.
DeSerializeByteVector — Deserializes a MintV2 serialized byte vector into an object.
New — Creates a new MintV2 transaction.
MintTransactionV2 — Construct a new Mint Transaction V2.
Register — Registers a deserializer for MintV2 transactions.
---
source: /SuperGenius/Classes/dc/dbb/classsgns_1_1sgprocessing_1_1_m_n_n___audio/
title: sgns::sgprocessing::MNN_Audio (class)
---
Members:
MNN_Audio
~MNN_Audio
StartProcessing
Process
---
source: /SuperGenius/Classes/db/d36/classsgns_1_1sgprocessing_1_1_m_n_n___bool/
title: sgns::sgprocessing::MNN_Bool (class)
---
Members:
MNN_Bool
~MNN_Bool
StartProcessing
Process
---
source: /SuperGenius/Classes/d4/d8e/classsgns_1_1sgprocessing_1_1_m_n_n___buffer/
title: sgns::sgprocessing::MNN_Buffer (class)
---
Members:
MNN_Buffer
~MNN_Buffer
StartProcessing
Process
---
source: /SuperGenius/Classes/d6/d8a/classsgns_1_1sgprocessing_1_1_m_n_n___float/
title: sgns::sgprocessing::MNN_Float (class)
---
Members:
MNN_Float
~MNN_Float
StartProcessing
Process
---
source: /SuperGenius/Classes/d8/d19/classsgns_1_1sgprocessing_1_1_m_n_n___image/
title: sgns::sgprocessing::MNN_Image (class)
---
Members:
MNN_Image
~MNN_Image
StartProcessing
Process
---
source: /SuperGenius/Classes/d8/db6/classsgns_1_1sgprocessing_1_1_m_n_n___int/
title: sgns::sgprocessing::MNN_Int (class)
---
Members:
MNN_Int
~MNN_Int
StartProcessing
Process
---
source: /SuperGenius/Classes/d2/d5f/classsgns_1_1sgprocessing_1_1_m_n_n___mat2/
title: sgns::sgprocessing::MNN_Mat2 (class)
---
Members:
MNN_Mat2
~MNN_Mat2
StartProcessing
Process
---
source: /SuperGenius/Classes/dc/d83/classsgns_1_1sgprocessing_1_1_m_n_n___mat3/
title: sgns::sgprocessing::MNN_Mat3 (class)
---
Members:
MNN_Mat3
~MNN_Mat3
StartProcessing
Process
---
source: /SuperGenius/Classes/dc/da0/classsgns_1_1sgprocessing_1_1_m_n_n___mat4/
title: sgns::sgprocessing::MNN_Mat4 (class)
---
Members:
MNN_Mat4
~MNN_Mat4
StartProcessing
Process
---
source: /SuperGenius/Classes/d4/dac/classsgns_1_1sgprocessing_1_1_m_n_n___m_l/
title: sgns::sgprocessing::MNN_ML (class)
---
Members:
StartProcessing
Process
---
source: /SuperGenius/Classes/da/df7/classsgns_1_1sgprocessing_1_1_m_n_n___string/
title: sgns::sgprocessing::MNN_String (class)
---
Members:
MNN_String
~MNN_String
StartProcessing
Process
---
source: /SuperGenius/Classes/d8/d23/classsgns_1_1sgprocessing_1_1_m_n_n___tensor/
title: sgns::sgprocessing::MNN_Tensor (class)
---
Members:
MNN_Tensor
~MNN_Tensor
StartProcessing
Process
---
source: /SuperGenius/Classes/da/dc9/classsgns_1_1sgprocessing_1_1_m_n_n___texture1_d/
title: sgns::sgprocessing::MNN_Texture1D (class)
---
Members:
MNN_Texture1D
~MNN_Texture1D
StartProcessing
Process
---
source: /SuperGenius/Classes/d6/d91/classsgns_1_1sgprocessing_1_1_m_n_n___texture_cube/
title: sgns::sgprocessing::MNN_TextureCube (class)
---
Members:
MNN_TextureCube
~MNN_TextureCube
StartProcessing
Process
---
source: /SuperGenius/Classes/d7/d04/classsgns_1_1sgprocessing_1_1_m_n_n___vec2/
title: sgns::sgprocessing::MNN_Vec2 (class)
---
Members:
~MNN_Vec2
StartProcessing
Process
---
source: /SuperGenius/Classes/df/de7/classsgns_1_1sgprocessing_1_1_m_n_n___vec3/
title: sgns::sgprocessing::MNN_Vec3 (class)
---
Members:
~MNN_Vec3
StartProcessing
Process
---
source: /SuperGenius/Classes/db/d4d/classsgns_1_1sgprocessing_1_1_m_n_n___vec4/
title: sgns::sgprocessing::MNN_Vec4 (class)
---
Members:
~MNN_Vec4
StartProcessing
Process
---
source: /SuperGenius/Classes/d3/d6e/classsgns_1_1sgprocessing_1_1_m_n_n___volume/
title: sgns::sgprocessing::MNN_Volume (class)
---
Members:
MNN_Volume
~MNN_Volume
StartProcessing
Process
---
source: /SuperGenius/Classes/da/dbf/classsgns_1_1multisig_1_1_multi_sig/
title: sgns::multisig::MultiSig (class)
---
Configured N-of-M signature evaluator.
The constructor fixes the quorum policy for the evaluator's lifetime: required_signatures is N and the number of unique addresses in signer_set is M. A configuration is valid only when 1 <= N <= M.
Members:
signer_set_
required_signatures_
MultiSig
IsValid
RequiredSignatures
AuthorizedSignerCount
EvaluateQuorum — Evaluates collected signatures against this instance's N-of-M policy.
---
source: /SuperGenius/Classes/dd/d27/structsgns_1_1_new_account/
title: sgns::NewAccount (struct)
---
Account-creation source for GeniusNode::New(dev_config, AccountSource).Generate a new identity.
Owned std::string payloads — a std::variant owns its active alternative, so non-owning views such as const char* or std::string_view would dangle once the variant is stored or passed. TokenID and other dev_config fields are NOT part of the variant; they come from dev_config.
---
source: /SuperGenius/Classes/dd/de0/structeth_1_1_new_block_hash_entry/
title: eth::NewBlockHashEntry (struct)
---
Members:
hash
number
---
source: /SuperGenius/Classes/d9/dce/structeth_1_1_new_block_hashes_message/
title: eth::NewBlockHashesMessage (struct)
---
Members:
entries
---
source: /SuperGenius/Classes/d9/d30/structeth_1_1_new_block_message/
title: eth::NewBlockMessage (struct)
---
Full new block announcement (message id 0x07).
Members:
header
transactions
ommers
total_difficulty
---
source: /SuperGenius/Classes/d3/d91/structsgns_1_1crdt_1_1_c_r_d_t_callback_manager_1_1_new_data_callback_entry/
title: sgns::crdt::CRDTCallbackManager::NewDataCallbackEntry (struct)
---
Members:
pattern
regex
callback
---
source: /SuperGenius/Classes/df/d5f/structeth_1_1_new_pooled_transaction_hashes_message/
title: eth::NewPooledTransactionHashesMessage (struct)
---
Members:
types
sizes
hashes
---
source: /SuperGenius/Classes/d4/d4f/classsgns_1_1_nil_file_helper/
title: sgns::NilFileHelper (class)
---
Members:
PrintMarshalledData
GetMarshalledData
DecodeMarshalledData
WriteAsHex
WriteAsBin
ReadFromHex
ReadFromBin
---
source: /SuperGenius/Classes/dc/d38/struct_node_i_d_hash/
title: NodeIDHash (struct)
---
Members:
operator()
---
source: /SuperGenius/Classes/dd/da3/structintx_1_1internal_1_1normalized__div__args/
title: intx::internal::normalized_div_args (struct)
---
Members:
divisor
numerator
num_divisor_words
num_numerator_words
shift
---
source: /SuperGenius/Classes/d4/d12/structstd_1_1numeric__limits_3_01intx_1_1uint_3_01_n_01_4_01_4/
title: std::numeric_limits< intx::uint< N > > (struct)
---
Members:
type
is_specialized
is_integer
is_signed
is_exact
has_infinity
has_quiet_NaN
has_signaling_NaN
has_denorm
has_denorm_loss
round_style
is_iec559
is_bounded
is_modulo
digits
digits10
max_digits10
radix
min_exponent
min_exponent10
max_exponent
max_exponent10
traps
tinyness_before
min
lowest
max
epsilon
round_error
infinity
quiet_NaN
signaling_NaN
denorm_min
---
source: /SuperGenius/Classes/d6/dfe/structsgns_1_1_out_point/
title: sgns::OutPoint (struct)
---
Unique identifier for a transaction output.
Members:
txid_hash_ — Hash of the transaction that produced the output.
output_idx_ — Output index within the producing transaction.
operator== — Compares two outpoints for exact transaction-and-index equality.
---
source: /SuperGenius/Classes/d5/d40/structsgns_1_1_out_point_hash/
title: sgns::OutPointHash (struct)
---
Hash functor for using OutPoint keys in unordered containers.
Members:
operator() — Computes a combined hash for a transaction id and output index pair.
---
source: /SuperGenius/Classes/dc/dfd/structsgns_1_1_output_dest_info/
title: sgns::OutputDestInfo (struct)
---
Single UTXO output destination entry.
Members:
encrypted_amount — El Gamal encrypted amount.
dest_address — Destination node address.
token_id — Token identifier.
---
source: /SuperGenius/Classes/da/d9a/structsgns_1_1processing_1_1_processing_sub_task_queue_manager_1_1_ownership_request/
title: sgns::processing::ProcessingSubTaskQueueManager::OwnershipRequest (struct)
---
Members:
node_id
timestamp
---
source: /SuperGenius/Classes/dc/dc6/classdiscv4_1_1_packet_factory/
title: discv4::PacketFactory (class)
---
Members:
SendPingAndWait
SignAndBuildPacket
SendPacket
---
source: /SuperGenius/Classes/d3/d38/struct_key_generator_1_1_el_gamal_1_1_params/
title: KeyGenerator::ElGamal::Params (struct)
---
Prime and generator parameter struct.
Members:
prime_number — The safe prime number used by El Gamal.
generator — The generator used by El Gamal.
Params — Construct a new Params object.
---
source: /SuperGenius/Classes/d5/d51/structeth_1_1rpc_1_1_rpc_http_transport_1_1_parsed_url/
title: eth::rpc::RpcHttpTransport::ParsedUrl (struct)
---
Members:
scheme
host
port
target
is_https
---
source: /SuperGenius/Classes/d5/db2/struct_peer/
title: Peer (struct)
---
Members:
ip
udp_port
tcp_port
node_id
last_seen
xor_distance
---
source: /SuperGenius/Classes/da/d68/structrlpx_1_1_peer_info/
title: rlpx::PeerInfo (struct)
---
Members:
public_key
client_id
listen_port
remote_address
remote_port
---
source: /SuperGenius/Classes/d9/d37/structsgns_1_1_consensus_manager_1_1_pending_dependency_key/
title: sgns::ConsensusManager::PendingDependencyKey (struct)
---
Local-only dependency key for deferred subject validation.
Members:
Type
type
value
operator==
Certificate
---
source: /SuperGenius/Classes/d3/dbe/structsgns_1_1_consensus_manager_1_1_pending_dependency_key_hash/
title: sgns::ConsensusManager::PendingDependencyKeyHash (struct)
---
Hash functor for PendingDependencyKey unordered containers.
Members:
operator()
---
source: /SuperGenius/Classes/d4/dbf/structsgns_1_1_consensus_manager_1_1_pending_lifecycle_config/
title: sgns::ConsensusManager::PendingLifecycleConfig (struct)
---
Local pending proposal lifecycle limits.
Members:
max_pending_proposals
max_pending_per_proposer
max_retained_pending_bytes
pending_ttl
min_dependency_retry_interval
scheduled_retry_delays
---
source: /SuperGenius/Classes/d5/db9/structsgns_1_1crdt_1_1_atomic_transaction_1_1_pending_operation/
title: sgns::crdt::AtomicTransaction::PendingOperation (struct)
---
Members:
type
key
value
---
source: /SuperGenius/Classes/d7/d3b/structsgns_1_1_consensus_manager_1_1_pending_proposal_entry/
title: sgns::ConsensusManager::PendingProposalEntry (struct)
---
Canonical local pending proposal entry.
Members:
proposal
dependencies
admitted_at
expires_at
next_retry_at
last_retry_at
retry_after
retained_bytes
proposer_id
scheduled_retry_count
---
source: /SuperGenius/Classes/d9/df8/structsgns_1_1_validator_registry_1_1_pending_registry_write/
title: sgns::ValidatorRegistry::PendingRegistryWrite (struct)
---
Members:
subject_hash
update
---
source: /SuperGenius/Classes/d7/dd5/structdiscv4_1_1discv4__client_1_1_pending_reply/
title: discv4::discv4_client::PendingReply (struct)
---
Members:
timer
pong — filled by handle_pong; null for non-ping entries
enr_response — filled by handle_enr_response; null for non-ENR entries
expected_hash — outbound PING/ENRRequest wire hash; used for PONG/ReplyTok verification
---
source: /SuperGenius/Classes/dd/d3e/structdiscv5_1_1discv5__client_1_1_pending_request/
title: discv5::discv5_client::PendingRequest (struct)
---
Members:
peer
req_id
request_nonce
challenge_data
id_nonce
record_seq
have_challenge
---
source: /SuperGenius/Classes/da/db8/structeth_1_1_eth_watch_service_1_1_pending_request/
title: eth::EthWatchService::PendingRequest (struct)
---
Context stored for an outstanding GetReceipts request.
Members:
block_hash
block_number
---
source: /SuperGenius/Classes/d5/d5f/structsgns_1_1_transaction_manager_1_1_pending_transaction_wait/
title: sgns::TransactionManager::PendingTransactionWait (struct)
---
Members:
timer
tx_id
callback
started_at
completed
PendingTransactionWait
---
source: /SuperGenius/Classes/da/da7/structrlpx_1_1protocol_1_1_ping_message/
title: rlpx::protocol::PingMessage (struct)
---
Members:
encode
decode
---
source: /SuperGenius/Classes/dc/d90/class_ping_session/
title: PingSession (class)
---
Members:
host_
pingSession_
ping_
subsOnNewConnection_
PingSession
Init
OnSessionPing
OnNewConnection
---
source: /SuperGenius/Classes/d4/d97/structplaceholder__verifier_1_1placeholder__challenges__type/
title: placeholder_verifier::placeholder_challenges_type (struct)
---
Members:
eta
perm_beta
perm_gamma
lookup_theta
lookup_gamma
lookup_beta
lookup_alphas
gate_theta
alphas
fri_alphas
fri_x_indices
lpc_theta
xi
---
source: /SuperGenius/Classes/de/d77/structplaceholder__verifier_1_1placeholder__permutation__argument__input__type/
title: placeholder_verifier::placeholder_permutation_argument_input_type (struct)
---
Members:
xi_values
id_perm
sigma_perm
thetas
---
source: /SuperGenius/Classes/d7/d95/structplaceholder__verifier_1_1placeholder__proof__type/
title: placeholder_verifier::placeholder_proof_type (struct)
---
Members:
commitments
challenge
z
fri_roots
initial_proof_values
round_proof_values
initial_proof_positions
initial_proof_hashes
round_merkle_proof_positions
round_proof_hashes
final_polynomial
---
source: /SuperGenius/Classes/da/d79/structrlpx_1_1protocol_1_1_pong_message/
title: rlpx::protocol::PongMessage (struct)
---
Members:
encode
decode
---
source: /SuperGenius/Classes/d4/d2d/structeth_1_1_pooled_transactions_message/
title: eth::PooledTransactionsMessage (struct)
---
Members:
request_id
encoded_transactions
---
source: /SuperGenius/Classes/d2/d00/structeth_1_1rpc_1_1_rpc_manager_1_1_pool_entry/
title: eth::rpc::RpcManager::PoolEntry (struct)
---
Members:
group
pool
---
source: /SuperGenius/Classes/d2/d79/structplaceholder__verifier_1_1precomputed__values__type/
title: placeholder_verifier::precomputed_values_type (struct)
---
Members:
l0
Z_at_xi
F_consolidated
T_consolidated
---
source: /SuperGenius/Classes/d7/da3/structsgns_1_1_genius_node_1_1_price_info/
title: sgns::GeniusNode::PriceInfo (struct)
---
Members:
price — Cached USD token price.
lastUpdate — Time when price was fetched.
---
source: /SuperGenius/Classes/df/d94/class_prime_numbers/
title: PrimeNumbers (class)
---
Members:
cpp_int
GenerateSafePrime
GetRandomNumber
GetGeneratorFromPrime
ModInverseEuclideanDivision
SqrtMod
PowHighPrec
---
source: /SuperGenius/Classes/d6/d88/struct_key_generator_1_1_el_gamal_1_1_private_key/
title: KeyGenerator::ElGamal::PrivateKey (struct)
---
Members:
private_key_scalar
CreatePrivateScalar
PrivateKey
GetPrivateKeyScalar
---
source: /SuperGenius/Classes/d9/dc0/struct_private_key/
title: PrivateKey (struct)
---
Members:
base_type
curve_type
padding_policy
generator_type
distribution_type
hash_type
internal_accumulator_type
scalar_field_value_type
g1_value_type
base_integral_type
scalar_modular_type
private_key_type
public_key_type
signature_type
privkey
PrivateKey
GetPrivateKeyScalar
generate_public_key
---
source: /SuperGenius/Classes/d9/d95/structeth_1_1rpc_1_1_probe_result/
title: eth::rpc::ProbeResult (struct)
---
Members:
url
expected_chain_id
status
detail
---
source: /SuperGenius/Classes/d6/da7/classsgns_1_1processing_1_1_processing_core/
title: sgns::processing::ProcessingCore (class)
---
Processing core interface.
Implementations encapsulate specific processing algorithms for subtasks.
Members:
~ProcessingCore
ProcessSubTask — Processes a subtask and returns the result.
GetProgress — Returns the progress of the processing core as a float between 0.0 and 100.0.
---
source: /SuperGenius/Classes/d0/d7f/classsgns_1_1processing_1_1_processing_core_impl/
title: sgns::processing::ProcessingCoreImpl (class)
---
Default implementation of ProcessingCore backed by GlobalDB.
Members:
Error — Error codes for ProcessingCoreImpl operations.
task_queue_ — Shared pointer to the task queue for retrieving tasks and subtasks.
token_ID_ — The Token ID to be used on the results of the processed subtasks.
max_processing_subtask_count_ — The maximum number of subtasks that can be processed concurrently.
subtask_count_mutex_ — Mutex to protect access to the processing subtask count.
processing_subtask_count_ — The current count of subtasks being processed.
processing_manager_ — The last processing manager used for processing a subtask, kept here to allow progress retrieval during processing.
New — Factory method to create a new instance of ProcessingCoreImpl.
~ProcessingCoreImpl
ProcessSubTask — Processes a subtask and returns the result.
GetProgress — Returns the progress of the processing core as a float between 0.0 and 100.0.
ProcessingCoreImpl — Private constructor for ProcessingCoreImpl. Use the static New method to create instances.
IncProcessingSubTaskCount — Increments the count of currently processing subtasks. Returns failure if the count exceeds the maximum allowed.
DecProcessingSubTaskCount — Decrements the count of currently processing subtasks. Called whenever a processing finished.
---
source: /SuperGenius/Classes/dc/d00/classsgns_1_1processing_1_1_processing_engine/
title: sgns::processing::ProcessingEngine (class)
---
Handles subtask processing and result aggregation.
Members:
m_nodeId
m_processingCore
m_processingErrorSink
m_processingDoneSink
m_subTaskQueueAccessor
m_mutexSubTaskQueue
m_logger
ProcessingEngine
~ProcessingEngine
StartQueueProcessing
StopQueueProcessing
IsQueueProcessingStarted
GetProgress
OnSubTaskGrabbed
ProcessSubTask
---
source: /SuperGenius/Classes/d7/d85/classsgns_1_1sgprocessing_1_1_processing_manager/
title: sgns::sgprocessing::ProcessingManager (class)
---
Members:
Error
m_logger
processing_
m_processor
m_processorFactories
m_inputMap
~ProcessingManager
ParseBlockSize
CheckProcessValidity
Process
RegisterProcessorFactory
GetProcessingData
GetInputIndex
GetProgress
Create
IsProcessingValid — Checks whether a processing json is valid by attempting to create a ProcessingManager instance with it.
IsProcessingModelValid — Checks if a json encoded data contains a valid ModelNode structure by attempting to parse it.
GetModelNodeFromJson — Gets the ModelNode structure parsed from a json string.
ProcessingManager
Init
GetCidForProc
GetSubCidForProc
SetProcessorByName
---
source: /SuperGenius/Classes/d2/d5b/classsgns_1_1processing_1_1_processing_node/
title: sgns::processing::ProcessingNode (class)
---
Node for distributed computation.
Coordinates subtask queue ownership, processing, and result publication.
Members:
WorkGuard
m_gossipPubSub
m_nodeId
m_escrowId
m_processingCore
m_subTaskResultStorage
m_processingEngine
m_queueChannel
m_subtaskQueueManager
m_subTaskQueueAccessor
m_bitswap — Cached for accessor when created.
m_taskResultProcessingSink
m_processingErrorSink
m_processingDoneSink
m_creationTime
m_ttl
m_ttlTimer
m_selfDestructCallback
m_localContext
m_localWorkGuard
m_localIoThread
m_logger
New — Creates a processing node instance.
~ProcessingNode
HasQueueOwnership
setMirrorResultCallback
setBitswap
GetProgress
ProcessingNode
AttachTo
CreateSubTaskQueue
Initialize
InitTTL
StartTTLTimer
CheckTTL
---
source: /SuperGenius/Classes/dc/d66/classsgns_1_1sgprocessing_1_1_processing_processor/
title: sgns::sgprocessing::ProcessingProcessor (class)
---
Members:
m_progress
m_logger
~ProcessingProcessor
StartProcessing
GetProgress
---
source: /SuperGenius/Classes/df/df1/classsgns_1_1_processing_proof/
title: sgns::ProcessingProof (class)
---
A class for generating and verifying processing proofs.
ProcessingProof is a derived class from IBasicProof, providing the specific
implementation for handling processing of funds proof generation and verification.
Members:
subtask_id_m — Subtask identifier associated with the processing proof.
PROCESSING_TYPE_NAME — Constant representing the processing proof type name.
registered — Static variable to ensure registration happens on inclusion of header file.
ProcessingProof — Constructor for the ProcessingProof class.
~ProcessingProof — Destructor for the ProcessingProof class.
GetProofType — Retrieves the type of proof for processings.
SerializeFullProof — Serializes the full proof data and parameters.
GenerateJsonParameters — Generates the parameters in JSON array form.
DeSerializePublicParams — Deserializes public parameters from the provided proof data.
Register — Registers the deserializer and bytecode for the processing proof type.
---
source: /SuperGenius/Classes/db/dbc/structsgns_1_1sgprocessing_1_1_processing_result/
title: sgns::sgprocessing::ProcessingResult (struct)
---
Members:
hash
output_buffers
output_locations — Output locations for each saved result (file paths, IPFS CIDs, URLs, etc.)
---
source: /SuperGenius/Classes/dd/d81/classsgns_1_1processing_1_1_processing_service_impl/
title: sgns::processing::ProcessingServiceImpl (class)
---
Members:
Status
m_gossipPubSub
m_context
m_context_work
io_thread
m_maximalNodesCount
m_subTaskEnqueuer
m_subTaskResultStorage
m_processingCore
m_gridChannel
m_processingNodes
m_timerChannelListRequestTimeout
m_channelListRequestTimeout
m_waitingChannelRequest
m_isStopped
m_mutexNodes
userCallbackSuccess_
userCallbackError_
node_address_
m_mirrorResultCallback — Mirror callback propagated to all nodes.
m_bitswap — Bitswap for data availability checks.
m_competingPeers
m_pendingCreationTimestamp
m_pendingCreationTimeout
m_nodeCreationTimer
m_nodeCreationTimeout
m_pendingSubTaskQueueId
m_pendingSubTasks
m_pendingTask
m_mutexPendingCreation
m_blacklistedChannels
m_mutexBlacklist
m_logger
ProcessingServiceImpl — Constructs a processing service with user callbacks.
~ProcessingServiceImpl
StartProcessing
StopProcessing
GetProcessingNodesCount
SetChannelListRequestTimeout
GetProcessingStatus
setMirrorResultCallback — Set callback for mirroring processing results. When set, results with mirror_result=true trigger a fetch.
setBitswap — Set bitswap instance propagated to all processing nodes for data availability checks.
Listen
SendChannelListRequest
OnMessage
OnQueueProcessingCompleted
OnProcessingError
OnProcessingDone
AcceptProcessingChannel
PublishLocalChannelList
HandleRequestTimeout
BroadcastNodeCreationIntent
HandleNodeCreationTimeout
OnNodeCreationIntent
HasLowestAddress
IsPendingCreationStale
CancelPendingCreation
---
source: /SuperGenius/Classes/d7/d27/structsgns_1_1processing_1_1_processing_service_impl_1_1_processing_status/
title: sgns::processing::ProcessingServiceImpl::ProcessingStatus (struct)
---
Members:
status
percentage
ProcessingStatus
---
source: /SuperGenius/Classes/d8/d64/classsgns_1_1processing_1_1_processing_sub_task_queue/
title: sgns::processing::ProcessingSubTaskQueue (class)
---
Distributed subtask queue implementation.
Members:
TimestampProvider
m_localNodeId
m_queue
m_enabledItemIndices
m_logger
m_timestampProvider
ProcessingSubTaskQueue
CreateQueue
GrabItem
MoveOwnershipTo
RollbackOwnership
HasOwnership
UpdateQueue
UnlockExpiredItems
GetLastLockTimestamp
AddOwnershipRequest
ProcessNextOwnershipRequest
ChangeOwnershipTo
LockItem
LogQueue
---
source: /SuperGenius/Classes/d7/d2b/classsgns_1_1processing_1_1_processing_sub_task_queue_channel/
title: sgns::processing::ProcessingSubTaskQueueChannel (class)
---
Subtask queue channel interface which is used for in-memory queue synchronization
Members:
~ProcessingSubTaskQueueChannel
RequestQueueOwnership
PublishQueue
GetActiveNodesCount
GetActiveNodes
---
source: /SuperGenius/Classes/dd/d85/classsgns_1_1processing_1_1_processing_sub_task_queue_channel_pub_sub/
title: sgns::processing::ProcessingSubTaskQueueChannelPubSub (class)
---
Subtask queue channel implementation that uses pubsub as a data transport protocol
Members:
QueueRequestSink
QueueUpdateSink
m_processingQueueChannel
m_gossipPubSub
m_context
m_queueRequestSink
m_queueUpdateSink
m_logger
ProcessingSubTaskQueueChannelPubSub
~ProcessingSubTaskQueueChannelPubSub
RequestQueueOwnership
PublishQueue
SetQueueRequestSink
SetQueueUpdateSink
Listen
GetActiveNodesCount
GetActiveNodes
OnProcessingChannelMessage
HandleSubTaskQueueRequest
HandleSubTaskQueue
---
source: /SuperGenius/Classes/d4/d2b/classsgns_1_1processing_1_1_processing_sub_task_queue_manager/
title: sgns::processing::ProcessingSubTaskQueueManager (class)
---
Distributed subtask queue manager.
Members:
SubTaskGrabbedCallback
m_queueChannel
m_context
m_localNodeId
m_queue
m_queueMutex
m_onSubTaskGrabbedCallbacks
m_subTaskQueueAssignmentEventSink
m_processedSubTaskIds
m_dltQueueResponseTimeout
m_queueResponseTimeout
m_dltGrabSubTaskTimeout
m_processingQueue
m_processingTimeout
m_processingErrorSink
m_queue_timestamp_
m_ownership_acquired_at_
m_ownership_last_delta_time_
m_ownershipRequestQueue
m_logger
m_lastQueueUpdateTime
m_processedSubtasksInCurrentOwnership
m_defaultMaxSubtasksPerOwnership
m_maxSubtasksPerOwnership
m_delayBetweenProcessingMs
m_lastActiveCountCheck
m_activeCountElapsed — Elapsed time since last active node count reset m_processedSubtasksInCurrentOwnership.
m_waitTimeBeforeReset
m_initialDelayPassed
ProcessingSubTaskQueueManager
~ProcessingSubTaskQueueManager
SetProcessingTimeout
CreateQueue
GrabSubTask
MoveOwnershipTo
HasOwnership
ProcessSubTaskQueueMessage
ProcessSubTaskQueueRequestMessage
GetQueueSnapshot
ChangeSubTaskProcessingStates
IsQueueInit
IsProcessed
SetSubTaskQueueAssignmentEventSink
GetCurrentQueueTimestamp
SetMaxSubtasksPerOwnership
UpdateQueue
HandleQueueRequestTimeout
PublishSubTaskQueue
ProcessPendingSubTaskGrabbing
GrabSubTasks
HandleGrabSubTaskTimeout
LogQueue
HasAvailableWork
UpdateQueueTimestamp
CheckActiveCount
CalculateGrabSubTaskTimeout
UpdateUnprocessedSubTaskIndices
---
source: /SuperGenius/Classes/d3/d40/classsgns_1_1processing_1_1_processing_task_queue/
title: sgns::processing::ProcessingTaskQueue (class)
---
Members:
~ProcessingTaskQueue — Distributed task queue interface.
EnqueueTask — Stores a task with its subtasks.
EnqueueTask — Stores a task with its subtasks within an atomic transaction.
GetTask — Returns a task by task id, returns failure if task not found or invalid.
GetSubTasks — Retrieves the subtasks for a given task ID.
GrabTask — Grabs task from the storage, returning its ID and data.
CompleteTask — Completes a task with its result returning an atomic transaction to commit the completion.
IsTaskCompleted — Checks if the task is completed.
MarkTaskBad — Mark a task key as bad to be skipped.
ListTaskKeys — Lists all known task IDs in the queue.
GetTaskResult — Retrieves the completed task result, if available.
---
source: /SuperGenius/Classes/d0/d2c/classsgns_1_1processing_1_1_processing_validation_core/
title: sgns::processing::ProcessingValidationCore (class)
---
Members:
Error — Enumeration of error codes used in the processing validation class.
m_logger — Logger instance for logging within the ProcessingValidationCore class.
ProcessingValidationCore
ValidateResults
ValidateIndividualResult
CheckSubTaskResultHashes — Checks the result hashes for a given subtask against the provided chunks.
---
source: /SuperGenius/Classes/d7/de8/classsgns_1_1processing_1_1_process_task_splitter/
title: sgns::processing::ProcessTaskSplitter (class)
---
Members:
ProcessTaskSplitter
SplitTask
---
source: /SuperGenius/Classes/d4/d56/structsgns_1_1_consensus_manager_1_1_proposal_state/
title: sgns::ConsensusManager::ProposalState (struct)
---
Runtime state tracked for one proposal.
Members:
proposal — Proposal currently tracked.
votes — Votes accepted for the proposal.
slot_key — Slot key grouping competing proposals.
total_weight — Total eligible weight for tally.
approved_weight — Approved weight accumulated so far.
seen_voters — Voter ids already counted.
quorum_reached — Whether quorum has been reached.
quorum_reached_ts_ms — Timestamp when quorum was reached.
last_attempt_round — Last certificate-attempt round.
---
source: /SuperGenius/Classes/d5/d75/classsgns_1_1_public_chain_input_validator/
title: sgns::PublicChainInputValidator (class)
---
Validator for transactions that reference external public-chain proofs.
Members:
::PublicChainInputValidatorTestAccess — Friend accessor for unit testing VerifyPublicChainSmartContract and the wired rpc_endpoints_ (mirrors BridgeRelayerTestAccess).
rpc_endpoints_
registered_chain_ids_ — Chain IDs this validator registered for (self-deregistered on destruction).
transport_factory_ — Pluggable transport factory for DI-based mock injection (D-07, D-14). When empty, VerifyPublicChainSmartContract uses the default RpcHttpTransport factory.
RegisterForChain — Attempts to claim chain_id in the global registry and records successful claims for self-removal on destruction.
~PublicChainInputValidator
SetRpcEndpoints — Configure weighted RPC endpoints for a source chain.
AddRpcEndpoints — Merge weighted RPC endpoints into a source chain's existing list.
ValidateUTXOParameters — Validates local UTXO structure for externally sourced claims.
ValidateWitness — Validates the external witness data supplied by consensus.
RequiresConsensusUTXOData — Public-chain validation does not require local UTXO witness data.
SetTransportFactory — Inject a custom transport factory for DI-based mock support.
GetFirstRpcUrl — Returns the first RPC endpoint URL for a given chain ID, if any exist.
GetSlotHash — Returns the SHA-256 hash of an endpoint URL for a vote slot (Phase 6, D-01).
GetFirstConfiguredChainId — Returns the first configured chain id, if any (Phase 6, D-01).
VerifyPublicChainSmartContract — Verifies that the referenced public-chain smart-contract event matches the transaction using a weighted multi-provider RPC quorum.
---
source: /SuperGenius/Classes/d1/d45/struct_key_generator_1_1_el_gamal_1_1_public_key/
title: KeyGenerator::ElGamal::PublicKey (struct)
---
Members:
params
public_key_value — The value of the public key.
PublicKey
PublicKey
---
source: /SuperGenius/Classes/d5/dd7/struct_public_key/
title: PublicKey (struct)
---
Members:
curve_type
padding_policy
internal_accumulator_type
scalar_field_type
scalar_field_value_type
g1_type
g1_value_type
base_integral_type
scalar_modular_type
public_key_type
signature_type
pubkey
PublicKey
PublicKey
pubkey_data
---
source: /SuperGenius/Classes/da/d80/classsgns_1_1crdt_1_1_pub_sub_broadcaster_ext/
title: sgns::crdt::PubSubBroadcasterExt (class)
---
Extended PubSub broadcaster that integrates with a CRDT datastore and Graphsync DAG syncer.
Manages multiple gossip topics, broadcasting messages and processing incoming payloads.
Members:
GossipPubSub
topicsToListen_
topicsToBroadcast_
dagSyncer_
messageQueue_
pubSub_ — Pubsub used to broadcast/receive messages.
queueMutex_ — protects messageQueue_
listenTopicsMutex_ — protects topicsToListen_
broadcastTopicsMutex_ — protects topicsToListen_
subscriptionMutex_ — protects subscriptionFutures_
started_
m_logger
subscriptionFutures_
~PubSubBroadcasterExt
Broadcast — Sends the given buffer as a broadcast to peers.
Next — Retrieves the next incoming broadcast payload.
Start — Subscribes to all configured topics and starts message processing. Must be called before using Next() to receive incoming messages.
AddBroadcastTopic — Adds a new topic by name.
AddListenTopic — Subscribe to a given topic and store its future.
HasTopic — Checks whether the given topic is already registered.
GetDagSyncer — Get the underlying GraphsyncDAGSyncer instance.
Stop
AddSingleCIDInfo
New — Factory method to create a broadcaster for multiple topics.
PubSubBroadcasterExt — Private constructor initializing members with provided topics and syncer.
OnMessage
AddMultiCIDInfo
---
source: /SuperGenius/Classes/db/d65/struct_quality_filter_state/
title: QualityFilterState (struct)
---
Members:
fail_counts
ip_fail_counts
port_fail_counts
subnet_enqueue_counts
blocked_pubkeys
blocked_ips
blocked_ports
block_threshold
ip_block_threshold
port_block_threshold
subnet_enqueue_limit
---
source: /SuperGenius/Classes/d9/dc6/structsgns_1_1multisig_1_1_quorum_result/
title: sgns::multisig::QuorumResult (struct)
---
Result of an N-of-M quorum evaluation.
Members:
has_quorum — True when valid_unique_count >= required signatures.
valid_unique_count — Count of distinct authorized signers with a valid signature.
---
source: /SuperGenius/Classes/d1/dce/structsgns_1_1_consensus_manager_1_1_quorum_tally/
title: sgns::ConsensusManager::QuorumTally (struct)
---
Quorum tally structure.
Members:
total_weight — The total maximum weight of the quorum.
approved_weight — The weight which was already approved.
has_quorum — Flag indicating if quorum was reached.
qualified_sum — Slot-weighted qualified contribution.
slot_threshold — total_voting_reputation * 0.75 (D-06).
---
source: /SuperGenius/Classes/dc/d9e/structsgns_1_1storage_1_1face_1_1_readable/
title: sgns::storage::face::Readable (struct)
---
A mixin for read-only map.
K
key type
V
value type
Members:
~Readable
get — Get value by key.
contains — Returns true if given key-value binding exists in the storage.
empty — Returns true if the storage is empty.
---
source: /SuperGenius/Classes/d6/d8f/structsgns_1_1storage_1_1face_1_1_read_only_map/
title: sgns::storage::face::ReadOnlyMap (struct)
---
An abstraction over a readable and iterable key-value map.
K
key type
V
value type
---
source: /SuperGenius/Classes/d4/df7/structeth_1_1codec_1_1_receipt/
title: eth::codec::Receipt (struct)
---
Members:
state_root
status
cumulative_gas_used
bloom
logs
---
source: /SuperGenius/Classes/d2/d2a/structeth_1_1_receipt_batch/
title: eth::ReceiptBatch (struct)
---
Receipts from one block, normalized across RLPx, RPC, or certified sources.
Members:
receipts
tx_hashes
log_indices
block_number
block_hash
---
source: /SuperGenius/Classes/d8/d15/structeth_1_1_receipt_log_verification_result/
title: eth::ReceiptLogVerificationResult (struct)
---
Members:
error
operator bool
---
source: /SuperGenius/Classes/dc/d62/structeth_1_1_receipt_result/
title: eth::ReceiptResult (struct)
---
Receipt plus the chain context needed to verify and deduplicate a log.
Members:
receipt
tx_hash
block_number
block_hash
log_indices
---
source: /SuperGenius/Classes/db/d41/structeth_1_1_receipts_message/
title: eth::ReceiptsMessage (struct)
---
Members:
request_id
receipts
---
source: /SuperGenius/Classes/d3/d2f/classsgns_1_1_recursive_transfer_proof/
title: sgns::RecursiveTransferProof (class)
---
A class for generating a recursive Transfer Proof.
RecursiveTransferProof is a derived class from IBasicProof, providing the specific
implementation for generating the parameters to create a recursive snark
Members:
RECURSIVE_TRANSFER_TYPE_NAME — Constant representing the transfer proof type name.
registered — Static variable to ensure registration happens on inclusion of header file.
RecursiveTransferProof — Constructor for the RecursiveTransferProof class.
~RecursiveTransferProof — Destructor for the RecursiveTransferProof class.
GetProofType — Retrieves the type of proof for recursive transfers.
SerializeFullProof — Serializes the full proof data and parameters.
GenerateJsonParameters — Generates the parameters in JSON array form.
DeSerializePublicParams — Deserializes public parameters from the provided proof data.
Register — Registers the deserializer and bytecode for the recursive transfer proof type.
---
source: /SuperGenius/Classes/d3/d7a/structeth_1_1rpc_1_1_rpc_receipt_source_1_1_registered_filter/
title: eth::rpc::RpcReceiptSource::RegisteredFilter (struct)
---
Members:
id
filter
---
source: /SuperGenius/Classes/df/dd6/structsgns_1_1_i_input_validator_1_1_registry_state/
title: sgns::IInputValidator::RegistryState (struct)
---
Members:
mutex
validators
---
source: /SuperGenius/Classes/d5/da9/structsgns_1_1_transaction_manager_1_1_replay_protection_result/
title: sgns::TransactionManager::ReplayProtectionResult (struct)
---
Members:
validation
---
source: /SuperGenius/Classes/dc/d28/structsgns_1_1_account_messenger_1_1_request_task/
title: sgns::AccountMessenger::RequestTask (struct)
---
Members:
type
timeout_ms
silent_time_ms
block_index
cid
utxo_address
callback
nonce_promise
utxo_promise
---
source: /SuperGenius/Classes/d0/d41/structintx_1_1result__with__carry/
title: intx::result_with_carry (struct)
---
Contains result of add/sub/etc with a carry flag.
Members:
value
carry
operator std::tuple< T &, bool & > — Conversion to tuple of references, to allow usage with std::tie().
---
source: /SuperGenius/Classes/db/d5d/classrlp_1_1_rlp_chunked_list_decoder/
title: rlp::RlpChunkedListDecoder (class)
---
Members:
view_
list_payload_
total_size_
total_chunks_
chunk_index_
initialized_
RlpChunkedListDecoder
RlpChunkedListDecoder
peekTotalSize
peekChunkCount
readChunk
currentChunkIndex
totalChunks
totalSize
isFinished
isInitialized
remaining
---
source: /SuperGenius/Classes/df/d25/classrlp_1_1_rlp_chunked_list_encoder/
title: rlp::RlpChunkedListEncoder (class)
---
Members:
encoder_
chunk_size_
buffer_
chunk_count_
total_bytes_
finished_
list_started_
create
~RlpChunkedListEncoder
addChunk
finish
chunkCount
totalBytes
isFinished
RlpChunkedListEncoder
operator=
RlpChunkedListEncoder
operator=
RlpChunkedListEncoder
flushBuffer
---
source: /SuperGenius/Classes/d6/db2/classrlp_1_1_rlp_decoder/
title: rlp::RlpDecoder (class)
---
Members:
view_
RlpDecoder
IsFinished
Remaining
IsList
IsString
PeekPayloadSizeBytes
PeekHeader
read
read
read
ReadListHeaderBytes
SkipItem
read
check_payload
read_vector
read
read
read
PeekPayload
decode
read_integral
read_bool
read_uint256
decode_header_internal
skip_header_internal
---
source: /SuperGenius/Classes/d7/d55/classrlp_1_1_rlp_encoder/
title: rlp::RlpEncoder (class)
---
Members:
buffer_
list_start_positions_
RlpEncoder
add
AddRaw
add
add
BeginList
EndList
add
add
add
GetBytes
GetBytes
MoveBytes
clear
size
reserve
add_integral
---
source: /SuperGenius/Classes/de/ddd/classrlp_1_1_rlp_large_string_decoder/
title: rlp::RlpLargeStringDecoder (class)
---
Members:
view_
payload_size_
bytes_read_
initialized_
RlpLargeStringDecoder
RlpLargeStringDecoder
peekPayloadSize
readChunk
currentPosition
totalSize
isFinished
isInitialized
remaining
---
source: /SuperGenius/Classes/d6/d32/classrlp_1_1_rlp_large_string_encoder/
title: rlp::RlpLargeStringEncoder (class)
---
Members:
encoder_
header_start_
payload_start_
payload_size_
finished_
create
addChunk
finish
payloadSize
isFinished
~RlpLargeStringEncoder
RlpLargeStringEncoder
operator=
RlpLargeStringEncoder
operator=
RlpLargeStringEncoder
---
source: /SuperGenius/Classes/dd/d5d/classeth_1_1_rlpx_eth_session_channel/
title: eth::RlpxEthSessionChannel (class)
---
RlpxSession adapter implementing the minimal ETH session seam.
Members:
session_
RlpxEthSessionChannel
negotiated_eth_version
negotiated_eth_offset
peer_info
post_message
receive_message
receive_message_with_timeout
set_eth_message_handler
---
source: /SuperGenius/Classes/d4/de4/classrlpx_1_1_rlpx_session/
title: rlpx::RlpxSession (class)
---
RLPx session managing encrypted P2P communication.
Members:
state_
stream_
peer_info_
negotiated_eth_version_
negotiated_eth_offset_
is_initiator_
send_channel_
recv_channel_
hello_handler_
disconnect_handler_
ping_handler_
pong_handler_
generic_handler_
eth_message_handler_
connect — Factory for outbound connections.
connect — Factory for outbound connections, returning a peer disconnect reason if the peer sends Disconnect before HELLO.
accept — Factory for inbound connections.
negotiate_eth_version_for_test — Test helper that selects the highest supported ETH version from capabilities.
negotiate_eth_offset_for_test — Test helper that computes the negotiated ETH wire offset from capabilities.
normalize_eth_message_id_for_test — Test helper that normalizes a wire-level ETH message id using the negotiated offset.
~RlpxSession
RlpxSession
operator=
RlpxSession
operator=
post_message — Send message (takes ownership via move).
receive_message_with_timeout — Receive message with timeout during protocol startup handshakes.
receive_message — Receive message (stackful coroutine pull model).
disconnect — Graceful disconnect (sync, callable from callbacks).
disconnect — Graceful disconnect (coroutine overload).
set_hello_handler
set_disconnect_handler
set_ping_handler
set_pong_handler
set_generic_handler
set_eth_message_handler
state
is_active
peer_info
negotiated_eth_version — Return the negotiated ETH subprotocol version from HELLO capability matching.
negotiated_eth_offset — Return the negotiated ETH subprotocol message-id base offset.
cipher_secrets
RlpxSession
run_send_loop
run_receive_loop
route_message
try_transition_state
is_terminal_state
force_error_state
---
source: /SuperGenius/Classes/d5/dbf/classsgns_1_1storage_1_1rocksdb/
title: sgns::storage::rocksdb (class)
---
An implementation of PersistentBufferMap interface, which uses rocksdb as underlying storage.
Members:
Iterator
Options
ReadOptions
WriteOptions
DB
Status
Slice
QueryResult
KeyValuePair
db_
ro_
wo_
logger_
options_
path_
~rocksdb
setReadOptions — Set read options, which are used in.
setWriteOptions — Set write options, which are used in.
cursor — Returns new key-value iterator.
batch — Creates new Write Batch - an object, which can be used to efficiently write bulk data.
get
query
query — Queries with a middle part that can be a wildcard, negated string or normal string.
contains
empty — Returns true if the storage is empty.
put
put
remove
GetName
getDB
GetAll — Gets all key value pairs on rocksdb.
create — Factory method to create an instance of rocksdb class.
create — Factory method to create an instance of rocksdb class.
---
source: /SuperGenius/Classes/d1/de1/structsgns_1_1crdt_1_1_crdt_datastore_1_1_root_c_i_d_job/
title: sgns::crdt::CrdtDatastore::RootCIDJob (struct)
---
Members:
node_ — Current node to process.
root_node_ — Root node of the Job.
created_by_self_ — True if the root node was created by self.
---
source: /SuperGenius/Classes/d1/d1e/structeth_1_1rpc_1_1_rpc_endpoint/
title: eth::rpc::RpcEndpoint (struct)
---
Members:
chain_name
chain_id
url
priority
weight
rate_limit_per_second
is_paid
is_public
verified
state
last_failure_time
failure_count
backoff_until
---
source: /SuperGenius/Classes/d5/df4/structeth_1_1rpc_1_1_rpc_endpoint_config/
title: eth::rpc::RpcEndpointConfig (struct)
---
One configured RPC endpoint for a chain.
Members:
chain_name
chain_id
url_template
api_key_env_var
api_key_literal
priority
weight
rate_limit_per_second
is_paid
is_public
verified
---
source: /SuperGenius/Classes/da/d25/structeth_1_1rpc_1_1_rpc_endpoint_error/
title: eth::rpc::RpcEndpointError (struct)
---
Members:
code
detail
---
source: /SuperGenius/Classes/dc/d23/structeth_1_1rpc_1_1_rpc_endpoint_group/
title: eth::rpc::RpcEndpointGroup (struct)
---
Members:
chain_name
chain_id
endpoints
---
source: /SuperGenius/Classes/d7/d02/classeth_1_1rpc_1_1_rpc_endpoint_pool/
title: eth::rpc::RpcEndpointPool (class)
---
Members:
kMaxBackoff
kBaseBackoff
kEscalationWindow
kEscalationThreshold
endpoints_
RpcEndpointPool
RpcEndpointPool
endpoints
endpoints
next_endpoint
next_endpoint
mark_temporary_failure
disable
reset_temporary_failures
is_usable
---
source: /SuperGenius/Classes/d5/d90/classeth_1_1rpc_1_1_rpc_http_transport/
title: eth::rpc::RpcHttpTransport (class)
---
Members:
endpoint_url_
options_
RpcHttpTransport
call
endpoint_url
HttpsGet — Perform a one-shot HTTPS GET and return the response body.
parse_url
---
source: /SuperGenius/Classes/d2/dad/structeth_1_1rpc_1_1_rpc_http_transport_options/
title: eth::rpc::RpcHttpTransportOptions (struct)
---
Members:
timeout
verify_peer
---
source: /SuperGenius/Classes/dd/d5a/structeth_1_1rpc_1_1_rpc_log/
title: eth::rpc::RpcLog (struct)
---
Members:
log
block_number
block_hash
tx_hash
log_index
---
source: /SuperGenius/Classes/d5/d8b/classeth_1_1rpc_1_1_rpc_manager/
title: eth::rpc::RpcManager (class)
---
Members:
groups_
pools_
RpcManager
endpoint_groups
pool
pool
make_chain_key
---
source: /SuperGenius/Classes/d3/d20/structeth_1_1rpc_1_1_rpc_manager_config/
title: eth::rpc::RpcManagerConfig (struct)
---
Top-level RPC manager configuration.
Members:
max_endpoints_per_chain
endpoints
---
source: /SuperGenius/Classes/d8/d01/classeth_1_1rpc_1_1_rpc_receipt_source/
title: eth::rpc::RpcReceiptSource (class)
---
Members:
transport_
finality_policy_
last_processed_block_
max_log_range_
next_rpc_id_
next_watch_id_
filters_
handler_
RpcReceiptSource
add_filter — Let the source optimize acquisition around the same filter used by EthWatchService.
remove_filter — Remove a previously registered acquisition filter.
set_receipt_batch_handler — Set the handler that receives normalized receipt batches.
get_receipt — Fetch one receipt by transaction hash when the source supports lookup verification.
last_processed_block
finality_head
poll_once
backfill
next_request_id
get_block_number
backfill_filter
emit_receipt
---
source: /SuperGenius/Classes/de/d1b/structeth_1_1rpc_1_1_rpc_receipt_source_handle/
title: eth::rpc::RpcReceiptSourceHandle (struct)
---
Members:
transport
source
---
source: /SuperGenius/Classes/dc/d12/structeth_1_1_eth_watch_service_1_1_runtime_chain/
title: eth::EthWatchService::RuntimeChain (struct)
---
Members:
config
scheduler
peer_queue
discovery_client
discv5_client
discv4_fallback_started
discv5_enr_tree_started
discv5_cache_enr_started
stats
---
source: /SuperGenius/Classes/d3/d10/classsgns_1_1_scaled_integer/
title: sgns::ScaledInteger (class)
---
Represents a decimal value using an integer scaled by 10^precision.
Internally stores the decimal as an integer multiplied by 10^precision. Example: raw_value = 12345, precision = 2 => decimal value 123.45
Members:
ParseMode — Controls handling of extra fractional digits when parsing.
value_
precision_
New — Create a ScaledInteger from a raw integer and precision.
New — Create a ScaledInteger from a double and precision.
New — Create a ScaledInteger from a string and precision.
New — Create a ScaledInteger from a decimal string by inferring precision.
ScaleFactor — Compute 10^precision as the scale factor.
FromString — Convert a numeric string to a raw scaled integer.
ToString — Convert a scaled integer to a string representation.
FromDouble — Convert a double to a raw scaled integer.
Multiply — Multiply two raw scaled integers.
Divide — Divide two raw scaled integers.
ConvertPrecision — Change the precision of a raw scaled integer.
Value — Get the raw scaled integer value.
Precision — Get the precision (number of decimal places).
ToString — Return this value as a string.
Add — Add another ScaledInteger with matching precision.
Subtract — Subtract another ScaledInteger with matching precision.
Multiply — Multiply by another ScaledInteger with matching precision.
Divide — Divide by another ScaledInteger with matching precision.
ConvertPrecision — Convert this ScaledInteger to a different precision.
ScaledInteger — Private constructor storing raw scaled integer and precision.
---
source: /SuperGenius/Classes/dd/da9/classsgns_1_1securecrdt_1_1_secure_crdt/
title: sgns::securecrdt::SecureCrdt (class)
---
Mandatory wrapper for reading/writing registered SecureCrdt keys.
`ProposeValue`/`AddSignature` are the only sanctioned callers of
`GlobalDB::Put` for a registered key (D-03). `ReadIfQuorum` never
writes and always re-derives trust from the current base_key value
plus all `sig/` children (D-04) -- no "final" marker key is
ever written or read by this class.
Members:
Error — Error codes returned by SecureCrdt's write/read operations.
db_
topic_
logger_
SecureCrdt — Constructs a SecureCrdt wrapper over an existing GlobalDB instance.
ProposeValue — Proposes a value for a registered base_key. Runs the SAME codec/semantic check the remote filter callback runs on a base_key element (DeserializeFromBytes + Verify) BEFORE ever calling Put closes the local/remote asymmetry gap (T-09-10). Proposing a value has no signature requirement by itself; it only becomes trusted once quorum-worth of sig-entries exist (D-04), so this is not a bypass of D-03.
AddSignature — Adds a signature over the CURRENT value at base_key. Fetches the value fresh via GlobalDB::Get each call (never a cached/stale value, closing the replay threat T-09-07) and verifies it via multisig::VerifyPayloadSignature before ever calling Put an invalid signature is never persisted (D-03 local-write gate).
ReadIfQuorum — Returns the current value at base_key only once the required number of valid unique signatures from the registered signer set are present (D-04 quorum re-derivation); returns std::nullopt if quorum is not yet met.
RegisterFilters — Self-registration entry point: registers the element filter (D-03 second, independent enforcement layer for remote- originated deltas) for every currently-registered SecureCrdtRegistry entry. Must be called once after construction (e.g. from a New(...)-style factory), mirroring ValidatorRegistry::RegisterFilter's call-from-factory convention.
FilterSecureCrdtUpdate — Filter callback re-running the identical enforcement logic as AddSignature's/ProposeValue's local gate, for remote-originated deltas only (crdt_datastore.cpp, !created_by_self). Rejects (returns an empty vector) on parse failure or invalid signature/value, accepts (returns std::nullopt) otherwise. Derives the concrete base key from element.key() so registry patterns containing regular expressions are never used as datastore keys.
---
source: /SuperGenius/Classes/d1/dfb/classsgns_1_1securecrdt_1_1_secure_crdt_registry/
title: sgns::securecrdt::SecureCrdtRegistry (class)
---
Static registry resolving a CRDT key to its SecureCrdtRegistryEntry.
Members:
Register — Registers (or replaces) the policy entry for key_pattern. Compiles compiled_pattern as "/?" + key_pattern + "(/sig/[^/]+)?" so both the base key and a valid sig/ child resolve to the same entry - mirrors CRDTDataFilter::RegisterElementFilter's regex shape (src/crdt/impl/crdt_data_filter.cpp).
UnregisterIf — Removes the registration for key_pattern only if the caller's token matches the token supplied at Register() time (compare-and-remove, prevents a second unrelated registration from clobbering removal).
Resolve — Resolves key against all registered patterns, returning the first matching entry (base_key or any sig/ child).
AllEntries — Returns a snapshot copy of every currently-registered entry. Used by SecureCrdt::RegisterFilters to self-register a filter callback for each registered base_key pattern at startup.
registry
registryMutex
---
source: /SuperGenius/Classes/d6/d12/structsgns_1_1securecrdt_1_1_secure_crdt_registry_entry/
title: sgns::securecrdt::SecureCrdtRegistryEntry (struct)
---
Policy entry describing how a registered key pattern is verified and instantiated.
Members:
key_pattern
signer_set_source
make_instance
compiled_pattern
owner_token — Opaque token supplied by the caller at Register() time; must be presented verbatim to UnregisterIf() to remove this entry.
---
source: /SuperGenius/Classes/d6/ded/class_session/
title: Session (class)
---
Members:
stream_
incoming_
Session
read
write
close
operator<
---
source: /SuperGenius/Classes/d5/dec/structrlpx_1_1_session_accept_params/
title: rlpx::SessionAcceptParams (struct)
---
Members:
local_public_key
local_private_key
client_id
listen_port
---
source: /SuperGenius/Classes/d5/d37/structrlpx_1_1_session_connect_params/
title: rlpx::SessionConnectParams (struct)
---
Members:
remote_host
remote_port
local_public_key
local_private_key
peer_public_key
client_id
listen_port
progress_handler
---
source: /SuperGenius/Classes/d9/d14/structdiscv5_1_1discv5__client_1_1_session_state/
title: discv5::discv5_client::SessionState (struct)
---
Members:
write_key
read_key
remote_node_addr
remote_node_id
last_req_id
---
source: /SuperGenius/Classes/d0/d9a/structsha3__context__/
title: sha3_context_ (struct)
---
Members:
saved
byteIndex
wordIndex
capacityWords
---
source: /SuperGenius/Classes/dc/dbf/structsgns_1_1securecrdt_1_1_signer_set_snapshot/
title: sgns::securecrdt::SignerSetSnapshot (struct)
---
Snapshot of an authorized signer set and its required signature count, as produced by an injected SignerSetSource.
Members:
signer_set
required_signatures
---
source: /SuperGenius/Classes/dd/d8c/structsgns_1_1_validator_registry_1_1_slot_quorum_result/
title: sgns::ValidatorRegistry::SlotQuorumResult (struct)
---
Result of the Phase 6 cumulative slot-quorum tally (D-06).
Deterministic across peers: computed ONLY from the vote vector and a registry snapshot (REQ-DETERM-01). No clocks, no local config, no node state is consulted.
Members:
qualified_sum — Sum of slot-weighted contributions (D-06).
total_voting_reputation — Sum of weight of ALL approve voters.
threshold — ceil(total * slot_quorum_numerator_ / slot_quorum_denominator_).
has_quorum — qualified_sum > threshold (STRICT, D-06).
---
source: /SuperGenius/Classes/df/d49/structsgns_1_1_consensus_manager_1_1_slot_state/
title: sgns::ConsensusManager::SlotState (struct)
---
Runtime slot arbitration state.
Members:
best_proposal_id — Current best proposal id in the slot.
best_tx_hash — Hash used for deterministic tie-breaking.
voted_proposal_ids — Local proposal ids already voted for.
---
source: /SuperGenius/Classes/d0/d01/classrlpx_1_1socket_1_1_socket_transport/
title: rlpx::socket::SocketTransport (class)
---
Transport layer abstraction over TCP socket. Provides async read/write operations with proper error handling.
Members:
tcp
Strand
socket_
strand_ — Ensures thread-safe sequential operations.
SocketTransport — Create transport from connected socket.
SocketTransport
operator=
SocketTransport
operator=
read_exact — Async read exact number of bytes.
write_all — Async write all bytes.
close — Close socket gracefully.
is_open — Query connection state.
remote_address
remote_port
local_address
local_port
---
source: /SuperGenius/Classes/de/d6c/structdiscv5_1_1_static_header_wire/
title: discv5::StaticHeaderWire (struct)
---
discv5 static packet header, as defined by the EIP-8020 spec.
Mirrors go-ethereum's v5wire.StaticHeader struct. Sits immediately after the MaskingIvWire in every packet.
All multi-byte integers are big-endian on the wire.
Members:
protocol_id — "discv5" magic (0x64 69 73 63 76 35)
version — Protocol version (current = 1)
flag — Packet type flag (0=msg, 1=WHOAREYOU, 2=handshake)
nonce — AES-GCM nonce.
auth_size — Byte count of the auth-data section.
---
source: /SuperGenius/Classes/dd/db6/structeth_1_1_status_message68/
title: eth::StatusMessage68 (struct)
---
ETH/68 Status message. Wire: [version, networkid, td, blockhash, genesis, forkid].
Members:
protocol_version
network_id
td
blockhash
genesis_hash
fork_id
---
source: /SuperGenius/Classes/d0/d02/structeth_1_1_status_message69/
title: eth::StatusMessage69 (struct)
---
ETH/69 Status message. Wire: [version, networkid, genesis, forkid, earliestBlock, latestBlock, latestBlockHash].
Members:
protocol_version
network_id
genesis_hash
fork_id
earliest_block
latest_block
latest_block_hash
---
source: /SuperGenius/Classes/d4/de2/classsgns_1_1subscription_1_1_subscriber/
title: sgns::subscription::Subscriber (class)
---
Is a wrapper class, which provides subscription to events from SubscriptionEngine
Key
is a type of a subscription Key.
Type
is a type of an object to receive notifications in.
Arguments
is a set of types of objects needed to construct Type.
Members:
KeyType
ValueType
HashType
SubscriptionSetId
SubscriptionEngineType
SubscriptionEnginePtr
CallbackFnType
SubscriptionsContainer
SubscriptionsSets
next_id_
engine_
object_
subscriptions_cs_
subscriptions_sets_
on_notify_callback_
Subscriber
~Subscriber
Subscriber
operator=
Subscriber
operator=
setCallback
generateSubscriptionSetId
subscribe
unsubscribe
unsubscribe
unsubscribe
on_notify
---
source: /SuperGenius/Classes/dd/d2b/structeth_1_1_eth_receipt_source_bridge_1_1_subscription/
title: eth::EthReceiptSourceBridge::Subscription (struct)
---
Members:
service_id
source_id
---
source: /SuperGenius/Classes/dd/ddd/structeth_1_1_eth_watch_service_1_1_subscription/
title: eth::EthWatchService::Subscription (struct)
---
Members:
id
event_signature
params
callback
---
source: /SuperGenius/Classes/d1/d66/structeth_1_1_event_watcher_1_1_subscription/
title: eth::EventWatcher::Subscription (struct)
---
Members:
id
filter
callback
---
source: /SuperGenius/Classes/d7/d3a/classsgns_1_1subscription_1_1_subscription_engine/
title: sgns::subscription::SubscriptionEngine (class)
---
Members:
KeyType
ValueType
SubscriberType
SubscriberPtr
SubscriberWPtr
SubscribersContainer
IteratorType
KeyValueContainer
Subscriber
subscribers_map_cs_
subscribers_map_
SubscriptionEngine
~SubscriptionEngine
SubscriptionEngine
operator=
SubscriptionEngine
operator=
size
notify
subscribe
unsubscribe
---
source: /SuperGenius/Classes/d2/d46/classsgns_1_1processing_1_1_sub_task_enqueuer/
title: sgns::processing::SubTaskEnqueuer (class)
---
Members:
~SubTaskEnqueuer
EnqueueSubTasks
MarkTaskBad
---
source: /SuperGenius/Classes/d1/d37/classsgns_1_1processing_1_1_sub_task_enqueuer_impl/
title: sgns::processing::SubTaskEnqueuerImpl (class)
---
Members:
m_taskQueue
m_logger
SubTaskEnqueuerImpl
EnqueueSubTasks
MarkTaskBad
---
source: /SuperGenius/Classes/dd/d1c/classsgns_1_1processing_1_1_sub_task_queue_accessor/
title: sgns::processing::SubTaskQueueAccessor (class)
---
Subtask queue accessor interface
Members:
SubTaskGrabbedCallback
~SubTaskQueueAccessor
ConnectToSubTaskQueue
AssignSubTasks
GrabSubTask
CompleteSubTask
CreateResultsChannel
---
source: /SuperGenius/Classes/d0/dab/classsgns_1_1processing_1_1_sub_task_queue_accessor_impl/
title: sgns::processing::SubTaskQueueAccessorImpl (class)
---
Subtask queue accessor implementation.
Members:
FinalizationRetVal
WorkGuard
m_gossipPubSub
m_subTaskQueueManager
m_subTaskResultStorage
m_taskResultProcessingSink
m_processingErrorSink
m_localContext
m_localWorkGuard
m_localThread
m_stateTimer
m_resultChannel
m_mirrorResultCallback — Invoked when a mirrored result arrives.
m_mutexMirrorCallback
m_bitswap — For data availability checks on IPFS results.
m_mutexResults
m_results
m_validationCore
m_logger
SubTaskQueueAccessorImpl
~SubTaskQueueAccessorImpl
ConnectToSubTaskQueue
AssignSubTasks
GrabSubTask
CompleteSubTask
CreateResultsChannel
setMirrorResultCallback — Set callback invoked when a mirrored result arrives. The callback receives the ipfs_results_data_id string.
setBitswap — Set bitswap instance for data availability checks on IPFS results.
GetResults
OnResultReceived
OnSubTaskQueueAssigned
UpdateResultsFromStorage
FinalizeQueueProcessing
StartPeriodicStateBroadcast
ScheduleStateBroadcast
PublishExistingResults
FindSubTaskById
ValidateResultData — Validate result output scheme (9a) and optionally check IPFS data availability (9b).
OnResultChannelMessage
---
source: /SuperGenius/Classes/d0/d47/classsgns_1_1processing_1_1_sub_task_result_storage/
title: sgns::processing::SubTaskResultStorage (class)
---
Handles subtask results storage
Members:
~SubTaskResultStorage
AddSubTaskResult
RemoveSubTaskResult
GetSubTaskResults
---
source: /SuperGenius/Classes/d3/df7/classsgns_1_1processing_1_1_sub_task_result_storage_impl/
title: sgns::processing::SubTaskResultStorageImpl (class)
---
Handles subtask result storage.
Members:
m_db
m_processing_topic
SubTaskResultStorageImpl
~SubTaskResultStorageImpl
AddSubTaskResult
RemoveSubTaskResult
GetSubTaskResults
---
source: /SuperGenius/Classes/d6/dea/structsgns_1_1_genius_assigner_1_1_table_vectors/
title: sgns::GeniusAssigner::TableVectors (struct)
---
Members:
witness_values
public_input_values
constant_values
selector_values
---
source: /SuperGenius/Classes/d9/df3/classsgns_1_1processing_1_1_task_keys/
title: sgns::processing::TaskKeys (class)
---
Members:
PROCESSING_PREFIX_BASE
TASK_LIST_SUFFIX
SUBTASK_LIST_SUFFIX
CLAIMABLE_LIST_SUFFIX
RESULTS_SUFFIX
LOCK_KEY_PREFIX
ProcessingPrefix — Returns the processing base prefix for the task queue.
TaskListKey
SubTaskListKey
SubTaskListKey
TaskKey
SubTaskKey
ClaimableListKey
ClaimableTaskKey
ResultTaskKey
LockKey
---
source: /SuperGenius/Classes/dd/ddf/classsgns_1_1processing_1_1_task_queue_impl/
title: sgns::processing::TaskQueueImpl (class)
---
Implements the task storage on CRDT.
Members:
LOCK_TIMEOUT
db_ — The CRDT database instance used for storing tasks and subtasks.
processing_topic_ — The topic used by CRDT to share tasks and subtasks across the network.
incompatible_jobs_ — Jobs (tasks) that are incompatible with ProcessingManager.
New — Factory method to create a TaskQueueImpl instance.
~TaskQueueImpl
EnqueueTask — Stores a task with its subtasks within an atomic transaction.
GetTask — Returns a task by task id, returns failure if task not found or invalid.
GetSubTasks — Retrieves the subtasks for a given task ID.
GrabTask — Grabs task from the storage, returning its ID and data.
CompleteTask — Completes a task with its result returning an atomic transaction to commit the completion.
IsTaskCompleted — Checks if the task is completed.
MarkTaskBad — Mark a task key as bad to be skipped.
ListTaskKeys — Lists all known task IDs in the queue.
GetTaskResult — Retrieves the completed task result, if available.
TaskQueueImpl — Constructs a task queue implementation with the given database and processing topic.
IsTaskLocked — Checks if a task is currently locked.
LockTask — Locks a task for processing by creating a lock entry in the database.
MoveExpiredTaskLock — Try to aquire lock for an expired task, if successful, loads the task data and returns true, otherwise returns false.
---
source: /SuperGenius/Classes/dd/dd7/classsgns_1_1_token_amount/
title: sgns::TokenAmount (class)
---
Utility for GNUS token fixed-point parsing, formatting and cost calculation.
Members:
PRECISION — Fixed-point precision (1 minion = 10^-6 GNUS)
PRICE_PER_FLOP — USD per FLOP rate scaled by 10^15.
PRICE_PER_FLOP_FRACTIONAL_DIGITS — Fractional digits used in USD/FLOP rate.
FLOPS_PER_BYTE — Estimated number of FLOPs required per byte.
MIN_MINION_UNITS — Minimum representable non-zero minion units.
minions_ — Internal representation in minion units (GNUS * 10^6)
New — Creates a TokenAmount from already-scaled minion units.
New — Creates a TokenAmount from a floating point value. The value is rounded to 6 decimal digits internally.
New — Creates a TokenAmount from a decimal string.
ParseMinions — Parses a token amount string into raw minion units.
FormatMinions — Converts raw minion units to a token string.
CalculateCostMinions — Calculates token cost for a given byte size and USD price.
ConvertToChildToken
ConvertFromChildToken
Multiply — Multiplies this TokenAmount by another.
Divide — Divides this TokenAmount by another.
Value — Returns the raw scaled integer (minion) value.
TokenAmount — Constructs a TokenAmount directly from raw minion units.
---
source: /SuperGenius/Classes/d9/dd1/classsgns_1_1_token_i_d/
title: sgns::TokenID (class)
---
Represents a 32-byte token identifier while preserving legacy GNUS semantics.
Members:
Endianness — Byte order used when converting integer token identifiers.
ByteArray — Fixed-size byte storage used for token identifiers.
data_ — Raw 32-byte token identifier storage.
valid_ — Whether the identifier was constructed from non-empty byte input.
TokenID — Constructs an invalid or legacy-default token identifier.
TokenID — Copy-constructs a token identifier.
TokenID — Move-constructs a token identifier.
operator= — Copy-assigns a token identifier.
operator= — Move-assigns a token identifier.
bytes — Returns the raw 32-byte storage buffer.
size — Returns 32 for valid token identifiers or 0 for legacy-invalid ones.
operator== — Tests exact equality including validity state.
operator!= — Tests exact inequality including validity state.
operator< — Orders token identifiers by raw byte value.
ToHex — Converts the token identifier to a lowercase hexadecimal string.
IsGNUS — Returns true when this identifier refers to the default GNUS token.
Equals — Compares token identifiers while treating all GNUS representations as equivalent.
FromBytes — Builds a token identifier from a byte initializer list.
FromBytes — Builds a token identifier from up to 32 bytes, left-padding shorter inputs.
FromUint256 — Builds a token identifier from a 256-bit integer value.
ResolveEndianness — Resolves HOST to the actual runtime byte order.
---
source: /SuperGenius/Classes/d1/dc6/structsgns_1_1_transaction_manager_1_1_tracked_tx/
title: sgns::TransactionManager::TrackedTx (struct)
---
Members:
tx
status
cached_nonce
---
source: /SuperGenius/Classes/d2/dc7/structeth_1_1codec_1_1_transaction/
title: eth::codec::Transaction (struct)
---
Full Ethereum transaction covering legacy, EIP-2930 and EIP-1559 formats.
Members:
type
nonce
gas_limit
to — Empty for contract creation.
value
data
gas_price
max_priority_fee_per_gas
max_fee_per_gas
access_list
chain_id
v
r
s
---
source: /SuperGenius/Classes/d8/da8/structsgns_1_1_transaction_manager_1_1_transaction_completion/
title: sgns::TransactionManager::TransactionCompletion (struct)
---
Value delivered when an asynchronous outgoing-transaction wait completes.
A terminal transaction status has an empty error. Timeouts and manager shutdown report timed_out and operation_aborted, respectively.
Members:
transaction_id
status
elapsed
error
---
source: /SuperGenius/Classes/df/d45/structsgns_1_1_account_messenger_1_1_transaction_hash_request/
title: sgns::AccountMessenger::TransactionHashRequest (struct)
---
Members:
tx_hash
---
source: /SuperGenius/Classes/d2/d58/classsgns_1_1_transaction_manager/
title: sgns::TransactionManager (class)
---
Coordinates transaction creation, CRDT propagation, verification, and status tracking.
Members:
State — State of the Transaction Manager.
TransactionStatus — Status of a transaction.
WitnessValidationResult
TransactionPair
TransactionBatch
TransactionItem
StateChangeCallback
TransactionCompletionCallback
TransactionParserFn
GNUS_FULL_NODES_TOPIC
GNUS_FULL_NODES_TOPIC_LEGACY
NONCE_REQUEST_TIMEOUT_MS — Unified timeout for all nonce requests.
BURN_BASIS_POINTS_DEFAULT
BASIS_POINTS_TOTAL
GeniusNode
Migration3_6_0To3_7_0
CertificateFallbackTestAccess
TransactionManagerPendingLifecycleTestAccess
TRANSACTION_BASE_FORMAT
PERIODIC_SYNC_INTERVAL
INITIAL_PERIODIC_SYNC_INTERVAL
TIMESTAMP_TOLERANCE
MUTABILITY_WINDOW
DEFAULT_NONCE_WINDOW
k_init_tx_request_cooldown_ms
kBridgeExecutedPrefix — Bridge mint reservation/persistence constants.
kBridgeKeySeparator
transaction_parsers
GENIUS_CHAIN_ID
globaldb_m
ctx_m
account_m
blockchain_
full_node_m
subnet_id_ — Subnet ID from config (reserved).
full_node_topic_m — formatted full-node topic
state_m
state_change_callback_mutex_
state_change_callback_
last_head_request_time_
last_periodic_sync_time_
received_first_periodic_sync_response_
mutex_m
tx_queue_m
tx_mutex_m
tx_processed_m
account_utxo_state_mutex_
account_utxo_state_
utxo_state_tracking_suppression_
pending_proposals_
task_m
stopped_
payout_submission_mutex_
transaction_waits_mutex_
transaction_waits_
timestamp_tolerance_m
mutability_window_m
nonce_window_m
metrics_cert_fallback_success_
metrics_cert_fallback_failure_
metrics_validation_approve_
metrics_validation_reject_
metrics_tracking_insert_
metrics_tracking_confirm_
metrics_tracking_fail_
burn_basis_points_ — Live, cached burn-rate basis-points value (BURN-02, BURN-03). Refreshed via BurnConfig::RegisterRefreshCallback; never a direct CRDT read.
cv_mutex_
cv_
new_data_queue_
deleted_data_queue_
last_loop_time_
topic_names_registered_
listening_topics_started_
core_started_
missing_tx_mutex_
missing_tx_hashes_
last_init_tx_request_time_
last_nonce_request_time_
m_logger
genius_input_validator_
public_chain_input_validator_
New — Factory constructor of the TransactionManager.
GetTransactionPath
GetTransactionPath
GetTransactionPath
GetTransactionProofPath
FetchTransaction — Fetches and deserializes a transaction from the CRDT by key.
DeSerializeTransaction
StateToString
GetBlockChainBase — Builds the blockchain key prefix "/bc-/" for the given network.
GetBlockChainBase — Overload using the current network ID.
DeSerializeTransaction
DeSerializeEmbeddedTransaction — Deserializes from EmbeddedTransaction proto oneof field. Dispatches on the oneof case instead of manual type string lookup.
~TransactionManager
Start
RegisterTopicNames
StartListeningTopics
StartCore
GetOutTransactions
GetInTransactions
CountTransactions
TransferFunds — Creates and enqueues a transfer transaction.
MintFunds — Creates and enqueues a mint transaction.
MigrationFunds — Creates and enqueues a one-time migration mint transaction.
HoldEscrow — Creates and enqueues an escrow-hold transaction.
PayEscrow
AsyncPayEscrow — Submits an escrow payout and observes it without blocking for confirmation.
AsyncWaitForTransactionOutgoing — Asynchronously observes an already-tracked outgoing transaction.
WaitForTransactionIncoming
WaitForTransactionOutgoing
WaitForEscrowRelease — Polls until an EscrowReleaseTransaction referencing originalEscrowId reaches a terminal state or timeout expires.
GetState
GetTransactionStatusByTxId
GetOutgoingStatusByTxId
GetConflictingTransaction — Finds a tracked transaction that shares the same nonce and source address as element.
Stop — Idempotent stop. Sets the stopped flag and wakes the tick loop.
RegisterStateChangeCallback
UnregisterStateChangeCallback
QueryTransactions — Queries all transaction keys from the CRDT across monitored networks and processes each one via FetchAndProcessTransaction.
FetchAndProcessTransaction — Deserializes, parses, and adds a single transaction to the processed map.
GetTransactionCID — Looks up the CID associated with a transaction hash in RocksDB, searching across all monitored networks.
HandleNonceConsensusSubject
ValidateTransactionForConsensus
CheckTransactionWellFormed
CheckTransactionAuthorization
CheckTransactionTimestamp
CheckTransactionReplayProtection
EvaluateTransactionReplayProtection
CheckTransactionTypeRules
BuildUTXOTransitionCommitment
BuildUTXOWitness
ApplyTransactionToUTXOSnapshot
ValidateWitnessForConsensus
ValidateUTXOParametersForConsensus
SetNonceWindow
ChangeTransactionState
HasConfirmedInputConflict
KeyExistsInDB
GetPublicChainInputValidator — Obtains the public-chain input validator for RPC endpoint wiring.
GetPublicChainInputValidator — Obtains the public-chain input validator for RPC endpoint wiring (const).
EnqueueTransaction
EnqueueTransaction
SetTimeFrameToleranceMs
SetMutabilityWindowMs
TransactionManager
TransactionManager
FillDAGStruct
GetOutgoingPreviousHash
GetTrackedOutgoingPreviousHash
GetPersistedOutgoingPreviousHash
QueryOutgoingPreviousHashFromCRDT
SendTransactionItem — Commits a TransactionItem to the CRDT.
RollbackTransactions — Rolls back a failed TransactionItem.
ParseTransaction — Dispatches to the type-specific parser registered in transaction_parsers.
RevertTransaction — Dispatches to the type-specific reverter registered in transaction_parsers.
UpdateAccountUTXOState
InitializeUTXOs — Loads UTXOs from local storage and/or the network, then processes the parent transactions of each UTXO. Any transactions that cannot be found are added to missing hashes for later resolution. Falls back to a full QueryTransactions when neither source has data.
InitTransactions — Attempts to resolve missing hashes by requesting them from the network. Transitions to READY when none remain and the nonce check passes.
CheckNonce — Verifies that the local nonce is not behind the network nonce. Full nodes are allowed through even when the network is unreachable.
SyncNonce — Compares the local proposed nonce with the network-confirmed nonce. Transitions back to READY when they match, checks validity when ahead, or requests heads when behind.
RequestRelevantHeads — Request heads for relevant topics when we detect we're behind.
CheckTransactionValidity — Validates signatures of outgoing transactions at the given nonces.
DeleteTransaction — Removes a transaction key from the CRDT within an atomic transaction, publishing to topics.
GetTransactionByHash — Thread-safe lookup of an outgoing transaction by hash.
GetTransactionByHashNoLock — Same as GetTransactionByHash but assumes tx_mutex_m is already held.
GetTransactionByNonceAndAddress
GetTrackedTxByNonceAndAddress
GetTrackedTxByHash
GetStatusByTxId
SetOutgoingStatusByNonce
NotifyTransactionStatusChanged
CompleteTransactionWait
CancelPendingTransactionWaits
TickOnce — Single iteration of the main processing loop.
OnConsensusCertificate
OnProposalTimeoutCleanup — Handles proposal timeout cleanup for VERIFYING tracking entries. Called via ProposalCleanupHandler from ConsensusManager when a proposal slot is cleaned up due to timeout. Local outgoing entries become UNCONFIRMED; remote temporary entries are removed. CONFIRMED entries are left untouched. Missing entries are skipped silently.
ParseTransferTransaction
ParseMintTransaction
ParseEscrowTransaction
RevertTransferTransaction
RevertMintTransaction
RevertEscrowTransaction
PutProducedUTXOs
DeleteProducedUTXOs
FilterTransaction — CRDT element filter for incoming transactions.
FilterProof — CRDT element filter for incoming proofs.
ShouldReplaceTransaction — Decides whether new_tx should replace existing_tx.
GetElapsedTime — Computes current_timestamp − timestamp in milliseconds. Result may be negative when the timestamp is in the future.
GetElapsedTime
IsTransactionImmutable — Returns true when the transaction's age exceeds mutability window. A window of zero means transactions are always mutable. Future-timestamped transactions are never considered immutable.
RemoveTransactionFromProcessedMaps — Removes a transaction from map, reverts its UTXO side-effects, rolls back the peer nonce, and optionally deletes the key from the CRDT.
AddTransactionToProcessedMaps — Deserializes, conflict-checks, parses, and inserts a new transaction into tx_processed_m. Conflicting transactions are removed (with CRDT deletion) before the new one is applied.
StoreTransactionCID — Persists a tx-key → CID mapping in the RocksDB datastore so that the CID can be retrieved later via GetTransactionCID.
ProcessDeletion
ProcessNewData
NewElementCallback — CRDT new-element callback. Stores the CID, pushes the data onto new_data_queue_, and wakes the tick loop.
DeleteElementCallback — CRDT deleted-element callback. Pushes the key onto deleted_data_queue_ and wakes the tick loop.
ChangeState — Updates state_m and fires the state change callback when the state actually changes.
SelectInputValidator
GetMonitoredNetworkIDs — Returns the set of network IDs to monitor. On DEV_NET (144), also includes TEST_NET (963) and MAIN_NET (369).
GetExpectedProofKey — Derives the proof key that corresponds to a transaction key by replacing "/tx/" with "/proof/".
GetExpectedTxKey — Inverse of GetExpectedProofKey — derives the tx key from a proof key.
IsTerminalTransactionStatus
GetCurrentTimestamp
---
source: /SuperGenius/Classes/d6/d6b/structplaceholder__verifier_1_1transcript__state__type/
title: placeholder_verifier::transcript_state_type (struct)
---
Members:
state
cur
---
source: /SuperGenius/Classes/d5/d48/classsgns_1_1_transfer_proof/
title: sgns::TransferProof (class)
---
A class for generating and verifying transfer proofs.
TransferProof is a derived class from IBasicProof, providing the specific
implementation for handling transfer of funds proof generation and verification.
Members:
generator_X_point — X coordinate of the generator point.
generator_Y_point — Y coordinate of the generator point.
base_seed — Base seed.
provided_totp — Provided TOTP.
ranges — Array of range values used in transfer proofs.
balance_ — The balance associated with the transfer.
amount_ — The amount to be transferred.
TRANSFER_TYPE_NAME — Constant representing the transfer proof type name.
registered — Static variable to ensure registration happens on inclusion of header file.
TransferProof — Constructor for the TransferProof class.
~TransferProof — Destructor for the TransferProof class.
GetProofType — Retrieves the type of proof for transfers.
GenerateCurveParameter
GenerateCurveParameter — Generates a JSON object for a curve parameter.
SerializeFullProof — Serializes the full proof data and parameters.
GenerateJsonParameters — Generates the parameters in JSON array form.
DeSerializePublicParams — Deserializes public parameters from the provided proof data.
Register — Registers the deserializer and bytecode for the transfer proof type.
---
source: /SuperGenius/Classes/de/d98/classsgns_1_1_transfer_transaction/
title: sgns::TransferTransaction (class)
---
Transaction for transferring funds between UTXO inputs and outputs.
Members:
input_tx_
outputs_
registered — Static variable to ensure registration happens on inclusion of header file.
New
DeSerializeByteVector — Deserializes a TransferTransaction from bytes.
~TransferTransaction — Default Transfer Transaction destructor.
SerializeByteVector — Serializes the transaction into a byte vector, including the DAG metadata.
SerializeToEmbeddedTransaction — Serializes the transaction into an EmbeddedTransaction proto with the appropriate oneof field set.
GetDstInfos
GetInputInfos
HasUTXOParameters — Returns if transaction supports UTXOs.
GetUTXOParametersOpt — Returns the UTXOs.
GetTransactionSpecificPath — Returns the transaction-specific path component for storage and retrieval.
GetTopics — Returns the destination topics associated with the transaction.
SerializeByteVector — Serializes the transaction into a byte vector.
SerializeByteVector — Serializes the transaction into a byte vector.
SerializeToEmbeddedTransaction — Serializes the transaction into an EmbeddedTransaction proto with the appropriate oneof field set.
SerializeToEmbeddedTransaction — Serializes using internal DAG metadata.
TransferTransaction — Construct a new TransferTransaction object.
Register — Registers the deserializer for the transfer transaction type.
---
source: /SuperGenius/Classes/da/dda/classsgns_1_1trustedpeer_1_1_trusted_peer_list_payload/
title: sgns::trustedpeer::TrustedPeerListPayload (class)
---
ISignedCRDTData payload type carrying the trusted-peer list. Serialization is a newline-joined encoding of the peer address list (addresses are 128-char hex strings and never contain '
'). Verify() performs structural validation ONLY (non-empty, no duplicates, each entry exactly 128 lowercase-hex characters) it never diffs against any cached/mutable state (Pitfall 4).
Members:
peers_
TrustedPeerListPayload
TrustedPeerListPayload — Constructs a payload directly from a peer list (used by callers that need to serialize a proposed value).
SerializeToBytes — Serializes this instance's payload to raw bytes (codec, encode side).
DeserializeFromBytes
Verify — Performs type-specific semantic validation of payload beyond signature/quorum checks (e.g. field-range checks).
Apply — Applies the side effect of this value once the caller has independently confirmed quorum (e.g. via SecureCrdt::ReadIfQuorum). Apply() itself does NOT check quorum.
GetPeers — Returns the decoded/constructed peer list.
FromBytes — Decodes a trusted-peer list into a fully-constructed payload.
---
source: /SuperGenius/Classes/d7/dec/classsgns_1_1trustedpeer_1_1_trusted_peer_registry/
title: sgns::trustedpeer::TrustedPeerRegistry (class)
---
Genesis-seeded, in-memory-cached, quorum-updatable trusted-peer set. Delegates ALL signature/quorum logic to SecureCrdt / SecureCrdtRegistry no bespoke signature/quorum logic exists here (TPR-03).
Members:
secure_crdt_
base_key_
bootstrapper_address_
quorum_threshold_
cache_mutex_
cached_peers_
genesis_confirmed_
registry_token_
logger_
TrustedPeerRegistry — Constructs a TrustedPeerRegistry. The genesis peer list is cached immediately (D-05) GetCurrentPeers() reflects it even before SeedGenesis/TryConfirm are called.
~TrustedPeerRegistry
SeedGenesis — Seeds the genesis trusted-peer list: proposes the genesis payload then adds exactly one ephemeral-bootstrapper signature. The signature is PRECOMPUTED this method never signs live (D-02).
ProposeMembershipChange — Proposes a membership-change value (new full peer list).
SignMembershipChange — Adds a signature over the currently-proposed value.
TryConfirm — Attempts to confirm the currently-proposed value against quorum. On confirmation, decodes/verifies/applies the payload and overwrites the cached peer set never speculatively before quorum is independently confirmed.
GetCurrentPeers — Returns a copy of the current cached trusted-peer set.
IsGenesisConfirmed — Reports whether genesis has been confirmed.
Unregister — Unregisters this instance's signer-set-source from SecureCrdtRegistry (test-fixture teardown helper).
New — Constructs a TrustedPeerRegistry and registers its signer-set-source with SecureCrdtRegistry.
RegisterSignerSetSource — Registers this instance's signer-set-source with SecureCrdtRegistry under "trusted-peer-registry".
ResolveSignerSet — Resolves the current authorized signer set: the sole bootstrapper (threshold 1) before genesis confirmation, or the current cached peer set (at quorum_threshold_) afterwards. Reads ONLY cached_peers_/genesis_confirmed_ NEVER re-enters the SecureCrdt quorum-read path (Pitfall 2).
---
source: /SuperGenius/Classes/d7/daf/structintx_1_1uint/
title: intx::uint (struct)
---
Members:
word_type
word_num_bits
num_bits
num_words
words_
uint
uint — Implicit converting constructor for any smaller uint type.
uint
operator[]
operator[]
operator bool
operator uint< M >
operator Int — Explicit converting operator for all builtin integral types.
---
source: /SuperGenius/Classes/d9/db9/structintx_1_1uint_3_01128_01_4/
title: intx::uint< 128 > (struct)
---
The 128-bit unsigned integer.
This type is defined as a specialization of uint<> to easier integration with full intx package, however, uint128 may be used independently.
Members:
word_type
word_num_bits
num_bits
num_words
words_
uint
uint
uint
operator[]
operator[]
operator bool
operator Int — Explicit converting operator for all builtin integral types.
---
source: /SuperGenius/Classes/d7/d76/structdiscv5_1_1_uncompressed_pub_key_wire/
title: discv5::UncompressedPubKeyWire (struct)
---
Wire layout of an uncompressed secp256k1 public key (with 0x04 prefix).
Members:
prefix — Always 0x04.
xy — 64-byte X || Y coordinate pair
---
source: /SuperGenius/Classes/d5/d2f/class_unreachable___at___line/
title: Unreachable_At_Line (class)
---
This file declares UNREACHABLE macro. Use it to prevent compiler warnings.
---
source: /SuperGenius/Classes/da/dac/structsgns_1_1_unused/
title: sgns::Unused (struct)
---
Special zero-size-type for some things (e.g., unsupported and experimental).
Members:
index
operator==
---
source: /SuperGenius/Classes/d8/d41/structeth_1_1_upgrade_status_message/
title: eth::UpgradeStatusMessage (struct)
---
Members:
disable_peer_tx_broadcast
---
source: /SuperGenius/Classes/dc/d6b/structsgns_1_1_u_t_x_o_manager_1_1_u_t_x_o_checkpoint/
title: sgns::UTXOManager::UTXOCheckpoint (struct)
---
Persisted checkpoint snapshot used to audit finalized UTXO state at a given epoch.
Members:
owner_address — Owner address associated with this checkpoint.
epoch — Epoch number when the checkpoint was created.
last_finalized_tx — Transaction ID of the last finalized transaction at the time of checkpointing.
registry_hash — Hash of the full UTXO registry state at the time of checkpointing.
utxo_merkle_root — Merkle root of the unspent UTXOs at the time of checkpointing.
utxo_count — Total number of UTXOs included in the checkpoint.
created_at_ms — Timestamp in milliseconds when the checkpoint was created.
---
source: /SuperGenius/Classes/d5/d7d/structsgns_1_1_u_t_x_o_manager_1_1_u_t_x_o_entry/
title: sgns::UTXOManager::UTXOEntry (struct)
---
Metadata tracked for each outpoint in the local registry.
Members:
state — Current lifecycle state of the UTXO.
utxo — The actual UTXO data.
created_epoch — Epoch when the UTXO was created.
spent_epoch — Epoch when the UTXO was consumed, if applicable.
spent_by_txid — Transaction ID that consumed this UTXO, if applicable.
type — Type classification for the UTXO.
---
source: /SuperGenius/Classes/d0/dac/classsgns_1_1_u_t_x_o_manager/
title: sgns::UTXOManager (class)
---
Owns the local UTXO set, supports coin selection, validation, persistence, reservations, and deterministic snapshot hashing.
Members:
UTXOState — Lifecycle state stored for each tracked UTXO.
UTXOType — Type classification for UTXOs to distinguish standard UTXOs from cross-chain bridge burns.
UTXOData — UTXO state paired with the actual UTXO.
UTXOOutPointMap — Maps an outpoint to its UTXO Entry.
AddressOutPointList — Maps an owner address to a list of outpoints they own.
SignFunc — Method to sign a vector of bytes, returning the signature bytes.
VerifySignatureFunc — Method to verify a signature given an address, signature bytes, and original data.
DB_PREFIX — Prefix for UTXO-related keys in RocksDB.
CHECKPOINT_PREFIX
logger_ — Logger instance for UTXOManager.
address_ — Address of the account this manager is responsible for.
sign_ — Signer method for authorizing UTXO spends.
verify_signature_ — Verifier method for validating signatures on UTXO spends.
db_ — Database handle for persisting UTXO state and checkpoints.
utxos_mutex_ — Mutex for UTXO state structures.
utxo_outpoints_ — Maps outpoints to their UTXO entries for efficient lookup.
address_outpoints_
local_reservations_ — Transient local ownership for reservations; never persisted or used for consensus validity.
UTXOManager — Construct a new UTXOManager object.
GetBalance — Get the account's balance.
GetBalance — Get the informed address balance.
GetBalance — Get the accounts balance for a specific token.
GetBalance — Get the balance of the informed address for a specific token.
PutUTXO — Add a new UTXO to the account.
PutUTXO — Adds a new UTXO to the account using the manager's default address.
DeleteUTXO — Delete a UTXO from the account.
ConsumeUTXOs — Consume UTXOs from the account.
RestoreConsumedUTXOs — Restores previously consumed inputs when their consuming transaction is reverted.
ConsumeUTXOs — Consume UTXOs from the default owner address tracked by this manager.
GetUTXOs — Get UTXOs for a specific address.
GetUTXOs — Returns spendable UTXOs owned by the manager's default address.
GetUnconsumedUTXOs — Get all unconsumed UTXOs for a specific address.
GetUnconsumedUTXO — Returns an unconsumed UTXO by its exact outpoint.
GetAllUTXOs — Get all UTXOs tracked by the manager, grouped by owner address.
SetUTXOs — Set UTXOs for a specific address (replaces existing UTXOs)
SetUTXOs — Set UTXOs for the manager's default address (replaces existing UTXOs)
CreateTxParameter — Create the input and output parameters for a single-output transfer, selecting from available UTXOs.
CreateTxParameter — Selects and signs inputs for a multi-output transfer.
ReserveUTXOs — Marks inputs as reserved so they are not reused by concurrent transaction assembly.
RollbackUTXOs — Releases a previous reservation without consuming the inputs.
VerifyParameters — Verifies ownership and signatures for UTXO transaction parameters using the default address.
VerifyParameters — Verifies ownership and signatures for UTXO transaction parameters using an explicit address.
GetOutPointState — Returns the tracked state of a specific outpoint when present.
IsOutPointConsumed — Indicates whether a specific outpoint has already been consumed.
IsOutPointReserved — Indicates whether a specific outpoint is in the RESERVED state (burn UTXO awaiting consensus).
ComputeUTXOMerkleRoot — Compute a deterministic Merkle root for unspent UTXOs owned by this node address.
ComputeUTXOMerkleRoot — Compute a deterministic Merkle root for unspent UTXOs from a specific address.
ComputeUTXOMerkleRootFromSnapshot — Compute deterministic UTXO Merkle root from an explicit UTXO snapshot.
LoadUTXOs — Loads the UTXO state for the manager's default address from persistent storage.
ReleaseStorage — Releases the current RocksDB handle used for persistence.
StoreUTXOs — Stores the current UTXO state for the manager's default address to persistent storage.
CreateCheckpoint — Creates a checkpoint for the manager's default address.
CreateCheckpoint — Creates a checkpoint for an explicit owner address.
LoadLatestCheckpoint — Loads the latest checkpoint for the default owner address.
LoadLatestCheckpoint — Loads the latest checkpoint for the provided owner address.
AcquireStorage — Grabs the current storage as a shared pointer copy.
SelectUTXOs — Selects UTXOs to cover a required amount for a specific token, excluding reserved outpoints, and returns the selected inputs along with the total selected amount.
SignInputs — Signs the provided UTXO inputs using the configured signing function.
---
source: /SuperGenius/Classes/d4/d67/structsgns_1_1_account_messenger_1_1_u_t_x_o_response_data/
title: sgns::AccountMessenger::UTXOResponseData (struct)
---
Members:
responder_address
utxos
has_utxos
---
source: /SuperGenius/Classes/d1/d90/structdiscovery_1_1_validated_peer/
title: discovery::ValidatedPeer (struct)
---
Minimal peer descriptor produced by both discv4 and discv5 crawlers.
Contains only the information that the downstream dial scheduler needs to attempt an RLPx TCP connection and to apply an optional per-chain filter.
Intentionally kept narrow — it is the stable handoff contract between the discovery layer and the connection layer. Neither the scheduler nor the caller should need to know which discovery protocol produced this record.
Members:
node_id — 64-byte secp256k1 public key
ip — IPv4 dotted-decimal or IPv6 string.
udp_port — UDP port used by the discovery protocol.
tcp_port — TCP port for RLPx (devp2p)
last_seen — Wallclock of last discovery contact.
eth_fork_id — Present when parsed from ENR "eth" entry.
---
source: /SuperGenius/Classes/d9/d3b/structdiscv4_1_1_validated_peer/
title: discv4::ValidatedPeer (struct)
---
A discovered peer whose public key has already been validated.
Members:
peer
pubkey
---
source: /SuperGenius/Classes/da/d26/structsgns_1_1_consensus_manager_1_1_validation_result/
title: sgns::ConsensusManager::ValidationResult (struct)
---
Local structured validation result for subject handlers.
Pending metadata is local bookkeeping only. It is not serialized, broadcast, or counted toward quorum.
Members:
check
dependencies
retry_after
ValidationResult
ValidationResult
Approve
Reject
Stalled
Pending
---
source: /SuperGenius/Classes/dc/db9/classsgns_1_1_validator_registry/
title: sgns::ValidatorRegistry (class)
---
Maintains validator registry state and applies certificate-driven updates.
This component stores the active validator set in GlobalDB/CRDT, computes quorum thresholds, validates registry updates, and derives next registry snapshots from consensus certificates.
Members:
BatchSubjectDecision — Decision result when evaluating a registry-batch subject.
BatchCertificateDecision — Decision result when handling a registry-batch certificate.
ValidatorEntry
Registry
SignatureEntry
RegistryUpdate
Role
Status
InitCallback
BlockRequestMethod
DefaultMaxNewValidatorsPerUpdate — Default cap for new validators added per update.
DefaultCertificatesPerBatch — Default number of certificates grouped per batch.
sgns::Migration3_5_0To3_6_0
db_ — Backing GlobalDB instance.
quorum_numerator_ — Quorum numerator.
quorum_denominator_ — Quorum denominator.
weight_config_ — Weight and penalty configuration.
genesis_authority_ — Genesis authority validator id.
logger_ — Component logger.
cache_mutex_ — Guards cached registry/update state.
cached_registry_ — Cached active registry snapshot.
cached_update_ — Cached active registry update.
cached_registry_id_ — Cached active registry CID.
cache_initialized_ — Indicates whether cache has been initialized.
max_new_validators_per_update_ — Cap for new validators per update.
certificates_per_batch_ — Certificates required per batch subject.
batch_mutex_ — Guards batch-tracking collections.
pending_certificate_subjects_by_base_ — Pending subject hashes keyed by base registry.
pending_batch_subject_ids_ — Batch subject ids pending finalization.
finalized_batch_subject_ids_ — Batch subject ids already finalized.
applying_batch_subject_ids_ — Batch subject ids currently being applied.
submit_batch_subject_ — Callback used to submit batch subjects.
persistence_mutex_ — Guards the persistence queue and shutdown state.
persistence_cv_ — Wakes the persistence worker during work/shutdown.
persistence_queue_ — Registry updates waiting to be persisted.
persistence_stopping_ — Rejects work after Close starts.
active_batch_handlers_ — Batch handlers still using GlobalDB.
persistence_worker_ — Owned registry persistence worker.
close_mutex_ — Serializes idempotent Close calls.
close_started_ — Makes Close one-shot.
init_callback_ — Optional initialization callback.
request_block_by_cid_ — Callback to request blocks by CID.
New — Creates and initializes a validator registry instance.
TotalWeight — Computes total effective weight in a registry snapshot.
EvaluateSlotQuorumStatic — Pure (stateless) slot-quorum tally for deterministic unit testing.
EvaluateRegularPromotionStatic — Pure (stateless) REGULAR -> FULL promotion decision (D-08).
RegistryKey — Registry object key used in datastore.
ValidatorTopic — Topic used to publish/subscribe validator registry updates.
RegistryCidKey — Key used to persist the current registry CID.
FindValidator — Finds validator entry by id in a registry snapshot.
~ValidatorRegistry — Destroys the registry instance.
Close — Stops accepting registry work and waits for queued persistence to finish.
ComputeWeight — Computes default weight for a validator role.
QuorumThreshold — Computes minimum accumulated weight required for quorum.
IsQuorum — Checks whether accumulated weight satisfies quorum.
EvaluateSlotQuorum — Phase 6 cumulative slot-quorum tally for bridge-mint subjects (D-06).
CreateGenesisRegistry — Creates an in-memory genesis registry snapshot.
StoreGenesisRegistry — Persists a signed genesis registry update.
LoadCurrentRegistry — Loads the currently active registry.
LoadRegistryByCid — Loads a registry by CID.
LoadRegistryUpdate — Loads the currently active registry update payload.
GetValidatorWeight — Looks up validator weight by validator id.
RegisterFilter — Registers CRDT filter/callbacks for registry updates.
CreateUpdateFromCertificate — Builds a registry update from a finalized certificate.
StoreRegistryUpdate — Persists a registry update.
BeginRegistryUpdateTransaction — Starts an atomic transaction to apply a registry update.
SetMaxNewValidatorsPerUpdate — Sets the maximum number of unregistered validators added per update.
SerializeRegistry — Serializes a registry protobuf.
DeserializeRegistry — Deserializes a registry protobuf.
SerializeRegistryUpdate — Serializes a registry update protobuf.
DeserializeRegistryUpdate — Deserializes a registry update protobuf.
GetRegistryCid — Returns cached/current registry CID.
GetRegistryEpoch — Returns cached/current registry epoch.
SetCertificatesPerBatch — Sets certificate count threshold used when creating batch subjects.
SetBatchSubjectSubmitter — Sets callback used to submit generated batch subjects.
OnFinalizedCertificate — Handles a finalized consensus certificate.
EvaluateBatchSubject — Evaluates a registry-batch subject payload.
HandleBatchCertificate — Handles certificate associated with a registry-batch subject.
RetryInitializationIfNeeded — Re-attempts genesis-registry head-CID discovery when initialization has not yet completed (bug fix, D-01/2-of-11-nodes-start-bridge).
MigrateCids — Migrates registry-related CIDs from old to new datastore.
ValidatorRegistry — Constructs a ValidatorRegistry instance.
FilterRegistryUpdate — Filters CRDT elements to registry-update entries.
RegistryUpdateReceived — Callback invoked when a registry update element is received.
ComputeUpdateSigningBytes — Computes canonical bytes used to sign a registry update.
VerifyUpdate — Verifies registry update signatures and consistency.
ValidateCertificate — Validates certificate against current registry constraints.
ValidateCertificateForUpdate — Validates certificate suitability for generating a registry update.
ExtractCertificateVotes — Extracts registered/unregistered vote partitions from certificate.
BuildRegistryFromCertificate — Builds next registry snapshot using a certificate-derived vote set.
BuildRegistryFromAggregatedVotes — Builds next registry snapshot from aggregated vote maps.
InsertNewValidators — Inserts eligible unregistered validators into registry.
ApplyVoteEffects — Applies registered vote effects (approvals/penalties) to entries.
ApplyInactivityDecay — Applies inactivity decay to validators absent from participants.
ApplyTotalWeightCap — Enforces total-weight cap across entries.
InitializeCache — Initializes local cache from persistent storage.
ComputeBatchRoot — Computes deterministic batch root from subject hashes.
SelectBatchSubjects — Selects subjects eligible for a registry batch proposal.
LoadCertificateBySubjectHash — Loads certificate referenced by subject hash.
TryCreateAndSubmitBatchProposal — Attempts to create and submit a registry batch proposal.
NotifyInitialized — Notifies initialization completion to callback.
PersistLocalState — Persists local cache metadata/state.
RequestHeadCids — Requests head blocks for the provided CIDs.
PersistenceWorkerLoop
EnqueueRegistryWrite
NormalizeRegistry — Sorts and normalizes registry structure deterministically.
BuildBatchKey — Builds map key for pending certificate subjects by base registry.
---
source: /SuperGenius/Classes/d6/def/structdiscv4_1_1_watcher_pool/
title: discv4::WatcherPool (struct)
---
Global resource pool shared across all chain DialSchedulers. Enforces a two-level fd cap: total across all chains, and per chain.
Members:
max_total
max_per_chain
active_total
WatcherPool
WatcherPool
---
source: /SuperGenius/Classes/d2/d51/structdiscv4_1_1_watcher_pool_config/
title: discv4::WatcherPoolConfig (struct)
---
Configurable connection limits for a WatcherPool. Defaults keep three active dial/watch slots per chain.
Members:
max_total
max_per_chain
---
source: /SuperGenius/Classes/db/df0/structeth_1_1_watch_event_context/
title: eth::WatchEventContext (struct)
---
Context metadata attached to a filtered watch event.
Members:
chain_name
network_id
peer_client_id
peer_address
---
source: /SuperGenius/Classes/d7/da8/structeth_1_1_watch_event_notification/
title: eth::WatchEventNotification (struct)
---
Enriched event payload emitted by EthWatchRunner and EthWatchService.
Members:
context
event
values
event_signature
---
source: /SuperGenius/Classes/df/d95/structeth_1_1cli_1_1_watch_spec/
title: eth::cli::WatchSpec (struct)
---
One watch subscription specified on the command line.
Members:
contract_hex — 40 hex chars (20 bytes), empty = any contract
event_signature — e.g. "Transfer(address,address,uint256)"
---
source: /SuperGenius/Classes/d0/db9/structeth_1_1_watch_stats_snapshot/
title: eth::WatchStatsSnapshot (struct)
---
Snapshot of live EthWatchService traffic counters.
Members:
eth_messages_seen
new_block_hashes_messages
new_block_messages
receipts_messages
decode_failures
receipts_requested
receipts_processed
logs_seen
matched_logs
discarded_logs
---
source: /SuperGenius/Classes/dd/d71/structsgns_1_1_validator_registry_1_1_weight_config/
title: sgns::ValidatorRegistry::WeightConfig (struct)
---
Weight policy used to score validators and update penalties.
Members:
genesis_weight_ — Base weight for genesis authority validators.
full_weight_ — Base weight for full validators.
regular_weight_ — Base weight for regular validators.
sharded_weight_ — Base weight for sharded validators.
genesis_max_weight_ — Max weight allowed for genesis validators.
full_max_weight_ — Max weight allowed for full validators.
regular_max_weight_ — Max weight allowed for regular validators.
sharded_max_weight_ — Max weight allowed for sharded validators.
approval_increment_ — Weight increment applied for approved behavior.
penalty_threshold_ — Penalty score threshold before harsher actions.
penalty_cap_ — Maximum accumulated penalty score.
blacklist_bump_ — Penalty increment applied for severe failures.
missed_epoch_threshold_ — Missed-epoch threshold used for inactivity decisions.
inactivity_decrement_ — Weight decrement for inactive validators.
total_weight_cap_multiplier_ — Multiplier controlling global weight-cap normalization.
certificate_timestamp_window_ms_ — Allowed timestamp drift for certificates.
slot_direct_numerator_ — Slot 0 (DIRECT_API) weight numerator. 0.50 = 1/2 (D-02).
slot_direct_denominator_ — Slot 0 (DIRECT_API) weight denominator. 0.50 = 1/2 (D-02).
slot_public_numerator_ — Slots 1-2 (PUBLIC) weight numerator. 0.25 = 1/4 (D-03).
slot_public_denominator_ — Slots 1-2 (PUBLIC) weight denominator. 0.25 = 1/4 (D-03).
slot_quorum_numerator_ — Cumulative quorum threshold numerator. 0.75 = 3/4 (D-06).
slot_quorum_denominator_ — Cumulative quorum threshold denominator.0.75 = 3/4 (D-06).
slot_public_min_group_ — D-03: minimum distinct validators per PUBLIC hash group.
full_promotion_weight_ — Weight at which a REGULAR validator is promoted to FULL (D-08).
---
source: /SuperGenius/Classes/d4/d8c/structsgns_1_1_weighted_rpc_endpoint/
title: sgns::WeightedRpcEndpoint (struct)
---
Weighted RPC endpoint used for multi-provider consensus verification.
Direct (api-key) endpoints contribute 50% weight. Public endpoints from ChainList contribute 25% weight. Verification requires >= 75% weighted consensus across queried endpoints.
Members:
url
consensus_weight
bridge_contract_address
accepted_topic0_hashes
---
source: /SuperGenius/Classes/da/dc7/structdiscv5_1_1_whoareyou_auth_data_wire/
title: discv5::WhoareyouAuthDataWire (struct)
---
WHOAREYOU auth-data layout: id-nonce + highest ENR sequence.
Members:
id_nonce — 16-byte identity challenge nonce
record_seq — Highest known ENR sequence (big-endian)
---
source: /SuperGenius/Classes/db/d24/classsgns_1_1_windows_secure_storage/
title: sgns::WindowsSecureStorage (class)
---
Members:
identifier_
WindowsSecureStorage
GetName
LoadJSON
SaveJSON
---
source: /SuperGenius/Classes/df/d5a/structsgns_1_1base_1_1_wrapper/
title: sgns::base::Wrapper (struct)
---
Make strongly typed structures from different concepts of the equal types. E.g. block height and round number are both uint64_t, but better to be different types. Or, ID and Signature both vectors.
T
wrapped type
Tag
unique tag
Members:
data_
Wrapper
unwrap
unwrap
unwrap_mutable
operator==
---
source: /SuperGenius/Classes/d7/dc2/structsgns_1_1storage_1_1face_1_1_writeable/
title: sgns::storage::face::Writeable (struct)
---
An mixin for modifiable map.
K
key type
V
value type
Members:
~Writeable
put — Store value by key.
put
remove — Remove value by key.
---
source: /SuperGenius/Classes/d9/d69/structsgns_1_1storage_1_1face_1_1_write_batch/
title: sgns::storage::face::WriteBatch (struct)
---
An abstraction over a storage, which can be used for batch writes.
K
key type
V
value type
Members:
commit — Writes batch.
clear — Clear batch.
---
source: /SuperGenius/Classes/d2/d26/classsgns_1_1api_1_1_ws_client_impl/
title: sgns::api::WsClientImpl (class)
---
Members:
Context
ExecutorType
StreamSocket
PlainWebSocketStream
SSLStream
SecureWebSocketStream
sslContext
stream
strand
resolver
buffer
host
port
secure
WsClientImpl
start
setMessageHandler
send
stop
parseUrl
onWebSocketConnect
reportError
---
source: /SuperGenius/Namespaces/d6/da1/namespace_0d480/
title: @480 (namespace)
---
Members:
StopReason
RunStatus
---
source: /SuperGenius/Namespaces/d5/d9c/namespacebitcoin/
title: bitcoin (namespace)
---
Members:
CurveType — Curve type used by Ethereum keys.
base_field_type — Ethereum base field type.
scalar_field_type — Ethereum scalar field type.
scalar_field_value_type — Ethereum value from the scalar field type.
random_generator_type — Random generator type, to generate new Ethereum keys/addresses.
hash_type — The hash type used by Ethereum address derivation.
generator_type — The deterministic generator used by Ethereum key pair.
padding_policy — Ethereum passing policy.
policy_type — Ethereum policy type.
signature_type — Random generator type, to generate new Bitcoin keys/addresses.
derivation_hash_type — The hash type used by Ethereum address derivation.
BitcoinKeyGenerator::ExtractPubKeyFromField< std::vector< std::uint8_t > >
BitcoinKeyGenerator::ExtractPubKeyFromField< BitcoinKeyGenerator::PubKeyPair_t >
---
source: /SuperGenius/Namespaces/d6/d94/namespacediscovery/
title: discovery (namespace)
---
Members:
NodeId — Node identifier — 64-byte uncompressed secp256k1 public key (without the 0x04 prefix).
---
source: /SuperGenius/Namespaces/d6/dcc/namespacediscv4/
title: discv4 (namespace)
---
Members:
ChainDiscoveryDefault
DiscoveryForkFilter
discv4Error — Discovery v4 protocol error codes.
PacketError
BootstrapCacheRefreshResult
BootstrapChainConfig
BootstrapSignatureVerificationResult
DialFn
DialFeedbackFn — Callback signature for dial/session exit feedback.
FilterFn — Predicate applied to a DiscoveredPeer before it is enqueued for dialing. Return true to allow dialing, false to drop. When unset (nullptr), all peers are accepted. Mirrors go-ethereum UDPv4::NewNodeFilter (eth/protocols/eth/discovery.go).
udp
NodeId
PeerDiscoveredCallback
ErrorCallback
Result — Result type for Discovery v4 operations.
VoidResult — Result type for Discovery v4 operations without return value.
PacketResult
SendCallback
kHashSize
kSigSize
kPacketTypeSize
kPacketHeaderSize
kPacketTypeOffset
kUncompressedPubKey
kEthKey
kWireHashSize — Outer Keccak-256 hash.
kWireSigSize — Recoverable ECDSA signature.
kWirePacketTypeSize — Single packet-type byte.
kWireRecoveryIdSize — Recoverable ECDSA recovery id.
kWireCompactSigSize
kWireHeaderSize
kWirePacketTypeOffset
kNodeIdSize — Node identity.
kNodeIdHexSize
kUncompressedPubKeySize — 0x04 prefix + 64 bytes
kIPv4Size — Network.
kUdpBufferSize
kPacketTypePing — Packet type identifiers.
kPacketTypePong
kPacketTypeFindNode
kPacketTypeNeighbours
kPacketTypeEnrRequest
kPacketTypeEnrResponse
kProtocolVersion — Protocol version advertised in PING packets.
kPacketExpirySeconds — Default packet expiry window (seconds)
kDefaultPingTimeout — Default networking timers.
kDefaultPeerExpiry
kDefaultDialHistoryExpiry
kEnrSeqSize — ENR sequence number field size in PONG (optional, 6-byte big-endian uint48)
bootstrap_cache_json_path
find_bootstrap_peers_json_path
download_bootstrap_json
write_bootstrap_cache_json_if_changed
refresh_bootstrap_cache_json
load_bootstrap_peers_from_json_text
load_bootstrap_peers_from_json
load_bootstrap_fork_id_hash_from_json_text
load_bootstrap_fork_id_hash_from_json
load_bootstrap_chain_config_from_json_text
load_bootstrap_chain_config_from_json
verify_bootstrap_json_signature
make_validated_peer_from_enode — Parse an enode:// peer URI into a validated peer entry.
make_validated_peer_from_enr — Parse an enr: peer URI into a validated peer entry.
chain_peer_cache_json_path — Return the default local cache path for chain_enodes.json next to the executable.
find_chain_peer_cache_json_path — Locate a local chain peer cache JSON file.
download_chain_peer_cache_json — Download the chain peer cache JSON payload from a remote URL. Supports either raw JSON or gzip-compressed JSON bodies.
write_chain_peer_cache_json_if_changed — Write the chain peer JSON cache only when the contents changed.
refresh_chain_peer_cache_json — Refresh a local chain peer cache from a remote URL.
load_chain_peers_from_json_text — Load cached peers for a specific chain from JSON text.
load_chain_peers_from_json — Load cached peers for a specific chain from a JSON or gzip-compressed JSON file.
load_chain_fork_id_hash_from_json_text — Load the first available peer fork hash for a specific chain from JSON text.
load_chain_fork_id_hash_from_json — Load the first available peer fork hash for a specific chain from a JSON or gzip-compressed JSON file.
load_chain_peer_config_from_json_text — Load the parsed chain configuration from JSON text.
load_chain_peer_config_from_json — Load the parsed chain configuration from a JSON or gzip-compressed JSON file.
verify_chain_peer_cache_json_signature — Verify the top-level chain_enodes.json signature.
to_string — Convert error code to human-readable string.
make_fork_id_filter — Create a FilterFn that accepts only peers whose ENR eth entry carries a ForkId with the given 4-byte hash (CRC32 of genesis + applied forks).
---
source: /SuperGenius/Namespaces/d0/dec/namespacediscv5/
title: discv5 (namespace)
---
Members:
discv5Error — Enumeration of all error conditions that can be returned by the discv5 module.
udp
Result — Result type for discv5 operations that return a value.
VoidResult — Result type for discv5 operations that return nothing on success.
PeerDiscoveredCallback — Invoked when a new valid peer has been discovered and passed all configured filters (chain filter, address validation, dedup).
ErrorCallback — Invoked when a non-fatal error occurs inside the crawler (e.g. a malformed ENR from a remote node).
DnsTxtLookupFn — DNS TXT lookup callback used by the ENR-tree resolver.
kBase64UrlTable — Static decode table for the base64url alphabet (RFC-4648 §5). Index = ASCII code, value = 6-bit group (or kBase64Invalid). Built from the named constants in discv5_constants.hpp so that no bare literals appear in the initialiser.
kDefaultUdpPort — Default UDP port for discv5 (IANA-assigned).
kDefaultTcpPort — Default TCP/RLPx port advertised to discovered peers.
kNodeIdBytes — Bytes in an uncompressed secp256k1 public key WITHOUT the 0x04 prefix. This is the 64-byte "node id" used by discv4 and passed to DialHistory.
kCompressedKeyBytes — Bytes in a compressed secp256k1 public key (03/02 prefix + 32 bytes).
kPrivateKeyBytes — Bytes in a secp256k1 private key.
kUncompressedPrefixLen — Bytes in the 0x04 uncompressed-point prefix.
kUncompressedPubKeyPrefix
kUncompressedPubKeyDataOffset
kKeccak256Bytes — Keccak-256 (legacy) digest size in bytes.
kIPv4Bytes — IPv4 address wire size in bytes.
kIPv6Bytes — IPv6 address wire size in bytes.
kIPv4OctetMsb — Byte offset of the most-significant octet in a 4-byte IPv4 field.
kIPv4Octet1 — Byte offset of the second octet.
kIPv4Octet2 — Byte offset of the third octet.
kIPv4OctetLsb — Byte offset of the least-significant octet.
kIPv4MsbShift — Left-shift amount to place the MSB octet in a uint32 (big-endian).
kIPv4Octet1Shift — Left-shift amount for the second octet.
kIPv4Octet2Shift — Left-shift amount for the third octet.
kIPv4LsbShift — Left-shift amount for the least-significant octet (no shift).
kMaxPortBytes — Maximum bytes an RLP-encoded UDP/TCP port occupies (big-endian uint16).
kForkHashBytes — Byte count of the fork-hash field inside an ENR "eth" entry.
kProtocolIdBytes — Byte length of the "discv5" protocol-ID magic string.
kProtocolId — The discv5 packet protocol-ID string.
kGcmNonceBytes — Byte length of the AES-GCM nonce used for message encryption.
kMaskingIvBytes — Byte length of the masking IV that precedes the static header.
kWhoareyouIdNonceBytes — Byte length of the WHOAREYOU id-nonce field.
kMinPacketBytes — Minimum valid discv5 packet size (go-ethereum minPacketSize).
kMaxPacketBytes — Maximum valid discv5 packet size in bytes.
kAes128KeyBytes — AES-128 session key size in bytes.
kGcmTagBytes — AES-GCM authentication tag size in bytes.
kRandomMessageCiphertextBytes — Random encrypted payload size used for pre-handshake message placeholders.
kFindNodeDistanceAll — FINDNODE distance that requests the full routing table (log2 space upper bound + 1).
kHkdfFirstBlockCounter — Single-byte HKDF expansion block counter used for the first output block.
kMessageTypePrefixBytes — Byte size of the leading message-type prefix in decrypted discv5 payloads.
kNodesResponseCountSingle — Number of ENR records returned by the local single-record NODES reply helper.
kEnrMaxBytes — Maximum total size of a serialised ENR record (EIP-778 SizeLimit).
kEnrSigBytes — Compact secp256k1 ECDSA signature size stored in an ENR (no recid).
kEnrPrefixLen — Byte length of the "enr:" URI prefix.
kEnrPrefix — The "enr:" URI prefix string.
kInitialEnrSeq — Initial ENR sequence number for locally generated records.
kIdentitySchemeV4 — ENR identity scheme string for secp256k1-v4.
kIdentitySchemeV4Bytes
kEnrKeyId — Common ENR field key strings and lengths.
kEnrKeyIdBytes
kEnrKeyIp
kEnrKeyIpBytes
kEnrKeySecp256k1
kEnrKeySecp256k1Bytes
kEnrKeyTcp
kEnrKeyTcpBytes
kEnrKeyUdp
kEnrKeyUdpBytes
kBase64UpperCount — Number of upper-case letters (A–Z) in the base64url alphabet.
kBase64LowerCount — Number of lower-case letters (a–z) in the base64url alphabet.
kBase64DigitCount — Number of decimal digits (0–9) in the base64url alphabet.
kBase64LowerStart — Start index of the lower-case letter block (after A–Z).
kBase64DigitStart — Start index of the digit block (after A–Z and a–z).
kBase64DashIndex — Table index for the '-' character in base64url.
kBase64UnderIndex — Table index for the '_' character in base64url.
kBase64Invalid — Sentinel value meaning "not a valid base64url character".
kBase64BitsPerChar — Number of bits encoded by one base64 character.
kBase64BitsPerByte — Number of bits in one output byte.
kDefaultMaxConcurrent — Default maximum concurrent outbound FINDNODE queries.
kDefaultQueryIntervalSec — Default interval between crawler sweep rounds (seconds).
kDefaultPeerExpirySec — Seconds before an unseen peer is evicted from the peer table.
kMaxBootnodeEnrs — Maximum bootstrap ENR entries accepted per chain source.
kUncompressedKeyBytes — Total byte count of an uncompressed public key including the 0x04 prefix.
kStaticHeaderBytes — Byte count of the static header (derived from wire struct, NOT a magic literal).
kStaticHeaderVersionOffset
kStaticHeaderFlagOffset
kStaticHeaderNonceOffset
kStaticHeaderAuthSizeOffset
kWhoareyouAuthDataBytes — Byte count of WHOAREYOU auth data.
kHandshakeAuthSizeFieldBytes — HANDSHAKE auth-data layout prefixes.
kHandshakeAuthSizeFieldCount
kHandshakeAuthSigSizeOffset
kHandshakeAuthPubkeySizeOffset
kHandshakeAuthFixedBytes
kStaticPacketBytes — Total fixed bytes at the front of every discv5 packet: masking IV + static header.
kFlagMessage — Flag value for an ordinary encrypted message packet.
kFlagWhoareyou — Flag value for a WHOAREYOU session-challenge packet.
kFlagHandshake — Flag value for a HANDSHAKE message.
kMsgPing — PING message type byte.
kMsgPong — PONG message type byte.
kMsgFindNode — FINDNODE message type byte.
kMsgNodes — NODES message type byte.
kMsgTalkReq — TALKREQ message type byte.
kMsgTalkResp — TALKRESP message type byte.
kProtocolVersion — discv5 protocol version (current).
to_string — Convert a discv5Error code to a human-readable C string.
---
source: /SuperGenius/Namespaces/df/d3b/namespaceecdsa__t/
title: ecdsa_t (namespace)
---
Members:
CurveType — ECDSA uses secp256k curve.
base_field_type — The base field type is dependant on the curve.
scalar_field_type — The scalar field type is dependant on the curve.
scalar_field_value_type — The value type fo the scalar field type.
random_generator_type — A random algebraic generator.
hash_type — The deterministic generator used by Ethereum key pair.
generator_type — RFC6979 deterministic generator.
padding_policy — Ethereum passing policy.
policy_type — Ethereum policy type.
signature_type
---
source: /SuperGenius/Namespaces/d5/d69/namespaceelgamal/
title: elgamal (namespace)
---
Members:
CurveType — ECDSA uses secp256k curve.
base_field_type — The base field type is dependant on the curve.
scalar_field_type — The scalar field type is dependant on the curve.
scalar_field_value_type — The value type fo the scalar field type.
random_generator_type — A random algebraic generator.
hash_type — The deterministic generator used by Ethereum key pair.
generator_type — RFC6979 deterministic generator.
padding_policy — Ethereum passing policy.
policy_type — Ethereum policy type.
signature_type
---
source: /SuperGenius/Namespaces/da/ddf/namespaceeth/
title: eth (namespace)
---
Members:
ReceiptLogVerificationError
HandshakeMessageDisposition — Result of processing one inbound ETH handshake-phase message.
EthMessageFieldType
StatusValidationError — Errors returned by validate_status(), mirroring go-ethereum's readStatus error values from eth/protocols/eth/handshake.go.
EthWatchDiscoveryMode — Peer source strategy for production eth-watch startup.
FinalityHeadKind
EthStatusAcceptedHandler — Callback invoked when the remote ETH Status message is accepted.
EthStatusRemoteDisconnectHandler — Callback invoked when the remote sends an RLPx Disconnect during ETH Status.
ReceiptBatchHandler
Hash256
Address
Bloom
StatusMessage — Dual-version Status message (ETH/68 or ETH/69).
EventWatchId — Subscription handle returned by EthWatchService::watch_event().
WatchEventNotificationCallback — Callback invoked for each decoded filtered event with chain/session metadata.
DecodedEventCallback — Typed callback for a decoded event log.
SendCallback — Callback used by EthWatchService to send an outgoing eth message.
WatchId — Registration handle returned by EventWatcher::watch(). Passed back to EventWatcher::unwatch() to remove a subscription.
EventCallback — Callback invoked for every log that matches a registered filter.
Secp256k1PrivateKey
kAbiWordSize — EVM ABI encoding constants (ABI spec: https://docs.soliditylang.org/en/latest/abi-spec.html)
kAbiAddressSize — Ethereum address is 20 bytes.
kAbiAddressPadding — 12 bytes of left-padding
kAbiBoolByteIndex — Canonical bool lives in rightmost byte (index 31)
kRlpListPrefixMin — EVM / RLP encoding thresholds.
kTypedTxPrefixSize — EIP-2718 typed transaction envelope.
kDefaultChainId — Default chain ID used when none is specified (Ethereum mainnet)
kKeccak256Size — Keccak-256 digest size (bytes)
kEthProtocolVersion66
kEthProtocolVersion67
kEthProtocolVersion68
kEthProtocolVersion69
operator==
operator<
bridge_event_key
verify_receipt_log
compute_bridge_message_id — Canonical message identifier for an EVM bridge source event.
bridge_event_claim_payload — Canonical bytes for bridge-event consensus payloads and watcher signatures.
decode_bridge_event_claim_payload
bridge_event_domain_separator
bridge_event_claim_hash
observer_address_from_private_key
sign_bridge_event_claim
verify_bridge_event_observation
PerformEthStatusHandshake — Execute the ETH Status startup handshake for a negotiated ETH session.
NormalizeEthWireMessageId — Return the ETH-local message id for a wire-level message.
ExtractLatestBlockNumber — Return the latest block number from a validated ETH Status message.
DecodeValidatedStatusMessage — Decode and validate an inbound ETH Status message.
HandleEthHandshakeMessage — Process one inbound ETH handshake-phase message.
make_eth_peer_queue — Create an eth-watch peer queue and preload the chain cache split.
BuildLocalStatusMessage — Build the local ETH Status message for the negotiated ETH protocol version.
ValidateRemoteStatusMessage — Validate a remote ETH Status message against negotiated version and chain.
StartEthStatusHandshake — Install post-handshake ETH inbound handling on a negotiated session.
checked_receipt_log_ordinal — Narrow a receipt-local log ordinal without truncation.
make_event_filter
make_eth_watcher_pool — Create the shared watcher connection pool used by chain peer dialers.
start_eth_watch_chain_peer_dialing — Create a per-chain dial scheduler and enqueue the provided peer candidates.
finality_policy_for_chain_id
choose_finality_head
is_final_under_policy
get_common_fields — Extract fields common to both ETH/68 and ETH/69 Status messages.
secp256k1_address_from_private_key
secp256k1_recover_address
secp256k1_sign_recoverable
DecompressXOnlyPubkey — Decompress a 32-byte X-only secp256k1 public key to a 128-char hex destination.
bridge_message_id — Convenience overload that extracts canonical fields from a claim.
---
source: /SuperGenius/Namespaces/d7/d56/namespaceeth_1_1abi/
title: eth::abi (namespace)
---
Members:
AbiParamKind — Identifies one parameter in an event/function signature.
AbiValue — A decoded ABI value. Only the types needed for common ERC-20/ERC-721 events are included: address, uint256, bytes32, bool, bytes, string.
keccak256 — Compute Keccak-256 of an arbitrary byte sequence.
keccak256 — Compute Keccak-256 of a string (e.g. an event signature).
event_signature_hash — Compute the event topic[0] hash from a human-readable signature.
decode_abi_word — Decode a single 32-byte ABI word from a topic or head slot.
decode_indexed_param — Decode an indexed event parameter from a topic hash.
decode_log_data — Decode the ABI-encoded data field of a log entry.
decode_log — Fully decode a log entry given its event descriptor.
---
source: /SuperGenius/Namespaces/d7/d8d/namespaceeth_1_1cli/
title: eth::cli (namespace)
---
Members:
parse_address — Parse a 0x-prefixed or bare 40-hex-char Ethereum address.
event_registry — Process-wide singleton registry, pre-populated with well-known events.
infer_params — Convenience wrapper: look up sig in the global registry. Replaces the old infer_params() free function.
build_service_watch_specs — Convert CLI watch flags into service-level watch specs.
build_service_config — Build the production service config used by cache-backed CLI modes.
---
source: /SuperGenius/Namespaces/d7/da3/namespaceeth_1_1codec/
title: eth::codec (namespace)
---
Members:
TransactionType — Ethereum transaction types per EIP-2718.
Hash256
Address
Bloom
ByteBuffer
EncodeResult
DecodeResult
encode_log_entry
decode_log_entry
encode_access_list_entry
decode_access_list_entry
encode_transaction — Encode a transaction. Typed transactions (EIP-2930, EIP-1559) are prefixed with their type byte before the RLP payload, per EIP-2718.
decode_transaction
encode_receipt
decode_receipt
encode_block_header
decode_block_header
---
source: /SuperGenius/Namespaces/df/dfe/namespaceeth_1_1protocol/
title: eth::protocol (namespace)
---
Members:
ByteBuffer
EncodeResult
DecodeResult
ValidationResult — Result type for Status validation (void on success, error on mismatch). Uses boost::outcome with StatusValidationError — mirrors go-ethereum's readStatus() return values from eth/protocols/eth/handshake.go.
kStatusMessageId
kStatusHandshakeTimeout — Maximum time to wait for a peer's ETH Status after sending ours. Matches go-ethereum's handshakeTimeout (eth/protocols/eth/handshake.go). If the peer does not reply within this window it is dropped as malicious or mismatched (e.g. a Polygon bor node on the Ethereum P2P network).
kNewBlockHashesMessageId
kTransactionsMessageId
kGetBlockHeadersMessageId
kBlockHeadersMessageId
kGetBlockBodiesMessageId
kBlockBodiesMessageId
kNewBlockMessageId
kNewPooledTransactionHashesMessageId
kGetPooledTransactionsMessageId
kPooledTransactionsMessageId
kUpgradeStatusMessageId
kGetReceiptsMessageId
kReceiptsMessageId
kBlockRangeUpdateMessageId
encode_status
decode_status
decode_status
validate_status — Validate a decoded StatusMessage against our expected chain parameters.
encode_new_block_hashes
decode_new_block_hashes
encode_new_pooled_tx_hashes
decode_new_pooled_tx_hashes
encode_block_range_update
decode_block_range_update
encode_upgrade_status
decode_upgrade_status
encode_get_block_headers
decode_get_block_headers
encode_block_headers
decode_block_headers
encode_get_receipts
decode_get_receipts
decode_get_receipts
encode_receipts
decode_receipts
decode_receipts
encode_get_pooled_transactions
decode_get_pooled_transactions
encode_pooled_transactions
decode_pooled_transactions
encode_get_block_bodies
decode_get_block_bodies
encode_block_bodies
decode_block_bodies
decode_block_bodies
encode_new_block
decode_new_block
decode_new_block
---
source: /SuperGenius/Namespaces/d8/d41/namespaceeth_1_1rpc/
title: eth::rpc (namespace)
---
Members:
RpcBlockTag
AuditSeverity
RpcEndpointState
RpcEndpointErrorCode
ProbeStatus
RpcResult
RpcEnvLookup
load_chainlist_from_json_text — Parse chainid.network chains.json into normalized RPC endpoint configs.
filter_to_configured_chains — Filter endpoint configs to only those matching configured chain IDs.
block_tag_name
make_json_rpc_request
make_eth_chain_id_request
parse_chain_id_response
make_get_block_by_number_request
make_get_logs_request
make_get_transaction_receipt_request
parse_block_number_response
parse_get_logs_response
parse_transaction_receipt_response
audit_rpc_config
to_string
to_string
render_rpc_endpoint_url — Resolve a URL template into a concrete endpoint URL.
build_rpc_endpoint — Materialize a runtime endpoint from configuration.
group_rpc_endpoints — Group endpoints by chain name and chain id with deterministic ordering.
make_receipt_source
load_rpc_manager_config_result_from_json_text — Load RPC manager configuration from JSON text.
load_rpc_manager_config_result_from_json — Load RPC manager configuration from a JSON file.
load_rpc_manager_config_from_json_text — Load RPC manager configuration from JSON text.
load_rpc_manager_config_from_json — Load RPC manager configuration from a JSON file.
to_string
probe_endpoint_chain_id
probe_endpoint_pool
to_string
---
source: /SuperGenius/Namespaces/df/dc1/namespaceethereum/
title: ethereum (namespace)
---
Members:
CurveType — Curve type used by Ethereum keys.
base_field_type — Ethereum base field type.
scalar_field_type — Ethereum scalar field type.
scalar_field_value_type — Ethereum value from the scalar field type.
random_generator_type — Random generator type, to generate new Ethereum keys/addresses.
hash_type — The hash type used by Ethereum address derivation.
generator_type — The deterministic generator used by Ethereum key pair.
padding_policy — Ethereum passing policy.
policy_type — Ethereum policy type.
signature_type — Ethereum signature type.
derivation_hash_type — The hash type used by Ethereum address derivation.
EthereumKeyGenerator::ExtractPubKeyFromField< std::vector< std::uint8_t > >
EthereumKeyGenerator::ExtractPubKeyFromField< EthereumKeyGenerator::PubKeyPair_t >
---
source: /SuperGenius/Namespaces/d1/d45/namespaceevmrelay_1_1examples/
title: evmrelay::examples (namespace)
---
Members:
parse_chain_discovery_default
parse_discovery_fork_filter
load_chain_config_root
load_chain_config_entry
load_default_all_chains
load_fork_hash — Load the latest fork hash from generated chain_enodes.json/.gz.
load_chain_peer_config
load_enr_tree_url — Return the configured EIP-1459 ENR-tree root URL for chain.
apply_chain_discovery_config — Apply data-driven discovery defaults from chains_config.json.
---
source: /SuperGenius/Namespaces/d1/d93/namespaceintx/
title: intx (namespace)
---
Members:
add_with_carry
add_with_carry
operator+
operator+
sub_with_carry
sub_with_carry
operator-
operator-
operator++
operator--
operator++
operator--
fast_add
operator==
operator!=
operator<
operator<=
operator>
operator>=
operator~
operator|
operator&
operator^
operator<<
operator<<
operator>>
operator>>
umul — Full unsigned multiplication 64 x 64 -> 128.
operator*
operator+=
operator-=
operator*=
operator|=
operator&=
operator^=
operator<<=
operator>>=
reciprocal_2by1
reciprocal_3by2
udivrem_2by1
udivrem_3by2
udivrem
sdivrem
operator/
operator%
operator/=
operator%=
uint128
uint192
uint256
uint320
uint384
uint512
is_constant_evaluated
clz_generic
clz_generic
clz
clz
clz
bswap
bswap
bswap
bswap
bswap
bswap
throw_
from_dec_digit
from_hex_digit
from_string
from_string
operator""_u128
to_string
hex
operator==
operator==
operator==
operator!=
operator!=
operator!=
operator<
operator<
operator<
operator<
operator>
operator>
operator>
operator>=
operator>=
operator>=
operator<=
operator<=
operator<=
slt
operator|
operator&
operator^
operator~
operator<<
operator<<
operator>>
operator>>
operator<<
operator>>
operator<<
operator>>
operator>>=
as_words
as_words
as_words
as_words
as_bytes
as_bytes
operator+
operator-
operator-
operator+=
operator-=
umul
operator*
operator*=
exp
count_significant_words
count_significant_bytes
count_significant_bytes
clz
udivrem
sdivrem
operator/
operator%
operator/=
operator%=
bswap
operator+
operator+
operator-
operator-
operator*
operator*
operator/
operator/
operator%
operator%
operator|
operator|
operator&
operator&
operator^
operator^
operator|=
operator&=
operator^=
operator<<=
operator>>=
addmod
mulmod
operator""_u256
operator""_u512
---
source: /SuperGenius/Namespaces/de/d01/namespaceintx_1_1be/
title: intx::be (namespace)
---
Members:
load
load
store — Stores an uint value in a bytes array in big-endian order.
store
trunc
trunc — Stores the truncated value of an uint in the .bytes field of an object of type T.
---
source: /SuperGenius/Namespaces/d6/d76/namespaceintx_1_1be_1_1unsafe/
title: intx::be::unsafe (namespace)
---
Members:
load
store
---
source: /SuperGenius/Namespaces/d5/df7/namespaceintx_1_1internal/
title: intx::internal (namespace)
---
Members:
reciprocal_table — Reciprocal lookup table.
reciprocal_table_item
clz_nonzero — Counts the number of zero leading bits in nonzero argument x.
normalize
udivrem_by1
udivrem_by2
add — s = x + y.
submul — r = x - multiplier * y.
udivrem_knuth
---
source: /SuperGenius/Namespaces/d7/df0/namespaceintx_1_1le/
title: intx::le (namespace)
---
Members:
load
store
---
source: /SuperGenius/Namespaces/dd/d15/namespace_key_generator/
title: KeyGenerator (namespace)
---
Members:
cpp_int
uint256_t
---
source: /SuperGenius/Namespaces/d4/dd1/namespaceplaceholder__verifier/
title: placeholder_verifier (namespace)
---
Members:
placeholder_verifier
use_lookups
batches_num
commitments_num
points_num
poly_num
initial_proof_points_num
round_proof_points_num
fri_roots_num
initial_merkle_proofs_num
initial_merkle_proofs_position_num
initial_merkle_proofs_hash_num
round_merkle_proofs_position_num
round_merkle_proofs_hash_num
final_polynomial_size
lambda
rows_amount
rows_log
total_columns
sorted_columns
permutation_size
zero_indices
table_values_num
gates_amount
gates_selector_indices
constraints_amount
quotient_polys_start
quotient_polys_amount
lookup_sorted_polys_start
D0_size
D0_log
D0_omega
omega
fri_rounds
gates_sizes
unique_points
singles_amount
batches_amount_list
L0_IND
Z_AT_XI_IND
F_CONSOLIDATED_IND
T_CONSOLIDATED_IND
transcript
transcript_challenge
pow_rows_amount
pow2
pow3
pow4
pow5
pow6
pow7
pow8
pow9
pow
fill_singles
generate_challenges
xi_polys
calculate_constraints
gate_argument_verifier
calculate_leaf_hash
---
source: /SuperGenius/Namespaces/dd/d79/namespacerlp/
title: rlp (namespace)
---
Members:
Leftover
EncodingError
DecodingError
StreamingError
EncodingResult
EncodingOperationResult
Result
DecodingResult
StreamingResult
StreamingOperationResult
Address
Hash256
Signature
Bloom
Bytes
ByteView
kEmptyStringCode
kEmptyListCode
kMaxShortStringLen
kMaxShortListLen
kShortStringOffset
kLongStringOffset
kShortListOffset
kLongListOffset
kRlpSingleByteThreshold
kLongPrefixByteSize — Size of the single prefix byte prepended before the big-endian length field in long strings/lists.
kSingleByteStringSize — Minimum encoded size of a single-byte RLP string (prefix byte + payload byte).
is_unsigned_integral_v
is_rlp_encodable_v
is_rlp_decodable_v
encoding_error_to_string
decoding_error_to_string
streaming_error_to_string
hexToString
addAddress
addHash
addSignature
addBloom
readAddress
readHash
readSignature
readBloom
encodeLargeString
encodeChunkedList
decodeLargeString
decodeChunkedList
decodeChunkedListFull
---
source: /SuperGenius/Namespaces/d0/dc4/namespacerlp_1_1base/
title: rlp::base (namespace)
---
Members:
Logger
createLogger — Create a logger instance.
---
source: /SuperGenius/Namespaces/d9/d8b/namespacerlp_1_1base_1_1byte__encoding/
title: rlp::base::byte_encoding (namespace)
---
Members:
ByteBuffer
append_u32_be
append_u64_be
append_uint256_be
append_array
append_length_prefixed_bytes
append_length_prefixed_arrays
---
source: /SuperGenius/Namespaces/d8/d3f/namespacerlp_1_1base_1_1json/
title: rlp::base::json (namespace)
---
Members:
JsonErrorCode
JsonFieldType
JsonResult
JsonParsedObjectPtr
JsonParsedArrayPtr
to_string
parse_object
get_value
get_string
parse_string
parse_string
get_optional_string
get_bool
parse_bool
parse_bool
get_array
get_u8
get_u32
get_u64
parse_size_t
parse_u8
parse_u8
parse_u32
parse_u32
parse_u64
parse_u64
parse_schema_object
parse_schema_object
parse_schema_value
get_parsed_value
get_parsed_string
get_parsed_bool
get_parsed_u8
get_parsed_u32
get_parsed_u64
get_parsed_size
get_parsed_array
get_parsed_object
---
source: /SuperGenius/Namespaces/d9/dc2/namespacerlp_1_1base_1_1parse/
title: rlp::base::parse (namespace)
---
Members:
kHexCharsPerByte
hex_nibble
trim_hex_prefix
uint16_decimal
uint64_decimal
uint64_hex
uint64_hex_quantity
hex_bytes
hex_bytes
ascii_lower
hex_array_string
hex_array
---
source: /SuperGenius/Namespaces/d6/de3/namespacerlp_1_1endian/
title: rlp::endian (namespace)
---
Members:
to_big_compact
from_big_compact
to_big_compact
from_big_compact
to_big_compact< uint8_t >
to_big_compact< uint16_t >
to_big_compact< uint32_t >
to_big_compact< uint64_t >
from_big_compact< uint8_t >
from_big_compact< uint16_t >
from_big_compact< uint32_t >
from_big_compact< uint64_t >
---
source: /SuperGenius/Namespaces/dd/d2d/namespacerlpx/
title: rlpx (namespace)
---
Members:
SessionError
AuthError
FramingError
CryptoError
ConnectProgressPhase
SessionState
DisconnectReason
tcp
Result
AuthResult
FramingResult
CryptoResult
VoidResult
AuthVoidResult
FramingVoidResult
CryptoVoidResult
MessageHandler
HelloHandler
DisconnectHandler
PingHandler
PongHandler
EthMessageHandler
ConnectProgressHandler
PublicKey
PrivateKey
Nonce
SharedSecret
AesKey
MacKey
MacDigest
FrameHeader
ByteBuffer
ByteView
MutableByteView
kPublicKeySize
kPrivateKeySize
kNonceSize
kSharedSecretSize
kAesKeySize
kMacKeySize
kUncompressedPubKeyPrefixSize — Uncompressed secp256k1 public key: 0x04 prefix byte + 64 bytes = 65 bytes total.
kUncompressedPubKeySize
kUncompressedPubKeyPrefix
kHmacSha256Size — HMAC-SHA256 full digest output size.
kAesBlockSize
kMacSize
kFrameHeaderSize
kEciesMacSize — ECIES / EIP-8 wire constants.
kEciesOverheadSize
kEip8LengthPrefixSize
kEip8AuthPaddingSize
kMaxEip8HandshakePacketSize
kFrameLengthSize — Number of bytes used to encode the frame length inside the frame header.
kFrameHeaderDataOffset
kFrameHeaderWithMacSize
kFramePaddingAlignment
kFrameLengthMsbOffset
kFrameLengthMiddleOffset
kFrameLengthLsbOffset
kFrameLengthMsbShift
kFrameLengthMiddleShift
kFrameLengthLsbShift
kFrameHeaderStaticRlpBytes
kEcdsaCompactSigSize
kEcdsaRecoveryIdSize
kEcdsaSigSize
kAuthVersionSize — Version byte appended to auth/ack messages (RLPx v4 EIP-8).
kAuthVersion
kMaxFrameSizeMiB — Maximum RLPx frame payload: 16 MiB.
kMaxFrameSize
kHelloMessageId
kDisconnectMessageId
kPingMessageId
kPongMessageId
kProtocolVersion
kTcpConnectionTimeout
kProtocolHandshakeTimeout
kSendLoopPollInterval
to_string
to_string
to_string
to_string
---
source: /SuperGenius/Namespaces/d7/df1/namespacerlpx_1_1auth/
title: rlpx::auth (namespace)
---
Members:
kAuthSize
kAckSize — ack plaintext = eph_pubkey(64) + nonce(32) + ver(1) = 97
derive_frame_secrets — Derive RLPx frame secrets from authenticated handshake key material.
---
source: /SuperGenius/Namespaces/d0/d85/namespacerlpx_1_1detail/
title: rlpx::detail (namespace)
---
Members:
to_rlp_view
from_rlp_view
to_rlp_bytes
from_rlp_bytes
---
source: /SuperGenius/Namespaces/d4/d7a/namespacerlpx_1_1protocol/
title: rlpx::protocol (namespace)
---
Members:
reason_to_byte
byte_to_reason
---
source: /SuperGenius/Namespaces/d7/dc1/namespacerlpx_1_1socket/
title: rlpx::socket (namespace)
---
Members:
tcp
connect_with_timeout
connect_with_timeout — Connect to remote endpoint with timeout.
---
source: /SuperGenius/Namespaces/d2/d2b/namespacesgns/
title: sgns (namespace)
---
Members:
ChainlistFetcher — Fetches the chainlist dataset (JSON text) used to discover public RPC URLs at startup.
AccountSource
TransportFactory — Factory callable that produces a JsonRpcTransport from a URL and timeout.
EscrowDataPair
UTXOTxParameters — Pair of signed inputs and destination outputs that make up a UTXO transaction payload.
kBridgeSourceBurnedSig — Canonical Solidity event signatures for bridge events. Single source of truth — shared by watch registration, catch-up scan, and RPC endpoint validation.
kBridgeOutInitiatedSig
kGeniusValidatorRegistered
kMigrationValidatorRegistered — Static instance to trigger registration of the MigrationInputValidator before main() starts.
MAX_PUBSUB_TX_BYTES
NONCE_SUBJECT_TYPE
TASK_RESULT_SUBJECT_TYPE
REGISTRY_BATCH_SUBJECT_TYPE
FILE_NAME
BridgeRelayerLogger — Returns a new instance of the BridgeRelayer logger.
InputValidatorLogger
GeniusNodeLogger
generate_uuid_with_ipfs_id
operator<<
operator>>
to_string — Convert a byte array to a hexadecimal string.
isLittleEndian — Checks if the architecture is little endian.
Vector2Num — Converts a little-endian byte vector into a number.
Vector2Num
Vector2Num
Num2Vector — Converts a number into a byte vector (little-endian).
HexASCII2Num — Converts a hexadecimal ASCII char array into a number.
HexASCII2NumStr — Converts a hexadecimal ASCII char array into a vector of numbers.
AdjustEndianess — Adjust endianess if needed.
Uint256ToString
make_visitor — Creates a compile-time visitor from a set of lambdas.
visit_in_place — Applies an in-place visitor to a boost::variant.
match — apply Matcher to optional T
match_in_place — construct visitor from Fs and apply it to optional T
ConsensusManagerLogger
ProposalSigningBytes — Builds canonical bytes used to sign a consensus proposal.
VoteSigningBytes — Builds canonical bytes used to sign a consensus vote.
VoteBundleSigningBytes — Builds canonical bytes used to sign a consensus vote bundle.
ComputeProposalId — Computes deterministic proposal id from proposal content.
ValidateProposal — Validates proposal basic shape, signature, and computed id.
decodeChunkedTransfer
InitGeniusSDKAndroid
GetSnarkFromProto
---
source: /SuperGenius/Namespaces/d4/dcb/namespacesgns_1_1base/
title: sgns::base (namespace)
---
Members:
BlobError
UnhexError — error codes for exceptions that may occur during unhexing
Hash64
Hash128
Hash256
Hash512
Logger
operator<< — scale-encodes blob instance to stream
operator>> — decodes blob instance from stream
operator<<
operator<<
operator<< — override operator<< for all streams except std::ostream
operator>> — decodes buffer object from stream
hex_upper — Converts bytes to uppercase hex representation.
hex_lower — Converts bytes to hex representation.
IsHexAddress — Checks whether a string is a 128-character lowercase hexadecimal address.
unhex — Converts hex representation to bytes.
unhexWith0x — Unhex hex-string with 0x in the begining.
createLogger — Create a logger instance.
raise — throws outcome::result error as boost exception
raise — throws outcome::result error made of error as boost exception
operator<
---
source: /SuperGenius/Namespaces/d4/dd0/namespacesgns_1_1crdt/
title: sgns::crdt (namespace)
---
Members:
CrdtOptions
CrdtDatastore
HierarchicalKey
GraphsyncDAGSyncer
RocksdbDatastore
IpfsRocksDb
GossipPubSub
GraphsyncImpl
CryptoProvider
KeyMarshaller
KeyValidator
CRDTBroadcast
CRDTSet
---
source: /SuperGenius/Namespaces/df/d6e/namespacesgns_1_1crypto/
title: sgns::crypto (namespace)
---
Members:
twox_64
twox_128
blake2b_128
twox_256
blake2b_256
keccak_256
blake2s_256
sha2_256
sha2_256
sha256
sha256
sha256
make_twox64
make_twox64
make_twox128
make_twox128
make_twox256
make_twox256
---
source: /SuperGenius/Namespaces/d1/dec/namespacesgns_1_1input__validator__constants/
title: sgns::input_validator_constants (namespace)
---
Members:
HASH256_BYTES
SERIALIZED_UINT32_BYTES
SERIALIZED_UINT64_BYTES
OUTPUT_INDEX_OFFSET
OWNER_ADDRESS_LENGTH_OFFSET
OWNER_ADDRESS_OFFSET
TOKEN_ID_BYTES_IN_PAYLOAD
AMOUNT_BYTES_IN_PAYLOAD
ESCROW_LOCK_OUTPUT_INDEX
TRANSFER_TX_TYPE
---
source: /SuperGenius/Namespaces/d6/d25/namespacesgns_1_1ipfs__bitswap/
title: sgns::ipfs_bitswap (namespace)
---
Header file for the distrubuted processing node creativeid00
Header file for subtask queue accessor implementation creativeid00
---
source: /SuperGenius/Namespaces/d4/d75/namespacesgns_1_1ipfs__pubsub/
title: sgns::ipfs_pubsub (namespace)
---
Header file for subtask queue channel implementation creativeid00
---
source: /SuperGenius/Namespaces/d1/db4/namespacesgns_1_1multisig/
title: sgns::multisig (namespace)
---
Members:
SignatureBytes
CollectedSignatures
VerifyPayloadSignature — Verifies a signature over an arbitrary raw-byte payload. Delegates entirely to GeniusAccount::VerifySignature; no custom crypto or signing-bytes construction is performed here (the payload is assumed already-canonical).
---
source: /SuperGenius/Namespaces/df/d6a/namespacesgns_1_1processing/
title: sgns::processing (namespace)
---
Header file for the distrubuted processing Room creativeid00
Header file for the distributed processing Room creativeid00
Header file for the distributed subtasks queue creativeid00
Header file for subtask queue accessor interface creativeid00
Header file for subtask queue channel interface creativeid00
Header file for the distributed subtasks queue SuperGenius/Creative00
Header file for the distrubuted task queue creativeid00
Members:
TaskQueueImplLogger
generate_uuid_with_ipfs_id
---
source: /SuperGenius/Namespaces/d9/d4e/namespacesgns_1_1securecrdt/
title: sgns::securecrdt (namespace)
---
Members:
SignerSetSource — Injectable callback resolving the current authorized signer set for a given base_key. NOT hard-wired to TrustedPeerRegistry (which does not exist until Phase 10) - tests inject a fixed-list lambda.
ValidateQuorumThreshold — Validates that threshold is at or above the majority-safety floor for a signer set of size signer_set_size (ceil(0.51*signer_set_size), computed via integer arithmetic).
---
source: /SuperGenius/Namespaces/d1/dc7/namespacesgns_1_1sgprocessing/
title: sgns::sgprocessing (namespace)
---
Header file for base class for processors. Derived classes will handle processing various types of AI/ML processing as needed. Give this to a ProcessingCoreImpl. Justin Church
Header file for processing bool inputs using MNN
Header file for processing buffer inputs using MNN
Header file for processing float inputs using MNN
Header file for processing int inputs using MNN
Header file for processing mat2 inputs using MNN
Header file for processing mat3 inputs using MNN
Header file for processing mat4 inputs using MNN
Header file for processing tensor inputs using MNN
Header file for processing texture1D inputs using MNN
Header file for processing textureCube inputs using MNN
Members:
ProcessingProcessor
---
source: /SuperGenius/Namespaces/da/d41/namespacesgns_1_1sgprocessing_1_1_0d324/
title: sgns::sgprocessing::@324 (namespace)
---
Members:
VolumeLayout
---
source: /SuperGenius/Namespaces/d6/d05/namespacesgns_1_1sgprocessing_1_1_0d325/
title: sgns::sgprocessing::@325 (namespace)
---
Members:
CubeLayout
---
source: /SuperGenius/Namespaces/de/d65/namespacesgns_1_1sgprocessing_1_1_0d329/
title: sgns::sgprocessing::@329 (namespace)
---
Members:
VolumeLayout
---
source: /SuperGenius/Namespaces/d6/ded/namespacesgns_1_1sgprocmanager/
title: sgns::sgprocmanager (namespace)
---
Members:
Logger
createLogger
---
source: /SuperGenius/Namespaces/d1/de3/namespacesgns_1_1sgprocmanagersha/
title: sgns::sgprocmanagersha (namespace)
---
Members:
sha256
---
source: /SuperGenius/Namespaces/d0/dbf/namespacesgns_1_1storage/
title: sgns::storage (namespace)
---
This file contains convenience typedefs for interfaces from face/, as they are mostly used with Buffer key and value types
Members:
DatabaseError — universal database interface error
Buffer
BufferMap
BufferBatch
ReadOnlyBufferMap
BatchWriteBufferMap
BufferStorage
BufferMapCursor
BlockBasedTableOptions
error_from_rocksdb
GetAuthoritySetKey
GetSetStateKey
GetGenesisBlockHashLookupKey
GetLastFinalizedBlockHashLookupKey
error_as_result
error_as_result
make_slice
make_span
make_buffer
---
source: /SuperGenius/Namespaces/dd/de2/namespacesgns_1_1utxo__address/
title: sgns::utxo_address (namespace)
---
Members:
IsEscrowLockAddress — Checks if the address is a valid escrow lock address (0x-prefixed 64 hex chars)
IsAccountPublicKeyAddress — Checks if the address is a public key.
---
source: /SuperGenius/Namespaces/d5/d58/namespacesgns_1_1utxo__merkle/
title: sgns::utxo_merkle (namespace)
---
Utilities for building deterministic Merkle roots over ordered UTXO payloads.
Members:
kLeafPrefix — Domain separator prefix used for hashed leaf payloads.
kNodePrefix — Domain separator prefix used for hashed internal nodes.
AppendUInt32BE — Appends a 32-bit unsigned integer in big-endian order.
AppendUInt64BE — Appends a 64-bit unsigned integer in big-endian order.
ReadUInt32BE — Reads a 32-bit unsigned integer from big-endian bytes.
ReadUInt64BE — Reads a 64-bit unsigned integer from big-endian bytes.
OutPointKey — Generates a canonical key for a UTXO outpoint, used for deterministic ordering in Merkle tree construction.
SerializeUTXOLeafPayload — Serializes a UTXO into the canonical leaf payload used for Merkle hashing.
HashLeaf — Hashes a serialized UTXO leaf payload with the leaf domain separator.
HashNode — Hashes two child nodes with the internal-node domain separator.
EmptyUTXOMerkleRoot — Returns the canonical root used for an empty UTXO set.
ComputeMerkleRootFromLeafHashes — Reduces a list of leaf hashes into a single Merkle root.
ComputeMerkleRootFromPayloads — Sorts canonical payloads, hashes them as leaves, and computes the Merkle root.
ComputeMerkleRootFromUTXOs — Computes the Merkle root for a given set of UTXOs by serializing them into canonical payloads and hashing them.
---
source: /SuperGenius/Namespaces/d8/d5b/namespacesgns_1_1version/
title: sgns::version (namespace)
---
Members:
MAIN_NET_ID
TEST_NET_ID
DEV_NET_ID
NET_ID_APPENDIX
SGNS_VERSION_APPENDIX
SuperGeniusVersionNum — Retrieves the complete version number of SuperGenius.
SuperGeniusVersionMajor — Retrieves the major version of SuperGenius.
SuperGeniusVersionMinor — Retrieves the minor version of SuperGenius.
SuperGeniusVersionPatch — Retrieves the patch version of SuperGenius.
ProcessingVersion — Retrieves the processing version used by processing task storage keys.
SuperGeniusVersionString — Retrieves the short version string of SuperGenius.
SuperGeniusVersionFullString — Retrieves the full version string of SuperGenius.
SuperGeniusVersionText — Retrieves the display version text of SuperGenius.
GetNetworkID
GetNetAndVersionAppendix
GetNetAndVersionAppendix
SetNetworkId
---
source: /SuperGenius/Namespaces/d8/dcc/namespacestd/
title: std (namespace)
---
STL namespace.
---
source: /SuperGenius/Namespaces/d6/d72/namespaceutil/
title: util (namespace)
---
Members:
to_string — Convert a byte array to a hexadecimal string.
isLittleEndian — Checks if the architecture is little endian.
HexASCII2Num — Converts a hexadecimal ASCII char array into a number.
HexASCII2NumStr — Converts a hexadecimal ASCII char array into a vector of numbers.
AdjustEndianess — Adjust endianess if needed.
---
source: /SuperGenius/Files/de/d47/chain__config_8hpp/
title: chain_config.hpp (file)
---
Members:
parse_chain_discovery_default
parse_discovery_fork_filter
load_chain_config_root
load_chain_config_entry
load_default_all_chains
load_fork_hash — Load the latest fork hash from generated chain_enodes.json/.gz.
load_chain_peer_config
load_enr_tree_url — Return the configured EIP-1459 ENR-tree root URL for chain.
apply_chain_discovery_config — Apply data-driven discovery defaults from chains_config.json.
---
source: /SuperGenius/Files/d5/dae/test__discovery_8cpp/
title: test_discovery.cpp (file)
---
Members:
kMainnetNetworkId
kEthOffset
kForkHashChainKey
kChainPeerCacheChainKey
kChainPeersUrlDefault
kMainnetForkHashFallback
hex_to_nibble
hash256_from_hex
all_chain_targets
mainnet_genesis
dial_connect_only
load_chain_fork_id
enqueue_chain_peers
seed_bootnodes
load_bootstrap_peers
create_chain_runtime
main
---
source: /SuperGenius/Files/d8/d72/test__discv5__connect_8cpp/
title: test_discv5_connect.cpp (file)
---
Members:
kSepoliaNetworkId
kEthOffset
kSepoliaRlpxPort
kSepoliaForkHashFallback
pubkey_to_hex
sepolia_genesis
is_publicly_routable_ip
subnet_key_v4_24
is_candidate_blocked
dial_connect_only
main
---
source: /SuperGenius/Files/dd/d72/test__enr__survey_8cpp/
title: test_enr_survey.cpp (file)
---
Members:
format_hash4 — Format a 4-byte array as "aa bb cc dd".
main
---
source: /SuperGenius/Files/dc/d28/discv5__crawl_8cpp/
title: discv5_crawl.cpp (file)
---
Members:
main
---
source: /SuperGenius/Files/d6/dd4/eth__watch_8cpp/
title: eth_watch.cpp (file)
---
Members:
main
---
source: /SuperGenius/Files/d5/d3f/eth__watch__example__test_8cpp/
title: eth_watch_example_test.cpp (file)
---
Members:
main
---
source: /SuperGenius/Files/db/dc8/byte__encoding_8hpp/
title: byte_encoding.hpp (file)
---
Members:
ByteBuffer
append_u32_be
append_u64_be
append_uint256_be
append_array
append_length_prefixed_bytes
append_length_prefixed_arrays
---
source: /SuperGenius/Files/df/d62/json__utility_8hpp/
title: json_utility.hpp (file)
---
Members:
JsonErrorCode
JsonFieldType
JsonResult
JsonParsedObjectPtr
JsonParsedArrayPtr
to_string
parse_object
get_value
get_string
parse_string
parse_string
get_optional_string
get_bool
parse_bool
parse_bool
get_array
get_u8
get_u32
get_u64
parse_size_t
parse_u8
parse_u8
parse_u32
parse_u32
parse_u64
parse_u64
parse_schema_object
parse_schema_object
parse_schema_value
get_parsed_value
get_parsed_string
get_parsed_bool
get_parsed_u8
get_parsed_u32
get_parsed_u64
get_parsed_size
get_parsed_array
get_parsed_object
---
source: /SuperGenius/Files/da/d0a/parse__utility_8hpp/
title: parse_utility.hpp (file)
---
Members:
kHexCharsPerByte
hex_nibble
trim_hex_prefix
uint16_decimal
uint64_decimal
uint64_hex
uint64_hex_quantity
hex_bytes
hex_bytes
ascii_lower
hex_array_string
hex_array
---
source: /SuperGenius/Files/da/dfc/rlp-logger_8hpp/
title: rlp-logger.hpp (file)
---
Members:
Logger
createLogger — Create a logger instance.
---
source: /SuperGenius/Files/d9/df1/discovered__peer_8hpp/
title: discovered_peer.hpp (file)
---
Members:
NodeId — Node identifier — 64-byte uncompressed secp256k1 public key (without the 0x04 prefix).
---
source: /SuperGenius/Files/d0/d86/bootstrap__peers_8hpp/
title: bootstrap_peers.hpp (file)
---
Members:
BootstrapCacheRefreshResult
BootstrapChainConfig
BootstrapSignatureVerificationResult
bootstrap_cache_json_path
find_bootstrap_peers_json_path
download_bootstrap_json
write_bootstrap_cache_json_if_changed
refresh_bootstrap_cache_json
load_bootstrap_peers_from_json_text
load_bootstrap_peers_from_json
load_bootstrap_fork_id_hash_from_json_text
load_bootstrap_fork_id_hash_from_json
load_bootstrap_chain_config_from_json_text
load_bootstrap_chain_config_from_json
verify_bootstrap_json_signature
---
source: /SuperGenius/Files/dc/dba/chain__peers_8hpp/
title: chain_peers.hpp (file)
---
Members:
ChainDiscoveryDefault
DiscoveryForkFilter
chain_peer_cache_json_path — Return the default local cache path for chain_enodes.json next to the executable.
find_chain_peer_cache_json_path — Locate a local chain peer cache JSON file.
download_chain_peer_cache_json — Download the chain peer cache JSON payload from a remote URL. Supports either raw JSON or gzip-compressed JSON bodies.
write_chain_peer_cache_json_if_changed — Write the chain peer JSON cache only when the contents changed.
refresh_chain_peer_cache_json — Refresh a local chain peer cache from a remote URL.
make_validated_peer_from_enode — Parse an enode:// peer URI into a validated peer entry.
make_validated_peer_from_enr — Parse an enr: peer URI into a validated peer entry.
load_chain_peers_from_json_text — Load cached peers for a specific chain from JSON text.
load_chain_peers_from_json — Load cached peers for a specific chain from a JSON or gzip-compressed JSON file.
load_chain_fork_id_hash_from_json_text — Load the first available peer fork hash for a specific chain from JSON text.
load_chain_fork_id_hash_from_json — Load the first available peer fork hash for a specific chain from a JSON or gzip-compressed JSON file.
load_chain_peer_config_from_json_text — Load the parsed chain configuration from JSON text.
load_chain_peer_config_from_json — Load the parsed chain configuration from a JSON or gzip-compressed JSON file.
verify_chain_peer_cache_json_signature — Verify the top-level chain_enodes.json signature.
---
source: /SuperGenius/Files/d6/d8a/dial__scheduler_8hpp/
title: dial_scheduler.hpp (file)
---
Members:
DialFn
DialFeedbackFn — Callback signature for dial/session exit feedback.
FilterFn — Predicate applied to a DiscoveredPeer before it is enqueued for dialing. Return true to allow dialing, false to drop. When unset (nullptr), all peers are accepted. Mirrors go-ethereum UDPv4::NewNodeFilter (eth/protocols/eth/discovery.go).
make_fork_id_filter — Create a FilterFn that accepts only peers whose ENR eth entry carries a ForkId with the given 4-byte hash (CRC32 of genesis + applied forks).
---
source: /SuperGenius/Files/d6/d86/discovery_8hpp/
title: discovery.hpp (file)
---
Members:
udp
NodeID
IPAddress
ec
DEFAULT_discv4_PORT
EncodePing
EncodeEndpoint
EncodePing
test_ping
---
source: /SuperGenius/Files/db/d6a/discv4__client_8hpp/
title: discv4_client.hpp (file)
---
Members:
udp
NodeId
PeerDiscoveredCallback
ErrorCallback
---
source: /SuperGenius/Files/d2/dfa/discv4__constants_8hpp/
title: discv4_constants.hpp (file)
---
Members:
kWireHashSize — Outer Keccak-256 hash.
kWireSigSize — Recoverable ECDSA signature.
kWirePacketTypeSize — Single packet-type byte.
kWireRecoveryIdSize — Recoverable ECDSA recovery id.
kWireCompactSigSize
kWireHeaderSize
kWirePacketTypeOffset
kNodeIdSize — Node identity.
kNodeIdHexSize
kUncompressedPubKeySize — 0x04 prefix + 64 bytes
kIPv4Size — Network.
kUdpBufferSize
kPacketTypePing — Packet type identifiers.
kPacketTypePong
kPacketTypeFindNode
kPacketTypeNeighbours
kPacketTypeEnrRequest
kPacketTypeEnrResponse
kProtocolVersion — Protocol version advertised in PING packets.
kPacketExpirySeconds — Default packet expiry window (seconds)
kDefaultPingTimeout — Default networking timers.
kDefaultPeerExpiry
kDefaultDialHistoryExpiry
kEnrSeqSize — ENR sequence number field size in PONG (optional, 6-byte big-endian uint48)
---
source: /SuperGenius/Files/d5/d36/discv4__error_8hpp/
title: discv4_error.hpp (file)
---
Members:
discv4Error — Discovery v4 protocol error codes.
Result — Result type for Discovery v4 operations.
VoidResult — Result type for Discovery v4 operations without return value.
to_string — Convert error code to human-readable string.
---
source: /SuperGenius/Files/dc/dea/discv4__packet_8hpp/
title: discv4_packet.hpp (file)
---
Members:
udp
---
source: /SuperGenius/Files/d3/d8c/packet__factory_8hpp/
title: packet_factory.hpp (file)
---
Members:
PacketError
udp
PacketResult
SendCallback
---
source: /SuperGenius/Files/d4/db4/discv5__client_8hpp/
title: discv5_client.hpp (file)
---
Members:
udp
---
source: /SuperGenius/Files/d9/df8/discv5__constants_8hpp/
title: discv5_constants.hpp (file)
---
Members:
kDefaultUdpPort — Default UDP port for discv5 (IANA-assigned).
kDefaultTcpPort — Default TCP/RLPx port advertised to discovered peers.
kNodeIdBytes — Bytes in an uncompressed secp256k1 public key WITHOUT the 0x04 prefix. This is the 64-byte "node id" used by discv4 and passed to DialHistory.
kCompressedKeyBytes — Bytes in a compressed secp256k1 public key (03/02 prefix + 32 bytes).
kPrivateKeyBytes — Bytes in a secp256k1 private key.
kUncompressedPrefixLen — Bytes in the 0x04 uncompressed-point prefix.
kUncompressedPubKeyPrefix
kUncompressedPubKeyDataOffset
kKeccak256Bytes — Keccak-256 (legacy) digest size in bytes.
kIPv4Bytes — IPv4 address wire size in bytes.
kIPv6Bytes — IPv6 address wire size in bytes.
kIPv4OctetMsb — Byte offset of the most-significant octet in a 4-byte IPv4 field.
kIPv4Octet1 — Byte offset of the second octet.
kIPv4Octet2 — Byte offset of the third octet.
kIPv4OctetLsb — Byte offset of the least-significant octet.
kIPv4MsbShift — Left-shift amount to place the MSB octet in a uint32 (big-endian).
kIPv4Octet1Shift — Left-shift amount for the second octet.
kIPv4Octet2Shift — Left-shift amount for the third octet.
kIPv4LsbShift — Left-shift amount for the least-significant octet (no shift).
kMaxPortBytes — Maximum bytes an RLP-encoded UDP/TCP port occupies (big-endian uint16).
kForkHashBytes — Byte count of the fork-hash field inside an ENR "eth" entry.
kProtocolIdBytes — Byte length of the "discv5" protocol-ID magic string.
kProtocolId — The discv5 packet protocol-ID string.
kGcmNonceBytes — Byte length of the AES-GCM nonce used for message encryption.
kMaskingIvBytes — Byte length of the masking IV that precedes the static header.
kWhoareyouIdNonceBytes — Byte length of the WHOAREYOU id-nonce field.
kMinPacketBytes — Minimum valid discv5 packet size (go-ethereum minPacketSize).
kMaxPacketBytes — Maximum valid discv5 packet size in bytes.
kAes128KeyBytes — AES-128 session key size in bytes.
kGcmTagBytes — AES-GCM authentication tag size in bytes.
kRandomMessageCiphertextBytes — Random encrypted payload size used for pre-handshake message placeholders.
kFindNodeDistanceAll — FINDNODE distance that requests the full routing table (log2 space upper bound + 1).
kHkdfFirstBlockCounter — Single-byte HKDF expansion block counter used for the first output block.
kMessageTypePrefixBytes — Byte size of the leading message-type prefix in decrypted discv5 payloads.
kNodesResponseCountSingle — Number of ENR records returned by the local single-record NODES reply helper.
kEnrMaxBytes — Maximum total size of a serialised ENR record (EIP-778 SizeLimit).
kEnrSigBytes — Compact secp256k1 ECDSA signature size stored in an ENR (no recid).
kEnrPrefixLen — Byte length of the "enr:" URI prefix.
kEnrPrefix — The "enr:" URI prefix string.
kInitialEnrSeq — Initial ENR sequence number for locally generated records.
kIdentitySchemeV4 — ENR identity scheme string for secp256k1-v4.
kIdentitySchemeV4Bytes
kEnrKeyId — Common ENR field key strings and lengths.
kEnrKeyIdBytes
kEnrKeyIp
kEnrKeyIpBytes
kEnrKeySecp256k1
kEnrKeySecp256k1Bytes
kEnrKeyTcp
kEnrKeyTcpBytes
kEnrKeyUdp
kEnrKeyUdpBytes
kBase64UpperCount — Number of upper-case letters (A–Z) in the base64url alphabet.
kBase64LowerCount — Number of lower-case letters (a–z) in the base64url alphabet.
kBase64DigitCount — Number of decimal digits (0–9) in the base64url alphabet.
kBase64LowerStart — Start index of the lower-case letter block (after A–Z).
kBase64DigitStart — Start index of the digit block (after A–Z and a–z).
kBase64DashIndex — Table index for the '-' character in base64url.
kBase64UnderIndex — Table index for the '_' character in base64url.
kBase64Invalid — Sentinel value meaning "not a valid base64url character".
kBase64BitsPerChar — Number of bits encoded by one base64 character.
kBase64BitsPerByte — Number of bits in one output byte.
kDefaultMaxConcurrent — Default maximum concurrent outbound FINDNODE queries.
kDefaultQueryIntervalSec — Default interval between crawler sweep rounds (seconds).
kDefaultPeerExpirySec — Seconds before an unseen peer is evicted from the peer table.
kMaxBootnodeEnrs — Maximum bootstrap ENR entries accepted per chain source.
kUncompressedKeyBytes — Total byte count of an uncompressed public key including the 0x04 prefix.
kStaticHeaderBytes — Byte count of the static header (derived from wire struct, NOT a magic literal).
kStaticHeaderVersionOffset
kStaticHeaderFlagOffset
kStaticHeaderNonceOffset
kStaticHeaderAuthSizeOffset
kWhoareyouAuthDataBytes — Byte count of WHOAREYOU auth data.
kHandshakeAuthSizeFieldBytes — HANDSHAKE auth-data layout prefixes.
kHandshakeAuthSizeFieldCount
kHandshakeAuthSigSizeOffset
kHandshakeAuthPubkeySizeOffset
kHandshakeAuthFixedBytes
kStaticPacketBytes — Total fixed bytes at the front of every discv5 packet: masking IV + static header.
kFlagMessage — Flag value for an ordinary encrypted message packet.
kFlagWhoareyou — Flag value for a WHOAREYOU session-challenge packet.
kFlagHandshake — Flag value for a HANDSHAKE message.
kMsgPing — PING message type byte.
kMsgPong — PONG message type byte.
kMsgFindNode — FINDNODE message type byte.
kMsgNodes — NODES message type byte.
kMsgTalkReq — TALKREQ message type byte.
kMsgTalkResp — TALKRESP message type byte.
kProtocolVersion — discv5 protocol version (current).
---
source: /SuperGenius/Files/d4/dde/discv5__error_8hpp/
title: discv5_error.hpp (file)
---
Members:
discv5Error — Enumeration of all error conditions that can be returned by the discv5 module.
Result — Result type for discv5 operations that return a value.
VoidResult — Result type for discv5 operations that return nothing on success.
to_string — Convert a discv5Error code to a human-readable C string.
---
source: /SuperGenius/Files/d3/d65/discv5__types_8hpp/
title: discv5_types.hpp (file)
---
Members:
PeerDiscoveredCallback — Invoked when a new valid peer has been discovered and passed all configured filters (chain filter, address validation, dedup).
ErrorCallback — Invoked when a non-fatal error occurs inside the crawler (e.g. a malformed ENR from a remote node).
---
source: /SuperGenius/Files/d9/d91/enr__tree_8hpp/
title: enr_tree.hpp (file)
---
Members:
DnsTxtLookupFn — DNS TXT lookup callback used by the ENR-tree resolver.
---
source: /SuperGenius/Files/d2/d58/abi__decoder_8hpp/
title: abi_decoder.hpp (file)
---
Members:
AbiParamKind — Identifies one parameter in an event/function signature.
AbiValue — A decoded ABI value. Only the types needed for common ERC-20/ERC-721 events are included: address, uint256, bytes32, bool, bytes, string.
keccak256 — Compute Keccak-256 of an arbitrary byte sequence.
keccak256 — Compute Keccak-256 of a string (e.g. an event signature).
event_signature_hash — Compute the event topic[0] hash from a human-readable signature.
decode_abi_word — Decode a single 32-byte ABI word from a topic or head slot.
decode_indexed_param — Decode an indexed event parameter from a topic hash.
decode_log_data — Decode the ABI-encoded data field of a log entry.
decode_log — Fully decode a log entry given its event descriptor.
---
source: /SuperGenius/Files/dd/dcc/bridge__event_8hpp/
title: bridge_event.hpp (file)
---
Members:
ReceiptLogVerificationError
operator==
operator<
bridge_event_key
compute_bridge_message_id — Canonical message identifier for an EVM bridge source event.
bridge_message_id — Convenience overload that extracts canonical fields from a claim.
verify_receipt_log
---
source: /SuperGenius/Files/d4/dc0/bridge__observation_8hpp/
title: bridge_observation.hpp (file)
---
Members:
bridge_event_claim_payload — Canonical bytes for bridge-event consensus payloads and watcher signatures.
decode_bridge_event_claim_payload
bridge_event_domain_separator
bridge_event_claim_hash
observer_address_from_private_key
sign_bridge_event_claim
verify_bridge_event_observation
---
source: /SuperGenius/Files/d4/dff/chainlist__provider_8hpp/
title: chainlist_provider.hpp (file)
---
Members:
load_chainlist_from_json_text — Parse chainid.network chains.json into normalized RPC endpoint configs.
filter_to_configured_chains — Filter endpoint configs to only those matching configured chain IDs.
---
source: /SuperGenius/Files/dc/d57/eth__constants_8hpp/
title: eth_constants.hpp (file)
---
Members:
kAbiWordSize — EVM ABI encoding constants (ABI spec: https://docs.soliditylang.org/en/latest/abi-spec.html)
kAbiAddressSize — Ethereum address is 20 bytes.
kAbiAddressPadding — 12 bytes of left-padding
kAbiBoolByteIndex — Canonical bool lives in rightmost byte (index 31)
kRlpListPrefixMin — EVM / RLP encoding thresholds.
kTypedTxPrefixSize — EIP-2718 typed transaction envelope.
kDefaultChainId — Default chain ID used when none is specified (Ethereum mainnet)
kKeccak256Size — Keccak-256 digest size (bytes)
---
source: /SuperGenius/Files/d2/daa/eth__handshake_8hpp/
title: eth_handshake.hpp (file)
---
Members:
PerformEthStatusHandshake — Execute the ETH Status startup handshake for a negotiated ETH session.
---
source: /SuperGenius/Files/d9/d07/eth__handshake__guard_8hpp/
title: eth_handshake_guard.hpp (file)
---
Members:
HandshakeMessageDisposition — Result of processing one inbound ETH handshake-phase message.
HandleEthHandshakeMessage — Process one inbound ETH handshake-phase message.
NormalizeEthWireMessageId — Return the ETH-local message id for a wire-level message.
ExtractLatestBlockNumber — Return the latest block number from a validated ETH Status message.
DecodeValidatedStatusMessage — Decode and validate an inbound ETH Status message.
---
source: /SuperGenius/Files/d5/d79/eth__peer__queue_8hpp/
title: eth_peer_queue.hpp (file)
---
Members:
make_eth_peer_queue — Create an eth-watch peer queue and preload the chain cache split.
---
source: /SuperGenius/Files/da/dbe/eth__peer__session_8hpp/
title: eth_peer_session.hpp (file)
---
Members:
EthStatusAcceptedHandler — Callback invoked when the remote ETH Status message is accepted.
EthStatusRemoteDisconnectHandler — Callback invoked when the remote sends an RLPx Disconnect during ETH Status.
BuildLocalStatusMessage — Build the local ETH Status message for the negotiated ETH protocol version.
ValidateRemoteStatusMessage — Validate a remote ETH Status message against negotiated version and chain.
StartEthStatusHandshake — Install post-handshake ETH inbound handling on a negotiated session.
---
source: /SuperGenius/Files/dd/d48/eth__receipt__source_8hpp/
title: eth_receipt_source.hpp (file)
---
Members:
ReceiptBatchHandler
checked_receipt_log_ordinal — Narrow a receipt-local log ordinal without truncation.
make_event_filter
---
source: /SuperGenius/Files/de/d8d/eth__types_8hpp/
title: eth_types.hpp (file)
---
Members:
EthMessageFieldType
StatusValidationError — Errors returned by validate_status(), mirroring go-ethereum's readStatus error values from eth/protocols/eth/handshake.go.
Hash256
Address
Bloom
StatusMessage — Dual-version Status message (ETH/68 or ETH/69).
kEthProtocolVersion66
kEthProtocolVersion67
kEthProtocolVersion68
kEthProtocolVersion69
get_common_fields — Extract fields common to both ETH/68 and ETH/69 Status messages.
---
source: /SuperGenius/Files/d8/d9d/eth__watch__cli_8hpp/
title: eth_watch_cli.hpp (file)
---
Members:
parse_address — Parse a 0x-prefixed or bare 40-hex-char Ethereum address.
event_registry — Process-wide singleton registry, pre-populated with well-known events.
infer_params — Convenience wrapper: look up sig in the global registry. Replaces the old infer_params() free function.
build_service_watch_specs — Convert CLI watch flags into service-level watch specs.
build_service_config — Build the production service config used by cache-backed CLI modes.
---
source: /SuperGenius/Files/d7/d88/eth__watch__dialer_8hpp/
title: eth_watch_dialer.hpp (file)
---
Members:
make_eth_watcher_pool — Create the shared watcher connection pool used by chain peer dialers.
start_eth_watch_chain_peer_dialing — Create a per-chain dial scheduler and enqueue the provided peer candidates.
---
source: /SuperGenius/Files/d9/ddf/eth__watch__service_8hpp/
title: eth_watch_service.hpp (file)
---
Members:
EthWatchDiscoveryMode — Peer source strategy for production eth-watch startup.
EventWatchId — Subscription handle returned by EthWatchService::watch_event().
WatchEventNotificationCallback — Callback invoked for each decoded filtered event with chain/session metadata.
DecodedEventCallback — Typed callback for a decoded event log.
SendCallback — Callback used by EthWatchService to send an outgoing eth message.
---
source: /SuperGenius/Files/d9/d92/event__filter_8hpp/
title: event_filter.hpp (file)
---
Members:
WatchId — Registration handle returned by EventWatcher::watch(). Passed back to EventWatcher::unwatch() to remove a subscription.
EventCallback — Callback invoked for every log that matches a registered filter.
---
source: /SuperGenius/Files/d1/dfe/finality__policy_8hpp/
title: finality_policy.hpp (file)
---
Members:
FinalityHeadKind
finality_policy_for_chain_id
choose_finality_head
is_final_under_policy
---
source: /SuperGenius/Files/de/d8e/json__rpc_8hpp/
title: json_rpc.hpp (file)
---
Members:
RpcBlockTag
block_tag_name
make_json_rpc_request
make_get_block_by_number_request
make_get_logs_request
make_get_transaction_receipt_request
make_eth_chain_id_request
parse_chain_id_response
parse_block_number_response
parse_get_logs_response
parse_transaction_receipt_response
---
source: /SuperGenius/Files/d8/dde/eth_2messages_8hpp/
title: eth/messages.hpp (file)
---
Members:
ByteBuffer
EncodeResult
DecodeResult
ValidationResult — Result type for Status validation (void on success, error on mismatch). Uses boost::outcome with StatusValidationError — mirrors go-ethereum's readStatus() return values from eth/protocols/eth/handshake.go.
kStatusMessageId
kStatusHandshakeTimeout — Maximum time to wait for a peer's ETH Status after sending ours. Matches go-ethereum's handshakeTimeout (eth/protocols/eth/handshake.go). If the peer does not reply within this window it is dropped as malicious or mismatched (e.g. a Polygon bor node on the Ethereum P2P network).
kNewBlockHashesMessageId
kTransactionsMessageId
kGetBlockHeadersMessageId
kBlockHeadersMessageId
kGetBlockBodiesMessageId
kBlockBodiesMessageId
kNewBlockMessageId
kNewPooledTransactionHashesMessageId
kGetPooledTransactionsMessageId
kPooledTransactionsMessageId
kUpgradeStatusMessageId
kGetReceiptsMessageId
kReceiptsMessageId
kBlockRangeUpdateMessageId
validate_status — Validate a decoded StatusMessage against our expected chain parameters.
encode_status
decode_status
decode_status
encode_new_block_hashes
decode_new_block_hashes
encode_new_pooled_tx_hashes
decode_new_pooled_tx_hashes
encode_block_range_update
decode_block_range_update
encode_upgrade_status
decode_upgrade_status
encode_get_block_headers
decode_get_block_headers
encode_block_headers
decode_block_headers
encode_get_block_bodies
decode_get_block_bodies
encode_block_bodies
decode_block_bodies
decode_block_bodies
encode_new_block
decode_new_block
decode_new_block
encode_get_receipts
decode_get_receipts
decode_get_receipts
encode_receipts
decode_receipts
decode_receipts
encode_get_pooled_transactions
decode_get_pooled_transactions
encode_pooled_transactions
decode_pooled_transactions
---
source: /SuperGenius/Files/d9/da0/objects_8hpp/
title: objects.hpp (file)
---
Members:
TransactionType — Ethereum transaction types per EIP-2718.
Hash256
Address
Bloom
ByteBuffer
EncodeResult
DecodeResult
encode_log_entry
decode_log_entry
encode_access_list_entry
decode_access_list_entry
encode_transaction — Encode a transaction. Typed transactions (EIP-2930, EIP-1559) are prefixed with their type byte before the RLP payload, per EIP-2718.
decode_transaction
encode_receipt
decode_receipt
encode_block_header
decode_block_header
---
source: /SuperGenius/Files/df/dbc/rpc__config__audit_8hpp/
title: rpc_config_audit.hpp (file)
---
Members:
AuditSeverity
audit_rpc_config
to_string
---
source: /SuperGenius/Files/de/da2/rpc__manager_8hpp/
title: rpc_manager.hpp (file)
---
Members:
RpcEndpointState
RpcEndpointErrorCode
RpcResult
RpcEnvLookup
to_string
to_string
render_rpc_endpoint_url — Resolve a URL template into a concrete endpoint URL.
build_rpc_endpoint — Materialize a runtime endpoint from configuration.
group_rpc_endpoints — Group endpoints by chain name and chain id with deterministic ordering.
make_receipt_source
---
source: /SuperGenius/Files/d3/d1c/rpc__manager__config_8hpp/
title: rpc_manager_config.hpp (file)
---
Members:
load_rpc_manager_config_result_from_json_text — Load RPC manager configuration from JSON text.
load_rpc_manager_config_result_from_json — Load RPC manager configuration from a JSON file.
load_rpc_manager_config_from_json_text — Load RPC manager configuration from JSON text.
load_rpc_manager_config_from_json — Load RPC manager configuration from a JSON file.
---
source: /SuperGenius/Files/d1/d3d/rpc__probe_8hpp/
title: rpc_probe.hpp (file)
---
Members:
ProbeStatus
to_string
probe_endpoint_chain_id
probe_endpoint_pool
---
source: /SuperGenius/Files/dd/df0/secp256k1__utility_8hpp/
title: secp256k1_utility.hpp (file)
---
Members:
Secp256k1PrivateKey
secp256k1_address_from_private_key
secp256k1_recover_address
secp256k1_sign_recoverable
DecompressXOnlyPubkey — Decompress a 32-byte X-only secp256k1 public key to a 128-char hex destination.
---
source: /SuperGenius/Files/dd/d3a/common_8hpp/
title: common.hpp (file)
---
Members:
hexToString
---
source: /SuperGenius/Files/d3/dad/constants_8hpp/
title: constants.hpp (file)
---
Members:
Leftover
kEmptyStringCode
kEmptyListCode
kMaxShortStringLen
kMaxShortListLen
kShortStringOffset
kLongStringOffset
kShortListOffset
kLongListOffset
kRlpSingleByteThreshold
kLongPrefixByteSize — Size of the single prefix byte prepended before the big-endian length field in long strings/lists.
kSingleByteStringSize — Minimum encoded size of a single-byte RLP string (prefix byte + payload byte).
---
source: /SuperGenius/Files/df/d89/endian_8hpp/
title: endian.hpp (file)
---
Members:
to_big_compact
from_big_compact
to_big_compact
from_big_compact
---
source: /SuperGenius/Files/df/d52/errors_8hpp/
title: errors.hpp (file)
---
Members:
EncodingError
DecodingError
StreamingError
encoding_error_to_string
decoding_error_to_string
streaming_error_to_string
---
source: /SuperGenius/Files/df/df9/intx_8hpp/
title: intx.hpp (file)
---
Members:
add_with_carry
add_with_carry
operator+
operator+
sub_with_carry
sub_with_carry
operator-
operator-
operator++
operator--
operator++
operator--
fast_add
operator==
operator!=
operator<
operator<=
operator>
operator>=
operator~
operator|
operator&
operator^
operator<<
operator<<
operator>>
operator>>
umul — Full unsigned multiplication 64 x 64 -> 128.
operator*
operator+=
operator-=
operator*=
operator|=
operator&=
operator^=
operator<<=
operator>>=
reciprocal_2by1
reciprocal_3by2
udivrem_2by1
udivrem_3by2
udivrem
sdivrem
operator/
operator%
operator/=
operator%=
__has_builtin
__has_feature
INTX_UNREACHABLE
INTX_UNLIKELY
INTX_REQUIRE
INTX_HAS_BUILTIN_INT128
REPEAT4
REPEAT32
REPEAT256
uint128
uint192
uint256
uint320
uint384
uint512
reciprocal_table — Reciprocal lookup table.
is_constant_evaluated
clz_generic
clz_generic
clz
clz
clz
bswap
bswap
bswap
bswap
bswap
bswap
reciprocal_table_item
throw_
from_dec_digit
from_hex_digit
from_string
from_string
operator""_u128
to_string
hex
operator==
operator==
operator==
operator!=
operator!=
operator!=
operator<
operator<
operator<
operator<
operator>
operator>
operator>
operator>=
operator>=
operator>=
operator<=
operator<=
operator<=
slt
operator|
operator&
operator^
operator~
operator<<
operator<<
operator>>
operator>>
operator<<
operator>>
operator<<
operator>>
operator>>=
as_words
as_words
as_words
as_words
as_bytes
as_bytes
operator+
operator-
operator-
operator+=
operator-=
umul
operator*
operator*=
exp
count_significant_words
count_significant_bytes
count_significant_bytes
clz
clz_nonzero — Counts the number of zero leading bits in nonzero argument x.
normalize
udivrem_by1
udivrem_by2
add — s = x + y.
submul — r = x - multiplier * y.
udivrem_knuth
udivrem
sdivrem
operator/
operator%
operator/=
operator%=
bswap
operator+
operator+
operator-
operator-
operator*
operator*
operator/
operator/
operator%
operator%
operator|
operator|
operator&
operator&
operator^
operator^
operator|=
operator&=
operator^=
operator<<=
operator>>=
addmod
mulmod
operator""_u256
operator""_u512
load
store
load
load
store — Stores an uint value in a bytes array in big-endian order.
store
trunc
trunc — Stores the truncated value of an uint in the .bytes field of an object of type T.
load
store
---
source: /SuperGenius/Files/de/d80/result_8hpp/
title: result.hpp (file)
---
Members:
EncodingResult
EncodingOperationResult
Result
DecodingResult
StreamingResult
StreamingOperationResult
---
source: /SuperGenius/Files/d9/de7/rlp__ethereum_8hpp/
title: rlp_ethereum.hpp (file)
---
Members:
Address
Hash256
Signature
Bloom
addAddress
addHash
addSignature
addBloom
readAddress
readHash
readSignature
readBloom
---
source: /SuperGenius/Files/d1/d25/rlp__streaming_8hpp/
title: rlp_streaming.hpp (file)
---
Members:
encodeLargeString
encodeChunkedList
decodeLargeString
decodeChunkedList
decodeChunkedListFull
---
source: /SuperGenius/Files/df/d73/traits_8hpp/
title: traits.hpp (file)
---
Members:
is_unsigned_integral_v
is_rlp_encodable_v
is_rlp_decodable_v
---
source: /SuperGenius/Files/dd/de3/types_8hpp/
title: types.hpp (file)
---
Members:
Bytes
ByteView
---
source: /SuperGenius/Files/d4/da4/auth__handshake_8hpp/
title: auth_handshake.hpp (file)
---
Members:
kAuthSize
kAckSize — ack plaintext = eph_pubkey(64) + nonce(32) + ver(1) = 97
derive_frame_secrets — Derive RLPx frame secrets from authenticated handshake key material.
---
source: /SuperGenius/Files/da/db6/rlpx__error_8hpp/
title: rlpx_error.hpp (file)
---
Members:
SessionError
AuthError
FramingError
CryptoError
Result
AuthResult
FramingResult
CryptoResult
VoidResult
AuthVoidResult
FramingVoidResult
CryptoVoidResult
to_string
to_string
to_string
to_string
---
source: /SuperGenius/Files/d6/da6/rlpx__session_8hpp/
title: rlpx_session.hpp (file)
---
Members:
ConnectProgressPhase
MessageHandler
HelloHandler
DisconnectHandler
PingHandler
PongHandler
EthMessageHandler
ConnectProgressHandler
---
source: /SuperGenius/Files/da/d9c/rlpx__types_8hpp/
title: rlpx_types.hpp (file)
---
Members:
SessionState
DisconnectReason
PublicKey
PrivateKey
Nonce
SharedSecret
AesKey
MacKey
MacDigest
FrameHeader
ByteBuffer
ByteView
MutableByteView
kPublicKeySize
kPrivateKeySize
kNonceSize
kSharedSecretSize
kAesKeySize
kMacKeySize
kUncompressedPubKeyPrefixSize — Uncompressed secp256k1 public key: 0x04 prefix byte + 64 bytes = 65 bytes total.
kUncompressedPubKeySize
kUncompressedPubKeyPrefix
kHmacSha256Size — HMAC-SHA256 full digest output size.
kAesBlockSize
kMacSize
kFrameHeaderSize
kEciesMacSize — ECIES / EIP-8 wire constants.
kEciesOverheadSize
kEip8LengthPrefixSize
kEip8AuthPaddingSize
kMaxEip8HandshakePacketSize
kFrameLengthSize — Number of bytes used to encode the frame length inside the frame header.
kFrameHeaderDataOffset
kFrameHeaderWithMacSize
kFramePaddingAlignment
kFrameLengthMsbOffset
kFrameLengthMiddleOffset
kFrameLengthLsbOffset
kFrameLengthMsbShift
kFrameLengthMiddleShift
kFrameLengthLsbShift
kFrameHeaderStaticRlpBytes
kEcdsaCompactSigSize
kEcdsaRecoveryIdSize
kEcdsaSigSize
kAuthVersionSize — Version byte appended to auth/ack messages (RLPx v4 EIP-8).
kAuthVersion
kMaxFrameSizeMiB — Maximum RLPx frame payload: 16 MiB.
kMaxFrameSize
kHelloMessageId
kDisconnectMessageId
kPingMessageId
kPongMessageId
kProtocolVersion
kTcpConnectionTimeout
kProtocolHandshakeTimeout
kSendLoopPollInterval
to_rlp_view
from_rlp_view
to_rlp_bytes
from_rlp_bytes
---
source: /SuperGenius/Files/d7/dcc/socket__transport_8hpp/
title: socket_transport.hpp (file)
---
Members:
connect_with_timeout — Connect to remote endpoint with timeout.
---
source: /SuperGenius/Files/d3/d72/json__utility_8cpp/
title: json_utility.cpp (file)
---
Members:
to_string
parse_object
get_value
get_string
parse_string
parse_string
get_optional_string
get_bool
parse_bool
parse_bool
get_array
get_u8
get_u32
get_u64
parse_size_t
parse_u8
parse_u8
parse_u32
parse_u32
parse_u64
parse_u64
parse_schema_object
parse_schema_object
parse_schema_value
get_parsed_value
get_parsed_string
get_parsed_bool
get_parsed_u8
get_parsed_u32
get_parsed_u64
get_parsed_size
get_parsed_array
get_parsed_object
---
source: /SuperGenius/Files/da/d8d/parse__utility_8cpp/
title: parse_utility.cpp (file)
---
Members:
hex_nibble
trim_hex_prefix
uint16_decimal
uint64_decimal
uint64_hex
uint64_hex_quantity
hex_bytes
hex_bytes
ascii_lower
---
source: /SuperGenius/Files/da/dc1/rlp-logger_8cpp/
title: rlp-logger.cpp (file)
---
Members:
createLogger — Create a logger instance.
---
source: /SuperGenius/Files/d1/df8/bootstrap__peers_8cpp/
title: bootstrap_peers.cpp (file)
---
Members:
bootstrap_cache_json_path
find_bootstrap_peers_json_path
download_bootstrap_json
write_bootstrap_cache_json_if_changed
refresh_bootstrap_cache_json
load_bootstrap_peers_from_json_text
load_bootstrap_peers_from_json
load_bootstrap_fork_id_hash_from_json_text
load_bootstrap_fork_id_hash_from_json
load_bootstrap_chain_config_from_json_text
load_bootstrap_chain_config_from_json
verify_bootstrap_json_signature
---
source: /SuperGenius/Files/d4/d52/chain__peers_8cpp/
title: chain_peers.cpp (file)
---
Members:
make_validated_peer_from_enode — Parse an enode:// peer URI into a validated peer entry.
make_validated_peer_from_enr — Parse an enr: peer URI into a validated peer entry.
chain_peer_cache_json_path — Return the default local cache path for chain_enodes.json next to the executable.
find_chain_peer_cache_json_path — Locate a local chain peer cache JSON file.
download_chain_peer_cache_json — Download the chain peer cache JSON payload from a remote URL. Supports either raw JSON or gzip-compressed JSON bodies.
write_chain_peer_cache_json_if_changed — Write the chain peer JSON cache only when the contents changed.
refresh_chain_peer_cache_json — Refresh a local chain peer cache from a remote URL.
load_chain_peers_from_json_text — Load cached peers for a specific chain from JSON text.
load_chain_peers_from_json — Load cached peers for a specific chain from a JSON or gzip-compressed JSON file.
load_chain_fork_id_hash_from_json_text — Load the first available peer fork hash for a specific chain from JSON text.
load_chain_fork_id_hash_from_json — Load the first available peer fork hash for a specific chain from a JSON or gzip-compressed JSON file.
load_chain_peer_config_from_json_text — Load the parsed chain configuration from JSON text.
load_chain_peer_config_from_json — Load the parsed chain configuration from a JSON or gzip-compressed JSON file.
verify_chain_peer_cache_json_signature — Verify the top-level chain_enodes.json signature.
---
source: /SuperGenius/Files/db/dd3/discv4__client_8cpp/
title: discv4_client.cpp (file)
---
Members:
kHashSize
kSigSize
kPacketTypeSize
kPacketHeaderSize
kPacketTypeOffset
kUncompressedPubKey
---
source: /SuperGenius/Files/d6/d4d/discv4__enr__response_8cpp/
title: discv4_enr_response.cpp (file)
---
Members:
kEthKey
---
source: /SuperGenius/Files/d1/dbe/discv4__error_8cpp/
title: discv4_error.cpp (file)
---
Members:
to_string — Convert error code to human-readable string.
---
source: /SuperGenius/Files/dc/dbf/discv5__enr_8cpp/
title: discv5_enr.cpp (file)
---
Members:
kBase64UrlTable — Static decode table for the base64url alphabet (RFC-4648 §5). Index = ASCII code, value = 6-bit group (or kBase64Invalid). Built from the named constants in discv5_constants.hpp so that no bare literals appear in the initialiser.
---
source: /SuperGenius/Files/dd/d76/discv5__error_8cpp/
title: discv5_error.cpp (file)
---
Members:
to_string — Convert a discv5Error code to a human-readable C string.
---
source: /SuperGenius/Files/d1/d2e/abi__decoder_8cpp/
title: abi_decoder.cpp (file)
---
Members:
keccak256 — Compute Keccak-256 of an arbitrary byte sequence.
keccak256 — Compute Keccak-256 of a string (e.g. an event signature).
event_signature_hash — Compute the event topic[0] hash from a human-readable signature.
decode_abi_word — Decode a single 32-byte ABI word from a topic or head slot.
decode_indexed_param — Decode an indexed event parameter from a topic hash.
decode_log_data — Decode the ABI-encoded data field of a log entry.
decode_log — Fully decode a log entry given its event descriptor.
---
source: /SuperGenius/Files/da/d4c/bridge__event_8cpp/
title: bridge_event.cpp (file)
---
Members:
operator==
operator<
bridge_event_key
verify_receipt_log
compute_bridge_message_id — Canonical message identifier for an EVM bridge source event.
---
source: /SuperGenius/Files/de/d9d/bridge__observation_8cpp/
title: bridge_observation.cpp (file)
---
Members:
bridge_event_claim_payload — Canonical bytes for bridge-event consensus payloads and watcher signatures.
decode_bridge_event_claim_payload
bridge_event_domain_separator
bridge_event_claim_hash
observer_address_from_private_key
sign_bridge_event_claim
verify_bridge_event_observation
---
source: /SuperGenius/Files/d5/dbe/chainlist__provider_8cpp/
title: chainlist_provider.cpp (file)
---
Members:
load_chainlist_from_json_text — Parse chainid.network chains.json into normalized RPC endpoint configs.
filter_to_configured_chains — Filter endpoint configs to only those matching configured chain IDs.
---
source: /SuperGenius/Files/dc/d87/eth__handshake_8cpp/
title: eth_handshake.cpp (file)
---
Members:
PerformEthStatusHandshake — Execute the ETH Status startup handshake for a negotiated ETH session.
---
source: /SuperGenius/Files/d7/d79/eth__handshake__guard_8cpp/
title: eth_handshake_guard.cpp (file)
---
Members:
NormalizeEthWireMessageId — Return the ETH-local message id for a wire-level message.
ExtractLatestBlockNumber — Return the latest block number from a validated ETH Status message.
DecodeValidatedStatusMessage — Decode and validate an inbound ETH Status message.
HandleEthHandshakeMessage — Process one inbound ETH handshake-phase message.
---
source: /SuperGenius/Files/da/dad/eth__peer__queue_8cpp/
title: eth_peer_queue.cpp (file)
---
Members:
make_eth_peer_queue — Create an eth-watch peer queue and preload the chain cache split.
---
source: /SuperGenius/Files/d7/d2b/eth__peer__session_8cpp/
title: eth_peer_session.cpp (file)
---
Members:
BuildLocalStatusMessage — Build the local ETH Status message for the negotiated ETH protocol version.
ValidateRemoteStatusMessage — Validate a remote ETH Status message against negotiated version and chain.
PerformEthStatusHandshake — Execute the ETH Status startup handshake for a negotiated ETH session.
StartEthStatusHandshake — Install post-handshake ETH inbound handling on a negotiated session.
---
source: /SuperGenius/Files/da/d64/eth__receipt__source_8cpp/
title: eth_receipt_source.cpp (file)
---
Members:
checked_receipt_log_ordinal — Narrow a receipt-local log ordinal without truncation.
make_event_filter
---
source: /SuperGenius/Files/d5/d7e/eth__watch__service_8cpp/
title: eth_watch_service.cpp (file)
---
Members:
make_eth_watcher_pool — Create the shared watcher connection pool used by chain peer dialers.
start_eth_watch_chain_peer_dialing — Create a per-chain dial scheduler and enqueue the provided peer candidates.
---
source: /SuperGenius/Files/df/dc5/finality__policy_8cpp/
title: finality_policy.cpp (file)
---
Members:
finality_policy_for_chain_id
choose_finality_head
is_final_under_policy
---
source: /SuperGenius/Files/d3/dd1/json__rpc_8cpp/
title: json_rpc.cpp (file)
---
Members:
block_tag_name
make_json_rpc_request
make_eth_chain_id_request
parse_chain_id_response
make_get_block_by_number_request
make_get_logs_request
make_get_transaction_receipt_request
parse_block_number_response
parse_get_logs_response
parse_transaction_receipt_response
---
source: /SuperGenius/Files/da/d6d/eth_2messages_8cpp/
title: eth/messages.cpp (file)
---
Members:
get_common_fields — Extract fields common to both ETH/68 and ETH/69 Status messages.
encode_status
decode_status
decode_status
validate_status — Validate a decoded StatusMessage against our expected chain parameters.
encode_new_block_hashes
decode_new_block_hashes
encode_new_pooled_tx_hashes
decode_new_pooled_tx_hashes
encode_block_range_update
decode_block_range_update
encode_upgrade_status
decode_upgrade_status
encode_get_block_headers
decode_get_block_headers
encode_block_headers
decode_block_headers
encode_get_receipts
decode_get_receipts
decode_get_receipts
encode_receipts
decode_receipts
decode_receipts
encode_get_pooled_transactions
decode_get_pooled_transactions
encode_pooled_transactions
decode_pooled_transactions
encode_get_block_bodies
decode_get_block_bodies
encode_block_bodies
decode_block_bodies
decode_block_bodies
encode_new_block
decode_new_block
decode_new_block
---
source: /SuperGenius/Files/d1/d46/rlpx_2protocol_2messages_8cpp/
title: rlpx/protocol/messages.cpp (file)
---
Members:
reason_to_byte
byte_to_reason
---
source: /SuperGenius/Files/d5/dbd/objects_8cpp/
title: objects.cpp (file)
---
Members:
encode_log_entry
decode_log_entry
encode_access_list_entry
decode_access_list_entry
encode_transaction — Encode a transaction. Typed transactions (EIP-2930, EIP-1559) are prefixed with their type byte before the RLP payload, per EIP-2718.
decode_transaction
encode_receipt
decode_receipt
encode_block_header
decode_block_header
---
source: /SuperGenius/Files/d6/ddb/rpc__config__audit_8cpp/
title: rpc_config_audit.cpp (file)
---
Members:
audit_rpc_config
---
source: /SuperGenius/Files/dc/d20/rpc__manager_8cpp/
title: rpc_manager.cpp (file)
---
Members:
to_string
to_string
render_rpc_endpoint_url — Resolve a URL template into a concrete endpoint URL.
build_rpc_endpoint — Materialize a runtime endpoint from configuration.
group_rpc_endpoints — Group endpoints by chain name and chain id with deterministic ordering.
make_receipt_source
---
source: /SuperGenius/Files/db/d95/rpc__manager__config_8cpp/
title: rpc_manager_config.cpp (file)
---
Members:
load_rpc_manager_config_result_from_json_text — Load RPC manager configuration from JSON text.
load_rpc_manager_config_result_from_json — Load RPC manager configuration from a JSON file.
load_rpc_manager_config_from_json_text — Load RPC manager configuration from JSON text.
load_rpc_manager_config_from_json — Load RPC manager configuration from a JSON file.
---
source: /SuperGenius/Files/d5/d69/rpc__probe_8cpp/
title: rpc_probe.cpp (file)
---
Members:
to_string
probe_endpoint_chain_id
probe_endpoint_pool
---
source: /SuperGenius/Files/db/d7d/secp256k1__utility_8cpp/
title: secp256k1_utility.cpp (file)
---
Members:
secp256k1_address_from_private_key
secp256k1_recover_address
secp256k1_sign_recoverable
DecompressXOnlyPubkey — Decompress a 32-byte X-only secp256k1 public key to a 128-char hex destination.
---
source: /SuperGenius/Files/d9/df9/common_8cpp/
title: common.cpp (file)
---
Members:
encoding_error_to_string
decoding_error_to_string
streaming_error_to_string
hexToString
---
source: /SuperGenius/Files/d7/d87/endian_8cpp/
title: endian.cpp (file)
---
Members:
to_big_compact
from_big_compact
to_big_compact
from_big_compact
to_big_compact< uint8_t >
to_big_compact< uint16_t >
to_big_compact< uint32_t >
to_big_compact< uint64_t >
from_big_compact< uint8_t >
from_big_compact< uint16_t >
from_big_compact< uint32_t >
from_big_compact< uint64_t >
---
source: /SuperGenius/Files/db/d57/auth__handshake_8cpp/
title: auth_handshake.cpp (file)
---
Members:
derive_frame_secrets — Derive RLPx frame secrets from authenticated handshake key material.
---
source: /SuperGenius/Files/d3/d0f/rlpx__error_8cpp/
title: rlpx_error.cpp (file)
---
Members:
to_string
to_string
to_string
to_string
---
source: /SuperGenius/Files/df/d13/rlpx__session_8cpp/
title: rlpx_session.cpp (file)
---
Members:
tcp
---
source: /SuperGenius/Files/d1/d09/socket__transport_8cpp/
title: socket_transport.cpp (file)
---
Members:
tcp
connect_with_timeout
---
source: /SuperGenius/Files/d4/d13/globaldb__app_8cpp/
title: globaldb_app.cpp (file)
---
Members:
Buffer
HierarchicalKey
SubscriptionData
PutHook
DeleteHook
main
---
source: /SuperGenius/Files/de/d25/echo__client_8cpp/
title: echo_client.cpp (file)
---
Members:
main
---
source: /SuperGenius/Files/d2/db7/evm__messaging__dapp_8cpp/
title: evm_messaging_dapp.cpp (file)
---
Members:
configArray
topicFilters
contractAddresses
configs
return
keepRunning
signalHandler
customMessageHandler
main
Parse
if
if
for
---
source: /SuperGenius/Files/dd/de5/ipfs_8cpp/
title: ipfs.cpp (file)
---
Members:
main
findprovhandler
---
source: /SuperGenius/Files/df/d21/testipfs_8cpp/
title: testipfs.cpp (file)
---
Members:
self_id
sessions
handleIncomingStream
handleOutgoingStream
main
---
source: /SuperGenius/Files/d0/db1/ipfs__pubsub_8cpp/
title: ipfs_pubsub.cpp (file)
---
Members:
GossipPubSub
logger_config
main
---
source: /SuperGenius/Files/d6/d1c/multi_pose_8cpp/
title: multiPose.cpp (file)
---
Members:
STB_IMAGE_IMPLEMENTATION
STB_IMAGE_WRITE_IMPLEMENTATION
MNN_OPEN_TIME_TRACE
MODEL_IMAGE_SIZE
OUTPUT_STRIDE
MAX_POSE_DETECTIONS
NUM_KEYPOINTS
SCORE_THRESHOLD
MIN_POSE_SCORE
NMS_RADIUS
LOCAL_MAXIMUM_RADIUS
OFFSET_NODE_NAME
DISPLACE_FWD_NODE_NAME
DISPLACE_BWD_NODE_NAME
HEATMAPS
CIRCLE_RADIUS
MNNProcess
loadFileToByteArray
main
---
source: /SuperGenius/Files/d1/d7d/_pose_names_8hpp/
title: PoseNames.hpp (file)
---
Members:
PoseNames
PoseChain
---
source: /SuperGenius/Files/dd/d95/_node_example_8cpp/
title: NodeExample.cpp (file)
---
2024-04-18 Henrique A. Klein (hklein@gnus.ai)
Members:
CmdFunc
logger
keyboard_mutex
cv
events
current_input
original_term
POSENET_JSON
COMMANDS
DEV_CONFIG
finished
enable_raw_mode
disable_raw_mode
clear_line
redraw_prompt
trim
to_lower
keyboard_input_thread
check_arg_count
check_arg_count_min
cmd_info
cmd_balance
cmd_ds
cmd_mint
cmd_transfer
cmd_price
cmd_process
cmd_peer
cmd_stopprocessing
cmd_quit
cmd_help
split_string
process_events
status_polling_thread
periodic_processing
generate_eth_private_key
main
---
source: /SuperGenius/Files/d1/d5f/processing__json_8cpp/
title: processing_json.cpp (file)
---
Members:
STB_IMAGE_IMPLEMENTATION
replaceExtensionWithData
processImage
main
---
source: /SuperGenius/Files/db/d26/processing__app_8cpp/
title: processing_app.cpp (file)
---
Members:
main
---
source: /SuperGenius/Files/d3/d4f/_k_d_f_generator_8cpp/
title: KDFGenerator.cpp (file)
---
2024-06-07 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/db/d6c/_a_e_s_encryption_8hpp/
title: AESEncryption.hpp (file)
---
AES256 Encryption class file.
2024-01-05 Henrique A. Klein (henryaklein@gmail.com)
---
source: /SuperGenius/Files/dd/dd3/_bitcoin_key_generator_8hpp/
title: BitcoinKeyGenerator.hpp (file)
---
Bitcoin address generator header file.
2023-12-08 Super Genius (ken@gnus.ai) Henrique A. Klein (henryaklein@gmail.com)
---
source: /SuperGenius/Files/da/d4f/_bitcoin_key_pair_params_8hpp/
title: BitcoinKeyPairParams.hpp (file)
---
Bitcoin types header file.
2023-12-06 Super Genius (ken@gnus.ai) Henrique A. Klein (henryaklein@gmail.com)
Members:
CurveType — Curve type used by Ethereum keys.
base_field_type — Ethereum base field type.
scalar_field_type — Ethereum scalar field type.
scalar_field_value_type — Ethereum value from the scalar field type.
random_generator_type — Random generator type, to generate new Ethereum keys/addresses.
hash_type — The hash type used by Ethereum address derivation.
generator_type — The deterministic generator used by Ethereum key pair.
padding_policy — Ethereum passing policy.
policy_type — Ethereum policy type.
signature_type — Random generator type, to generate new Bitcoin keys/addresses.
derivation_hash_type — The hash type used by Ethereum address derivation.
---
source: /SuperGenius/Files/d4/d45/_crypto3_util_8hpp/
title: Crypto3Util.hpp (file)
---
Crypto3 utilities module.
2024-01-30 Henrique A. Klein (henryaklein@gmail.com)
---
source: /SuperGenius/Files/d4/df8/_e_c_d_h_encryption_8hpp/
title: ECDHEncryption.hpp (file)
---
Elliptic-curve Diffie-Hellman Encryption header file.
2024-01-05 Henrique A. Klein (henryaklein@gmail.com)
---
source: /SuperGenius/Files/d8/ddd/_e_c_d_s_a_public_key_8hpp/
title: ECDSAPublicKey.hpp (file)
---
ECDSA public key base class.
2023-12-26 Henrique A. Klein (henryaklein@gmail.com)
---
source: /SuperGenius/Files/db/da9/_e_c_d_s_a_types_8hpp/
title: ECDSATypes.hpp (file)
---
Common types and definitions of ECDSA.
2024-01-04 Henrique A. Klein (henryaklein@gmail.com)
Members:
CurveType — ECDSA uses secp256k curve.
base_field_type — The base field type is dependant on the curve.
scalar_field_type — The scalar field type is dependant on the curve.
scalar_field_value_type — The value type fo the scalar field type.
random_generator_type — A random algebraic generator.
hash_type — The deterministic generator used by Ethereum key pair.
generator_type — RFC6979 deterministic generator.
padding_policy — Ethereum passing policy.
policy_type — Ethereum policy type.
signature_type
---
source: /SuperGenius/Files/d7/d68/_e_c_el_gamal_key_generator_8hpp/
title: ECElGamalKeyGenerator.hpp (file)
---
Header file of EC ElGamal module.
2024-02-01 Henrique A. Klein (henryaklein@gmail.com)
---
source: /SuperGenius/Files/d3/dd4/_e_c_el_gamal_types_8hpp/
title: ECElGamalTypes.hpp (file)
---
2024-02-16 Henrique A. Klein (henryaklein@gmail.com)
---
source: /SuperGenius/Files/df/d7b/_el_gamal_key_generator_8hpp/
title: ElGamalKeyGenerator.hpp (file)
---
Members:
cpp_int
uint256_t
---
source: /SuperGenius/Files/d3/d01/_el_gamal_types_8hpp/
title: ElGamalTypes.hpp (file)
---
Header file of El Gamal types.
2024-01-17 Henrique A. Klein (henryaklein@gmail.com)
Members:
CurveType — ECDSA uses secp256k curve.
base_field_type — The base field type is dependant on the curve.
scalar_field_type — The scalar field type is dependant on the curve.
scalar_field_value_type — The value type fo the scalar field type.
random_generator_type — A random algebraic generator.
hash_type — The deterministic generator used by Ethereum key pair.
generator_type — RFC6979 deterministic generator.
padding_policy — Ethereum passing policy.
policy_type — Ethereum policy type.
signature_type
---
source: /SuperGenius/Files/d7/d2d/_encryption_8hpp/
title: Encryption.hpp (file)
---
Interface class header for encryption.
2024-01-05 Henrique A. Klein (henryaklein@gmail.com)
---
source: /SuperGenius/Files/d9/dd7/_ethereum_key_generator_8hpp/
title: EthereumKeyGenerator.hpp (file)
---
Ethereum address generator header file.
2023-12-08 Super Genius (ken@gnus.ai) Henrique A. Klein (henryaklein@gmail.com)
---
source: /SuperGenius/Files/dc/d35/_ethereum_key_pair_params_8hpp/
title: EthereumKeyPairParams.hpp (file)
---
Ethereum types header file.
2023-12-06 Super Genius (ken@gnus.ai) Henrique A. Klein (henryaklein@gmail.com)
Members:
CurveType — Curve type used by Ethereum keys.
base_field_type — Ethereum base field type.
scalar_field_type — Ethereum scalar field type.
scalar_field_value_type — Ethereum value from the scalar field type.
random_generator_type — Random generator type, to generate new Ethereum keys/addresses.
hash_type — The hash type used by Ethereum address derivation.
generator_type — The deterministic generator used by Ethereum key pair.
padding_policy — Ethereum passing policy.
policy_type — Ethereum policy type.
signature_type — Ethereum signature type.
derivation_hash_type — The hash type used by Ethereum address derivation.
---
source: /SuperGenius/Files/df/d62/ext__private__key_8hpp/
title: ext_private_key.hpp (file)
---
Extented private key class header file.
2023-12-16 Super Genius (ken@gnus.ai) Henrique A. Klein (henryaklein@gmail.com)
---
source: /SuperGenius/Files/dc/dff/_genius_k_d_f_2src_2_k_d_f_generator_2_k_d_f_generator_8hpp/
title: GeniusKDF/src/KDFGenerator/KDFGenerator.hpp (file)
---
Key Derivation Function Generator.
2024-01-08 Henrique A. Klein (henryaklein@gmail.com)
---
source: /SuperGenius/Files/d1/dec/_proof_system_2include_2_proof_system_2_k_d_f_generator_8hpp/
title: ProofSystem/include/ProofSystem/KDFGenerator.hpp (file)
---
Key Derivation Function Generator.
2024-01-08 Henrique A. Klein (henryaklein@gmail.com)
---
source: /SuperGenius/Files/d0/d90/_prime_numbers_8hpp/
title: PrimeNumbers.hpp (file)
---
Handles prime number generation/checking.
2024-01-26 Henrique A. Klein (henryaklein@gmail.com)
Members:
_USE_CRYPTO3_
---
source: /SuperGenius/Files/d4/d5d/_m_p_c_verifier_circuit_8hpp/
title: MPCVerifierCircuit.hpp (file)
---
Members:
MPCValidateTransaction
---
source: /SuperGenius/Files/d0/d6b/_transaction_validator_8hpp/
title: TransactionValidator.hpp (file)
---
Header file of functions used to validate a transaction.
2025-01-29 Henrique A. Klein (hklein@gnus.ai)
Members:
MAX_RANGES
GeneratePointFromSeedAndTotp — Generates a point from the seed, TOTP and generator.
ValidateTransactionValues — Validates the transaction values.
---
source: /SuperGenius/Files/de/de1/_transaction_verifier_circuit_t_o_t_p_8hpp/
title: TransactionVerifierCircuitTOTP.hpp (file)
---
Header file of the circuit that validate the transaction as well as TOTP.
2025-01-30 Henrique A. Klein (hklein@gnus.ai)
Members:
ValidateTransactionTOTP — Validates the transaction and TOTP.
---
source: /SuperGenius/Files/d9/d71/_m_p_c_verifier_circuit_8cpp/
title: MPCVerifierCircuit.cpp (file)
---
Members:
MPCValidateTransaction
---
source: /SuperGenius/Files/d9/db0/_recursive_transaction_circuit_8cpp/
title: RecursiveTransactionCircuit.cpp (file)
---
Automatically generated circuit with the TransactionVerifierCircuit as an input.
2025-01-28 Henrique A. Klein (hklein@gnus.ai)
This file was generated using a combo of assigner + recursive_gen tools from zkLLVM
Members:
placeholder_verifier
witness_amount
public_input_amount
constant_amount
selector_amount
public_input_sizes
full_public_input_size
use_lookups
batches_num
commitments_num
points_num
poly_num
initial_proof_points_num
round_proof_points_num
fri_roots_num
initial_merkle_proofs_num
initial_merkle_proofs_position_num
initial_merkle_proofs_hash_num
round_merkle_proofs_position_num
round_merkle_proofs_hash_num
final_polynomial_size
lambda
rows_amount
rows_log
total_columns
sorted_columns
permutation_size
zero_indices
table_values_num
gates_amount
gates_selector_indices
constraints_amount
quotient_polys_start
quotient_polys_amount
lookup_sorted_polys_start
D0_size
D0_log
D0_omega
omega
fri_rounds
gates_sizes
unique_points
singles_amount
batches_amount_list
L0_IND
Z_AT_XI_IND
F_CONSOLIDATED_IND
T_CONSOLIDATED_IND
transcript
transcript_challenge
pow_rows_amount
pow2
pow3
pow4
pow5
pow6
pow7
pow8
pow9
pow
fill_singles
generate_challenges
xi_polys
calculate_constraints
gate_argument_verifier
calculate_leaf_hash
---
source: /SuperGenius/Files/db/ddf/_transaction_validator_8cpp/
title: TransactionValidator.cpp (file)
---
2025-01-29 Henrique A. Klein (hklein@gnus.ai)
Members:
GeneratePointFromSeedAndTotp — Generates a point from the seed, TOTP and generator.
ValidateTransactionValues — Validates the transaction values.
---
source: /SuperGenius/Files/de/d5d/_transaction_verifier_circuit_8cpp/
title: TransactionVerifierCircuit.cpp (file)
---
Members:
ValidateTransaction — Circuit that validates the transaction.
---
source: /SuperGenius/Files/dc/d00/_transaction_verifier_circuit_t_o_t_p_8cpp/
title: TransactionVerifierCircuitTOTP.cpp (file)
---
Source file of the circuit that validate the transaction as well as TOTP.
2025-01-30 Henrique A. Klein (hklein@gnus.ai)
Members:
ValidateTransactionTOTP — Validates the transaction and TOTP.
---
source: /SuperGenius/Files/d1/d46/_bitcoin_key_generator_8cpp/
title: BitcoinKeyGenerator.cpp (file)
---
Bitcoin address generator source file.
2023-12-07 Super Genius (ken@gnus.ai) Henrique A. Klein (henryaklein@gmail.com)
Members:
BitcoinKeyGenerator::ExtractPubKeyFromField< std::vector< std::uint8_t > >
BitcoinKeyGenerator::ExtractPubKeyFromField< BitcoinKeyGenerator::PubKeyPair_t >
---
source: /SuperGenius/Files/d6/dff/_el_gamal_key_generator_8cpp/
title: ElGamalKeyGenerator.cpp (file)
---
Source file of El Gamal Key Generator module.
2024-01-29 Henrique A. Klein (henryaklein@gmail.com)
---
source: /SuperGenius/Files/da/d43/_ethereum_key_generator_8cpp/
title: EthereumKeyGenerator.cpp (file)
---
Members:
EthereumKeyGenerator::ExtractPubKeyFromField< std::vector< std::uint8_t > >
EthereumKeyGenerator::ExtractPubKeyFromField< EthereumKeyGenerator::PubKeyPair_t >
---
source: /SuperGenius/Files/d9/dcf/_processing_manager_8hpp/
title: ProcessingManager.hpp (file)
---
Members:
ProcessingProcessor
---
source: /SuperGenius/Files/df/d3c/processing__processor__mnn__audio_8hpp/
title: processing_processor_mnn_audio.hpp (file)
---
Members:
MNN_OPEN_TIME_TRACE
---
source: /SuperGenius/Files/d6/db5/processing__processor__mnn__image_8hpp/
title: processing_processor_mnn_image.hpp (file)
---
Members:
MNN_OPEN_TIME_TRACE
MODEL_IMAGE_SIZE
OUTPUT_STRIDE
MAX_POSE_DETECTIONS
NUM_KEYPOINTS
SCORE_THRESHOLD
MIN_POSE_SCORE
NMS_RADIUS
LOCAL_MAXIMUM_RADIUS
OFFSET_NODE_NAME
DISPLACE_FWD_NODE_NAME
DISPLACE_BWD_NODE_NAME
HEATMAPS
CIRCLE_RADIUS
---
source: /SuperGenius/Files/d4/daa/processing__processor__mnn__ml_8hpp/
title: processing_processor_mnn_ml.hpp (file)
---
Members:
MNN_OPEN_TIME_TRACE
---
source: /SuperGenius/Files/d3/d07/processing__processor__mnn__string_8hpp/
title: processing_processor_mnn_string.hpp (file)
---
Members:
MNN_OPEN_TIME_TRACE
---
source: /SuperGenius/Files/d3/dd8/processing__processor__mnn__volume_8hpp/
title: processing_processor_mnn_volume.hpp (file)
---
Members:
MNN_OPEN_TIME_TRACE
---
source: /SuperGenius/Files/d7/d6b/sgprocmgr-logger_8hpp/
title: sgprocmgr-logger.hpp (file)
---
Members:
Logger
createLogger
---
source: /SuperGenius/Files/d3/d84/_image_splitter_8cpp/
title: ImageSplitter.cpp (file)
---
Members:
STB_IMAGE_IMPLEMENTATION
STB_IMAGE_WRITE_IMPLEMENTATION
---
source: /SuperGenius/Files/d8/d50/_processing_manager_8cpp/
title: ProcessingManager.cpp (file)
---
Members:
OUTCOME_CPP_DEFINE_CATEGORY_3
---
source: /SuperGenius/Files/d3/dfa/_input_types_8cpp/
title: InputTypes.cpp (file)
---
Members:
OUTCOME_CPP_DEFINE_CATEGORY_3
---
source: /SuperGenius/Files/de/d95/sgprocmgr-logger_8cpp/
title: sgprocmgr-logger.cpp (file)
---
Members:
createLogger
---
source: /SuperGenius/Files/d0/d58/_account_messenger_8cpp/
title: AccountMessenger.cpp (file)
---
2025-07-22 Henrique A. Klein (hklein@gnus.ai)
Members:
OUTCOME_CPP_DEFINE_CATEGORY_3
---
source: /SuperGenius/Files/d8/d7a/_account_messenger_8hpp/
title: AccountMessenger.hpp (file)
---
Header file of the account messenger class.
2025-07-21 Henrique A. Klein (hklein@gnus.ai)
Members:
OUTCOME_HPP_DECLARE_ERROR_2 — Macro for declaring error handling in the AccountMessenger class.
---
source: /SuperGenius/Files/d6/de2/_bridge_event_types_8hpp/
title: BridgeEventTypes.hpp (file)
---
Lightweight bridge event types and signature constants. No heavy dependencies — safe to include from tests and watchers.
2026-06-22
Members:
kBridgeSourceBurnedSig — Canonical Solidity event signatures for bridge events. Single source of truth — shared by watch registration, catch-up scan, and RPC endpoint validation.
kBridgeOutInitiatedSig
---
source: /SuperGenius/Files/d5/de1/_bridge_relayer_8cpp/
title: BridgeRelayer.cpp (file)
---
Wires evmrelay burn events to MintFunds via shared EthWatchService.
2026-05-30
Members:
BridgeRelayerLogger — Returns a new instance of the BridgeRelayer logger.
---
source: /SuperGenius/Files/db/da8/_bridge_relayer_8hpp/
title: BridgeRelayer.hpp (file)
---
Wires evmrelay burn events to MintFunds via shared EthWatchService.
2026-05-30
---
source: /SuperGenius/Files/d1/d7b/_burn_config_8cpp/
title: BurnConfig.cpp (file)
---
Implementation of the genesis-seeded, quorum-signed, cache-refresh-via-quorum-re-derivation BURN_BASIS_POINTS value (BURN-01, BURN-02, BURN-03).
2026-07-24 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/da/d28/_burn_config_8hpp/
title: BurnConfig.hpp (file)
---
Genesis-seeded, quorum-signed, cache-refresh-via-quorum- re-derivation BURN_BASIS_POINTS value, built entirely on top of SecureCrdt/SecureCrdtRegistry/TrustedPeerRegistry (BURN-01, BURN-02, BURN-03). Direct structural template of TrustedPeerRegistry (Phase 10), replacing TransactionManager's hardcoded BURN_BASIS_POINTS constant.
2026-07-24 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d0/dba/_chain_contract_pair_8hpp/
title: ChainContractPair.hpp (file)
---
Shared struct linking a chain name to its bridge contract address and numeric chain ID.
2025-06-17 SuperGenius
This is the shared leaf type consumed by ChainRpcEndpointProvider (as observer payload) and by BridgeRelayer (as a Start() parameter). Extracting it into its own header breaks the include cycle that would otherwise exist between those two headers when BridgeRelayer inherits IBridgeInitObserver from the provider header.
---
source: /SuperGenius/Files/da/d58/_chain_rpc_endpoint_provider_8cpp/
title: ChainRpcEndpointProvider.cpp (file)
---
Implementation of the ChainList RPC endpoint loading and validator wiring.
2026-05-27 SuperGenius
---
source: /SuperGenius/Files/d1/df6/_chain_rpc_endpoint_provider_8hpp/
title: ChainRpcEndpointProvider.hpp (file)
---
Loads RPC endpoints from the evmrelay ChainList provider and wires them into PublicChainInputValidator with weighted consensus support.
2026-05-27 SuperGenius
Members:
ChainlistFetcher — Fetches the chainlist dataset (JSON text) used to discover public RPC URLs at startup.
---
source: /SuperGenius/Files/d7/d12/_escrow_transaction_8cpp/
title: EscrowTransaction.cpp (file)
---
2024-04-24 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/df/df3/_escrow_transaction_8hpp/
title: EscrowTransaction.hpp (file)
---
Transaction type used to lock UTXO funds into an escrow address.
2024-04-24 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/dd/dd9/_genius_account_8cpp/
title: GeniusAccount.cpp (file)
---
Members:
SECURE_STORAGE_PREFIX
PUBLIC_KEY_HEX_LENGTH
---
source: /SuperGenius/Files/d0/dad/_genius_account_8hpp/
title: GeniusAccount.hpp (file)
---
Header file of the Genius account class.
2024-03-11 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/dd/dce/_genius_input_validator_8cpp/
title: GeniusInputValidator.cpp (file)
---
Input validation strategy for native Genius-chain transactions.
2026-06-02
Members:
InputValidatorLogger
---
source: /SuperGenius/Files/d3/d86/_genius_input_validator_8hpp/
title: GeniusInputValidator.hpp (file)
---
Input validation strategy for native Genius-chain transactions.
2026-06-02 Henrique A. Klein (hklein@gnus.ai)
Members:
kGeniusValidatorRegistered
---
source: /SuperGenius/Files/df/de0/_genius_node_8cpp/
title: GeniusNode.cpp (file)
---
2024-04-18 Henrique A. Klein (hklein@gnus.ai)
Members:
OUTCOME_CPP_DEFINE_CATEGORY_3
GeniusNodeLogger
generate_uuid_with_ipfs_id
---
source: /SuperGenius/Files/d3/d63/_genius_node_8hpp/
title: GeniusNode.hpp (file)
---
Top-level node orchestration API for account, transaction, blockchain, and processing services.
2024-03-11 Henrique A. Klein (hklein@gnus.ai)
Members:
OUTGOING_TIMEOUT_MILLISECONDS
INCOMING_TIMEOUT_MILLISECONDS
GeniusNodeConfig — Runtime configuration values used to bootstrap a Genius node instance.
AccountSource
DEV_CONFIG
kDefaultTimestampToleranceMs
OUTCOME_HPP_DECLARE_ERROR_2
---
source: /SuperGenius/Files/d5/dc7/_genius_signer_8hpp/
title: GeniusSigner.hpp (file)
---
In-memory Genius keypair and canonical signature operations.
---
source: /SuperGenius/Files/dd/d5e/_genius_transaction_8hpp/
title: GeniusTransaction.hpp (file)
---
Header file of the base GeniusTransaction class.
2024-03-11 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d6/d74/_genius_u_t_x_o_8hpp/
title: GeniusUTXO.hpp (file)
---
Lightweight value type representing a spendable UTXO entry and its outpoint.
2024-04-25 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/db/dc3/_input_validators_8cpp/
title: InputValidators.cpp (file)
---
Input validation strategy interface translation unit.
2026-06-02
---
source: /SuperGenius/Files/db/de6/_input_validators_8hpp/
title: InputValidators.hpp (file)
---
Input validation strategy interface for transaction inputs.
2026-03-23 Henrique A. Klein (hklein@gnus.ai)
Members:
HASH256_BYTES
SERIALIZED_UINT32_BYTES
SERIALIZED_UINT64_BYTES
OUTPUT_INDEX_OFFSET
OWNER_ADDRESS_LENGTH_OFFSET
OWNER_ADDRESS_OFFSET
TOKEN_ID_BYTES_IN_PAYLOAD
AMOUNT_BYTES_IN_PAYLOAD
ESCROW_LOCK_OUTPUT_INDEX
TRANSFER_TX_TYPE
---
source: /SuperGenius/Files/de/d45/_migration_allow_list_8hpp/
title: MigrationAllowList.hpp (file)
---
Persistent allow-list used to track balances eligible for migration claims.
2026-05-01 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d0/d4d/_migration_input_validator_8cpp/
title: MigrationInputValidator.cpp (file)
---
Input validation strategy for one-time migration claims.
2026-06-12
---
source: /SuperGenius/Files/d2/d7f/_migration_input_validator_8hpp/
title: MigrationInputValidator.hpp (file)
---
Input validation strategy for one-time migration claims.
2026-06-12
Members:
kMigrationValidatorRegistered — Static instance to trigger registration of the MigrationInputValidator before main() starts.
---
source: /SuperGenius/Files/d5/d25/_migration_transaction_8cpp/
title: MigrationTransaction.cpp (file)
---
One-time migration mint transaction implementation.
2026-04-29
---
source: /SuperGenius/Files/d1/dd1/_migration_transaction_8hpp/
title: MigrationTransaction.hpp (file)
---
Header file for a Migration transaction that mint tokens on the destination chain based on observed legacy balances on the source chain.
2026-04-29
---
source: /SuperGenius/Files/d8/d70/_mint_transaction_8cpp/
title: MintTransaction.cpp (file)
---
2024-04-10 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d2/d0f/_mint_transaction_8hpp/
title: MintTransaction.hpp (file)
---
Transaction type used to mint tokens from an external chain reference.
2024-03-15 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d0/df5/_mint_transaction_v2_8cpp/
title: MintTransactionV2.cpp (file)
---
UTXO-aware mint transaction implementation.
2026-03-18
---
source: /SuperGenius/Files/d8/de4/_mint_transaction_v2_8hpp/
title: MintTransactionV2.hpp (file)
---
Header file of the Version 2 of the Mint transaction class.
2026-03-19 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/dd/d91/_public_chain_input_validator_8cpp/
title: PublicChainInputValidator.cpp (file)
---
Input validation strategy for public-chain source proofs.
2026-06-02
---
source: /SuperGenius/Files/d9/d3b/_public_chain_input_validator_8hpp/
title: PublicChainInputValidator.hpp (file)
---
Input validation strategy for public-chain source proofs.
2026-06-02 Henrique A. Klein (hklein@gnus.ai)
Members:
TransportFactory — Factory callable that produces a JsonRpcTransport from a URL and timeout.
---
source: /SuperGenius/Files/d2/d28/_token_amount_8cpp/
title: TokenAmount.cpp (file)
---
Implementation of TokenAmount arithmetic helpers.
---
source: /SuperGenius/Files/d9/d19/_token_amount_8hpp/
title: TokenAmount.hpp (file)
---
Fixed-precision (6 decimals) token amount type with arithmetic helpers.
2025
---
source: /SuperGenius/Files/df/d5f/_token_i_d_8hpp/
title: TokenID.hpp (file)
---
Fixed-size token identifier wrapper with GNUS compatibility helpers.
2025-06-19 Henrique A. Klein (hklein@gnus.ai)
Members:
operator<< — Streams a token identifier as hexadecimal text.
---
source: /SuperGenius/Files/d0/dcc/_transaction_manager_8cpp/
title: TransactionManager.cpp (file)
---
2024-04-12 Henrique A. Klein (hklein@gnus.ai)
Members:
MAX_PUBSUB_TX_BYTES
---
source: /SuperGenius/Files/de/d54/_transaction_manager_8hpp/
title: TransactionManager.hpp (file)
---
Transaction coordination, CRDT sync, and lifecycle tracking for outgoing and incoming account activity.
2024-03-13 Henrique A. Klein (hklein@gnus.ai)
Members:
EscrowDataPair
---
source: /SuperGenius/Files/db/dbb/_transfer_transaction_8cpp/
title: TransferTransaction.cpp (file)
---
2024-04-10 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/dd/d70/_transfer_transaction_8hpp/
title: TransferTransaction.hpp (file)
---
Transaction of currency transfer.
2024-03-11 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d1/dac/_u_t_x_o_manager_8hpp/
title: UTXOManager.hpp (file)
---
In-memory and persisted UTXO state manager with reservation and checkpoint helpers.
2026-01-20 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d6/d16/_u_t_x_o_merkle_8hpp/
title: UTXOMerkle.hpp (file)
---
Helpers for deterministic serialization and Merkle hashing of UTXO snapshots.
2026-03-18 Henrique A. Klein (hklein@gnus.ai)
Members:
kLeafPrefix — Domain separator prefix used for hashed leaf payloads.
kNodePrefix — Domain separator prefix used for hashed internal nodes.
AppendUInt32BE — Appends a 32-bit unsigned integer in big-endian order.
AppendUInt64BE — Appends a 64-bit unsigned integer in big-endian order.
ReadUInt32BE — Reads a 32-bit unsigned integer from big-endian bytes.
ReadUInt64BE — Reads a 64-bit unsigned integer from big-endian bytes.
OutPointKey — Generates a canonical key for a UTXO outpoint, used for deterministic ordering in Merkle tree construction.
SerializeUTXOLeafPayload — Serializes a UTXO into the canonical leaf payload used for Merkle hashing.
HashLeaf — Hashes a serialized UTXO leaf payload with the leaf domain separator.
HashNode — Hashes two child nodes with the internal-node domain separator.
EmptyUTXOMerkleRoot — Returns the canonical root used for an empty UTXO set.
ComputeMerkleRootFromLeafHashes — Reduces a list of leaf hashes into a single Merkle root.
ComputeMerkleRootFromPayloads — Sorts canonical payloads, hashes them as leaves, and computes the Merkle root.
ComputeMerkleRootFromUTXOs — Computes the Merkle root for a given set of UTXOs by serializing them into canonical payloads and hashing them.
---
source: /SuperGenius/Files/d1/dd1/_u_t_x_o_structs_8hpp/
title: UTXOStructs.hpp (file)
---
Shared UTXO transaction input and output data structures.
2026-01-20 Henrique A. Klein (hklein@gnus.ai)
Members:
UTXOTxParameters — Pair of signed inputs and destination outputs that make up a UTXO transaction payload.
IsEscrowLockAddress — Checks if the address is a valid escrow lock address (0x-prefixed 64 hex chars)
IsAccountPublicKeyAddress — Checks if the address is a public key.
---
source: /SuperGenius/Files/dd/dc0/blob_8cpp/
title: blob.cpp (file)
---
Members:
OUTCOME_CPP_DEFINE_CATEGORY_3
---
source: /SuperGenius/Files/d4/d16/blob_8hpp/
title: blob.hpp (file)
---
Members:
BlobError
Hash64
Hash128
Hash256
Hash512
operator<< — scale-encodes blob instance to stream
operator>> — decodes blob instance from stream
operator<<
OUTCOME_HPP_DECLARE_ERROR_2
---
source: /SuperGenius/Files/dd/d85/buffer_8cpp/
title: buffer.cpp (file)
---
Members:
operator<<
---
source: /SuperGenius/Files/da/d1d/buffer_8hpp/
title: buffer.hpp (file)
---
Members:
operator<< — override operator<< for all streams except std::ostream
operator>> — decodes buffer object from stream
operator<<
---
source: /SuperGenius/Files/d1/d4c/hexutil_8cpp/
title: hexutil.cpp (file)
---
Members:
OUTCOME_CPP_DEFINE_CATEGORY_3
hex_upper — Converts bytes to uppercase hex representation.
hex_lower — Converts bytes to hex representation.
IsHexAddress — Checks whether a string is a 128-character lowercase hexadecimal address.
unhex — Converts hex representation to bytes.
unhexWith0x — Unhex hex-string with 0x in the begining.
---
source: /SuperGenius/Files/df/d28/hexutil_8hpp/
title: hexutil.hpp (file)
---
Members:
UnhexError — error codes for exceptions that may occur during unhexing
hex_upper — Converts bytes to uppercase hex representation.
hex_lower — Converts bytes to hex representation.
IsHexAddress — Checks whether a string is a 128-character lowercase hexadecimal address.
unhex — Converts hex representation to bytes.
unhexWith0x — Unhex hex-string with 0x in the begining.
OUTCOME_HPP_DECLARE_ERROR_2
---
source: /SuperGenius/Files/d3/d30/logger_8cpp/
title: logger.cpp (file)
---
Members:
createLogger — Create a logger instance.
---
source: /SuperGenius/Files/d6/da3/logger_8hpp/
title: logger.hpp (file)
---
Members:
Logger
createLogger — Create a logger instance.
---
source: /SuperGenius/Files/d6/d8d/outcome__throw_8hpp/
title: outcome_throw.hpp (file)
---
Members:
raise — throws outcome::result error as boost exception
raise — throws outcome::result error made of error as boost exception
---
source: /SuperGenius/Files/dc/d4f/_scaled_integer_8cpp/
title: ScaledInteger.cpp (file)
---
Fixed-point arithmetic utilities (Implementation file)
Luiz Guilherme Rizzatto Zucchi (luizgrz@gmail.com) 1.1
2025-06-10
Copyright (c) 2025
---
source: /SuperGenius/Files/d5/daa/_scaled_integer_8hpp/
title: ScaledInteger.hpp (file)
---
Utilities for decimal arithmetic using scaled integers.
Luiz Guilherme Rizzatto Zucchi (luizgrz@gmail.com) 1.1
2025-06-10
Copyright (c) 2025
---
source: /SuperGenius/Files/d4/d36/sgns__version_8cpp/
title: sgns_version.cpp (file)
---
Implementation of version retrieval functions for SuperGenius.
This file provides functions to retrieve version information for SuperGenius. All version-related macros (e.g. SUPERGENIUS_VERSION_NUMBER) are defined via CMake.
Members:
network_id_
---
source: /SuperGenius/Files/de/d68/sgns__version_8hpp/
title: sgns_version.hpp (file)
---
Members:
MAIN_NET_ID
TEST_NET_ID
DEV_NET_ID
NET_ID_APPENDIX
SGNS_VERSION_APPENDIX
SuperGeniusVersionNum — Retrieves the complete version number of SuperGenius.
SuperGeniusVersionMajor — Retrieves the major version of SuperGenius.
SuperGeniusVersionMinor — Retrieves the minor version of SuperGenius.
SuperGeniusVersionPatch — Retrieves the patch version of SuperGenius.
ProcessingVersion — Retrieves the processing version used by processing task storage keys.
SuperGeniusVersionString — Retrieves the short version string of SuperGenius.
SuperGeniusVersionFullString — Retrieves the full version string of SuperGenius.
SuperGeniusVersionText — Retrieves the display version text of SuperGenius.
GetNetworkID
GetNetAndVersionAppendix
GetNetAndVersionAppendix
SetNetworkId
---
source: /SuperGenius/Files/dd/d26/unused_8hpp/
title: unused.hpp (file)
---
Members:
operator<<
operator>>
---
source: /SuperGenius/Files/d1/d14/_proof_system_2include_2_proof_system_2util_8hpp/
title: ProofSystem/include/ProofSystem/util.hpp (file)
---
Utilities functions header file.
2024-01-12 Super Genius (ken@gnus.ai) Henrique A. Klein (henryaklein@gmail.com)
Members:
to_string — Convert a byte array to a hexadecimal string.
isLittleEndian — Checks if the architecture is little endian.
HexASCII2Num — Converts a hexadecimal ASCII char array into a number.
HexASCII2NumStr — Converts a hexadecimal ASCII char array into a vector of numbers.
AdjustEndianess — Adjust endianess if needed.
---
source: /SuperGenius/Files/d1/d54/src_2base_2util_8hpp/
title: src/base/util.hpp (file)
---
Utilities functions header file.
2024-01-12 Super Genius (ken@gnus.ai) Henrique A. Klein (henryaklein@gmail.com)
Members:
to_string — Convert a byte array to a hexadecimal string.
isLittleEndian — Checks if the architecture is little endian.
Vector2Num — Converts a little-endian byte vector into a number.
Vector2Num
Vector2Num
Num2Vector — Converts a number into a byte vector (little-endian).
HexASCII2Num — Converts a hexadecimal ASCII char array into a number.
HexASCII2NumStr — Converts a hexadecimal ASCII char array into a vector of numbers.
AdjustEndianess — Adjust endianess if needed.
Uint256ToString
waitForCondition
---
source: /SuperGenius/Files/d2/df0/visitor_8hpp/
title: visitor.hpp (file)
---
Members:
make_visitor — Creates a compile-time visitor from a set of lambdas.
visit_in_place — Applies an in-place visitor to a boost::variant.
match — apply Matcher to optional T
match_in_place — construct visitor from Fs and apply it to optional T
---
source: /SuperGenius/Files/d8/d7c/wrapper_8hpp/
title: wrapper.hpp (file)
---
Members:
operator<
---
source: /SuperGenius/Files/dc/d59/_blockchain_8hpp/
title: Blockchain.hpp (file)
---
Header file for the Blockchain class, which provides an interface for block storage operations.
2025-10-16 Henrique A. Klein (hklein@gnus.ai)
Members:
OUTCOME_HPP_DECLARE_ERROR_2 — Macro for declaring error handling in the IBasicProof class.
---
source: /SuperGenius/Files/d3/d45/_consensus_8cpp/
title: Consensus.cpp (file)
---
Consensus proposal/vote/certificate helpers.
2025-10-16 Henrique A. Klein (hklein@gnus.ai)
Members:
ConsensusManagerLogger
---
source: /SuperGenius/Files/d0/dc1/_consensus_8hpp/
title: Consensus.hpp (file)
---
Consensus proposal/vote/certificate helpers.
2025-10-16 Henrique A. Klein (hklein@gnus.ai)
Members:
NONCE_SUBJECT_TYPE
TASK_RESULT_SUBJECT_TYPE
REGISTRY_BATCH_SUBJECT_TYPE
---
source: /SuperGenius/Files/d5/d9f/_consensus_auth_8hpp/
title: ConsensusAuth.hpp (file)
---
Header-only helpers for consensus signing and validation.
2026-02-07 Henrique A. Klein (hklein@gnus.ai)
Members:
ProposalSigningBytes — Builds canonical bytes used to sign a consensus proposal.
VoteSigningBytes — Builds canonical bytes used to sign a consensus vote.
VoteBundleSigningBytes — Builds canonical bytes used to sign a consensus vote bundle.
ComputeProposalId — Computes deterministic proposal id from proposal content.
ValidateProposal — Validates proposal basic shape, signature, and computed id.
---
source: /SuperGenius/Files/da/d8c/_blockchain_8cpp/
title: Blockchain.cpp (file)
---
Header file for the Blockchain class, which provides an interface for block storage operations.
2025-10-28 Henrique A. Klein (hklein@gnus.ai)
Members:
OUTCOME_CPP_DEFINE_CATEGORY_3
---
source: /SuperGenius/Files/df/d00/_validator_registry_8cpp/
title: ValidatorRegistry.cpp (file)
---
Validator registry and quorum logic for governance.
2025-10-16 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/df/df1/_validator_registry_8hpp/
title: ValidatorRegistry.hpp (file)
---
Validator registry and quorum logic for governance.
2025-10-16 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d4/d1b/coinprices_8cpp/
title: coinprices.cpp (file)
---
Members:
OUTCOME_CPP_DEFINE_CATEGORY_3
decodeChunkedTransfer
---
source: /SuperGenius/Files/dc/d0f/crdt__callback__manager_8hpp/
title: crdt_callback_manager.hpp (file)
---
CRDT callback manager header for when an element gets added/removed.
2025-09-05 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d9/dc5/crdt__data__filter_8hpp/
title: crdt_data_filter.hpp (file)
---
Header file of the CRDT Filter class.
2025-04-07 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d5/d29/crdt__datastore_8hpp/
title: crdt_datastore.hpp (file)
---
CRDT datastore class source file.
2025-04-04 devcareer0 Henrique A. Klein (hklein@gnus.ai)
Members:
OUTCOME_HPP_DECLARE_ERROR_2 — Macro for declaring error handling in the CrdtDatastore class.
---
source: /SuperGenius/Files/d1/d85/crdt__work__journal_8hpp/
title: crdt_work_journal.hpp (file)
---
Persistent work-journal for CRDT key processing state.
2026-04-21 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d6/de2/globaldb_8cpp/
title: globaldb.cpp (file)
---
Members:
CrdtOptions
CrdtDatastore
HierarchicalKey
GraphsyncDAGSyncer
RocksdbDatastore
IpfsRocksDb
GossipPubSub
GraphsyncImpl
OUTCOME_CPP_DEFINE_CATEGORY_3
---
source: /SuperGenius/Files/d0/d0e/globaldb_8hpp/
title: globaldb.hpp (file)
---
Members:
OUTCOME_HPP_DECLARE_ERROR_2 — Macro for declaring error handling in the GlobalDB class.
---
source: /SuperGenius/Files/d7/dda/keypair__file__storage_8cpp/
title: keypair_file_storage.cpp (file)
---
Members:
CryptoProvider
KeyMarshaller
KeyValidator
---
source: /SuperGenius/Files/d6/dea/graphsync__dagsyncer_8hpp/
title: graphsync_dagsyncer.hpp (file)
---
Members:
OUTCOME_HPP_DECLARE_ERROR_2 — Macro for declaring error handling in the IBasicProof class.
---
source: /SuperGenius/Files/d2/d51/crdt__callback__manager_8cpp/
title: crdt_callback_manager.cpp (file)
---
CRDT callback manager header for when an element gets added/removed.
2025-09-06 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d0/df2/crdt__data__filter_8cpp/
title: crdt_data_filter.cpp (file)
---
Source file of the CRDT Filter class.
2025-05-12 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d9/d51/crdt__datastore_8cpp/
title: crdt_datastore.cpp (file)
---
Members:
CRDTBroadcast
OUTCOME_CPP_DEFINE_CATEGORY_3
---
source: /SuperGenius/Files/d4/d84/crdt__set_8cpp/
title: crdt_set.cpp (file)
---
Members:
CRDTSet
---
source: /SuperGenius/Files/d5/d9b/graphsync__dagsyncer_8cpp/
title: graphsync_dagsyncer.cpp (file)
---
Members:
OUTCOME_CPP_DEFINE_CATEGORY_3
---
source: /SuperGenius/Files/d1/d21/hasher_8cpp/
title: hasher.cpp (file)
---
Members:
twox_64
twox_128
blake2b_128
twox_256
blake2b_256
keccak_256
blake2s_256
sha2_256
---
source: /SuperGenius/Files/da/d6b/hasher_8hpp/
title: hasher.hpp (file)
---
Members:
twox_64
twox_128
blake2b_128
twox_256
blake2b_256
keccak_256
blake2s_256
sha2_256
sha2_256
---
source: /SuperGenius/Files/d5/d47/keccak_8c/
title: keccak.c (file)
---
Members:
SHA3_ASSERT
SHA3_TRACE
SHA3_TRACE_BUF
SHA3_USE_KECCAK_FLAG
SHA3_CW
SHA3_CONST
SHA3_ROTL64
KECCAK_ROUNDS
keccakf_rndc
keccakf_rotc
keccakf_piln
keccakf
sha3_Init
sha3_Init256
sha3_Init384
sha3_Init512
sha3_SetFlags
sgns_sha3_Update
sha3_Finalize
sha3_HashBuffer
---
source: /SuperGenius/Files/d6/dd8/keccak_8h/
title: keccak.h (file)
---
Members:
SHA3_KECCAK_SPONGE_WORDS
SHA3_FLAGS
SHA3_RETURN
sha3_context
sha3_return_t
sha3_Init
sha3_Init256
sha3_Init384
sha3_Init512
sha3_SetFlags
sgns_sha3_Update
sha3_Finalize
sha3_HashBuffer
---
source: /SuperGenius/Files/d4/d0d/_s_g_processing_manager_2src_2util_2sha256_8cpp/
title: SGProcessingManager/src/util/sha256.cpp (file)
---
Members:
sha256
---
source: /SuperGenius/Files/d5/df5/src_2crypto_2sha_2sha256_8cpp/
title: src/crypto/sha/sha256.cpp (file)
---
Members:
sha256
sha256
sha256
---
source: /SuperGenius/Files/d8/d69/_s_g_processing_manager_2include_2util_2sha256_8hpp/
title: SGProcessingManager/include/util/sha256.hpp (file)
---
Members:
sha256
---
source: /SuperGenius/Files/d7/d61/src_2crypto_2sha_2sha256_8hpp/
title: src/crypto/sha/sha256.hpp (file)
---
Members:
sha256
sha256
sha256
---
source: /SuperGenius/Files/d8/d88/twox_8cpp/
title: twox.cpp (file)
---
Members:
make_twox64
make_twox64
make_twox128
make_twox128
make_twox256
make_twox256
---
source: /SuperGenius/Files/d9/ded/twox_8hpp/
title: twox.hpp (file)
---
Members:
make_twox64
make_twox128
make_twox256
---
source: /SuperGenius/Files/dc/dbd/_android_8cpp/
title: Android.cpp (file)
---
Members:
LOG_TAG
LOGI
LOGE
InitGeniusSDKAndroid
Java_ai_gnus_sdk_KeyStoreHelper_nativeInit
JNI_OnLoad
---
source: /SuperGenius/Files/d7/d37/_j_s_o_n_secure_storage_8cpp/
title: JSONSecureStorage.cpp (file)
---
2024-06-06 Henrique A. Klein (hklein@gnus.ai)
Members:
FILE_NAME
---
source: /SuperGenius/Files/d3/dfa/_j_s_o_n_secure_storage_8hpp/
title: JSONSecureStorage.hpp (file)
---
2024-06-06 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d6/db5/_memory_secure_storage_8hpp/
title: MemorySecureStorage.hpp (file)
---
In-memory JSON backend for testing — no keychain access.
2026-06-01
---
source: /SuperGenius/Files/dd/d1a/_i_secure_storage_8hpp/
title: ISecureStorage.hpp (file)
---
Secure Storage Interface class.
2024-06-05 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d7/d10/unreachable_8hpp/
title: unreachable.hpp (file)
---
Members:
UNREACHABLE
---
source: /SuperGenius/Files/d5/da7/_i_migration_step_8hpp/
title: IMigrationStep.hpp (file)
---
Versioned migration manager and migration step interface.
2025-05-29 Luiz Guilherme Rizzatto Zucchi Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/dc/dfe/_migration0__2__0_to1__0__0_8cpp/
title: Migration0_2_0To1_0_0.cpp (file)
---
Implementation of MigrationManager and migration steps.
2025-05-29 Luiz Guilherme Rizzatto Zucchi Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d1/d31/_migration0__2__0_to1__0__0_8hpp/
title: Migration0_2_0To1_0_0.hpp (file)
---
Versioned migration manager and migration step interface.
2025-05-29 Luiz Guilherme Rizzatto Zucchi Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d8/d30/_migration1__0__0_to3__4__0_8cpp/
title: Migration1_0_0To3_4_0.cpp (file)
---
2025-10-03 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/dc/db1/_migration1__0__0_to3__4__0_8hpp/
title: Migration1_0_0To3_4_0.hpp (file)
---
Header file for Migration1_0_0To3_4_0 class.
2025-10-03 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d6/d71/_migration3__4__0_to3__5__0_8cpp/
title: Migration3_4_0To3_5_0.cpp (file)
---
2025-11-14 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/de/d71/_migration3__4__0_to3__5__0_8hpp/
title: Migration3_4_0To3_5_0.hpp (file)
---
Migration step that upgrades account data from schema version 3.4.0 to 3.5.0.
2025-11-11 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d3/d7e/_migration3__5__0_to3__6__0_8hpp/
title: Migration3_5_0To3_6_0.hpp (file)
---
Migration step that upgrades account data from schema version 3.5.1 to 3.6.0.
2026-01-22 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d6/dd1/_migration3__6__0_to3__7__0_8hpp/
title: Migration3_6_0To3_7_0.hpp (file)
---
Migration step that upgrades account and balance data from schema version 3.6.0 to 3.7.0.
2026-05-06 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d2/d4b/_migration_manager_8cpp/
title: MigrationManager.cpp (file)
---
Implementation of MigrationManager and migration steps.
2025-05-29 Luiz Guilherme Rizzatto Zucchi Henrique A. Klein (hklein@gnus.ai)
Members:
OUTCOME_CPP_DEFINE_CATEGORY_3
---
source: /SuperGenius/Files/dc/d31/_migration_manager_8hpp/
title: MigrationManager.hpp (file)
---
Versioned migration manager.
2025-05-29 Luiz Guilherme Rizzatto Zucchi Henrique A. Klein (hklein@gnus.ai)
Members:
OUTCOME_HPP_DECLARE_ERROR_2
---
source: /SuperGenius/Files/dd/dff/_multi_sig_8cpp/
title: MultiSig.cpp (file)
---
Implementation of the standalone multi-signature primitive.
2026-07-21 Henrique A. Klein (hklein@gnus.ai)
Members:
VerifyPayloadSignature — Verifies a signature over an arbitrary raw-byte payload. Delegates entirely to GeniusAccount::VerifySignature; no custom crypto or signing-bytes construction is performed here (the payload is assumed already-canonical).
---
source: /SuperGenius/Files/d8/da6/_multi_sig_8hpp/
title: MultiSig.hpp (file)
---
Standalone multi-signature primitive: payload signature verification and N-of-M quorum evaluation over a signer set. No CRDT, node, or pubsub dependency (MSIG-03).
2026-07-21 Henrique A. Klein (hklein@gnus.ai)
Members:
SignatureBytes
CollectedSignatures
VerifyPayloadSignature — Verifies a signature over an arbitrary raw-byte payload. Delegates entirely to GeniusAccount::VerifySignature; no custom crypto or signing-bytes construction is performed here (the payload is assumed already-canonical).
---
source: /SuperGenius/Files/db/d83/processing__core__impl_8cpp/
title: processing_core_impl.cpp (file)
---
Members:
OUTCOME_CPP_DEFINE_CATEGORY_3
---
source: /SuperGenius/Files/dd/da6/processing__core__impl_8hpp/
title: processing_core_impl.hpp (file)
---
Header file of the Processing Core implementation that uses the ProcessingManager to execute subtasks.
2024-03-28 Justin Church (jchurch@gnus.ai) Henrique A. Klein (hklein@gnus.ai)
Members:
OUTCOME_HPP_DECLARE_ERROR_2
---
source: /SuperGenius/Files/d7/dfe/_task_keys_8hpp/
title: TaskKeys.hpp (file)
---
2026-05-19 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d1/dcf/_task_queue_impl_8cpp/
title: TaskQueueImpl.cpp (file)
---
Members:
TaskQueueImplLogger
---
source: /SuperGenius/Files/d2/d7b/_task_queue_impl_8hpp/
title: TaskQueueImpl.hpp (file)
---
Header file for the implementation of the task queue using CRDT.
2026-05-18 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d8/d06/processing__tasksplit_8cpp/
title: processing_tasksplit.cpp (file)
---
2024-04-23 Henrique A. Klein (hklein@gnus.ai)
Members:
generate_uuid_with_ipfs_id
---
source: /SuperGenius/Files/df/d74/processing__tasksplit_8hpp/
title: processing_tasksplit.hpp (file)
---
2024-04-23 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d4/deb/processing__validation__core_8cpp/
title: processing_validation_core.cpp (file)
---
Source file of core implementation of processing task results validation.
2022-05-08 creativeid00
This was mostly rewritten by Henrique A. Klein (hklein@gnus.ai) and Justin Church (jchurch@gnus.ai)
Members:
OUTCOME_CPP_DEFINE_CATEGORY_3
---
source: /SuperGenius/Files/d1/dd9/processing__validation__core_8hpp/
title: processing_validation_core.hpp (file)
---
Header file of core implementation of processing task results validation.
2022-05-08 creativeid00
This was mostly rewritten by Henrique A. Klein (hklein@gnus.ai) and Justin Church (jchurch@gnus.ai)
Members:
OUTCOME_HPP_DECLARE_ERROR_2 — Macro for declaring error handling in the IBasicProof class.
---
source: /SuperGenius/Files/dc/d87/_recursive_transaction_circuit_8hpp/
title: RecursiveTransactionCircuit.hpp (file)
---
The circuit bytecode in string form.
2025-01-28 Henrique A. Klein (hklein@gnus.ai)
Members:
RecursiveTransactionCircuit
---
source: /SuperGenius/Files/db/d30/_proof_system_2_s_g_proof_circuits_2include_2_transaction_verifier_circuit_8hpp/
title: ProofSystem/SGProofCircuits/include/TransactionVerifierCircuit.hpp (file)
---
Members:
ValidateTransaction — Circuit that validates the transaction.
---
source: /SuperGenius/Files/d6/db4/src_2proof_2circuits_2_transaction_verifier_circuit_8hpp/
title: src/proof/circuits/TransactionVerifierCircuit.hpp (file)
---
2024-10-03 Henrique A. Klein (hklein@gnus.ai)
Members:
TransactionCircuit
TransactionCircuitDebug
---
source: /SuperGenius/Files/d7/da6/_genius_assigner_8cpp/
title: GeniusAssigner.cpp (file)
---
Source file of the assigner from bytecode to circuit.
2024-09-09 Henrique A. Klein (hklein@gnus.ai)
Members:
OUTCOME_CPP_DEFINE_CATEGORY_3
---
source: /SuperGenius/Files/d1/d19/_genius_assigner_8hpp/
title: GeniusAssigner.hpp (file)
---
Header file of the assigner from bytecode to circuit.
2024-09-09 Henrique A. Klein (hklein@gnus.ai)
Members:
OUTCOME_HPP_DECLARE_ERROR_2
---
source: /SuperGenius/Files/dc/dfd/_genius_prover_8cpp/
title: GeniusProver.cpp (file)
---
Source file of the prover from circuit to zkproof.
2024-09-13 Henrique A. Klein (hklein@gnus.ai)
Members:
OUTCOME_CPP_DEFINE_CATEGORY_3
---
source: /SuperGenius/Files/d9/d35/_genius_prover_8hpp/
title: GeniusProver.hpp (file)
---
Header file of the prover from circuit to zkproof.
2024-09-13 Henrique A. Klein (hklein@gnus.ai)
Members:
OUTCOME_HPP_DECLARE_ERROR_2
---
source: /SuperGenius/Files/dc/d19/_i_basic_proof_8cpp/
title: IBasicProof.cpp (file)
---
2024-10-08 Henrique A. Klein (hklein@gnus.ai)
Members:
OUTCOME_CPP_DEFINE_CATEGORY_3
GetSnarkFromProto
---
source: /SuperGenius/Files/de/d4a/_i_basic_proof_8hpp/
title: IBasicProof.hpp (file)
---
Base proof class header file.
2024-09-29 Henrique A. Klein (hklein@gnus.ai)
Members:
OUTCOME_HPP_DECLARE_ERROR_2 — Macro for declaring error handling in the IBasicProof class.
---
source: /SuperGenius/Files/d2/d6c/_nil_file_helper_8hpp/
title: NilFileHelper.hpp (file)
---
2024-09-19 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/dc/dc6/_processing_proof_8cpp/
title: ProcessingProof.cpp (file)
---
2024-09-29 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d8/d51/_processing_proof_8hpp/
title: ProcessingProof.hpp (file)
---
Derived class for generating and verifying processing proofs.
2024-09-29 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/df/db6/_recursive_transfer_proof_8cpp/
title: RecursiveTransferProof.cpp (file)
---
Source file of the Recursive Transfer Proof.
2025-01-29 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d7/d6d/_recursive_transfer_proof_8hpp/
title: RecursiveTransferProof.hpp (file)
---
Header file of the RecursiveTransferProof.
2025-01-29 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d5/dcb/_transfer_proof_8cpp/
title: TransferProof.cpp (file)
---
2024-09-29 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d5/d20/_transfer_proof_8hpp/
title: TransferProof.hpp (file)
---
Derived class for generating and verifying transfer proofs.
2024-09-29 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d4/dbc/_i_signed_c_r_d_t_data_8hpp/
title: ISignedCRDTData.hpp (file)
---
Per-type interface for CRDT-backed values that require quorum-signed updates. Every future registered type (TrustedPeerRegistry, BurnConfig, migrated ValidatorRegistry) implements this. No template - mirrors IInputValidator's per-type virtual-interface style exactly.
2026-07-23 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/db/dee/_quorum_threshold_validation_8hpp/
title: QuorumThresholdValidation.hpp (file)
---
Shared majority-floor quorum-threshold validation helper (D-07, security-critical). Both TrustedPeerRegistry::New and BurnConfig::New call this at construction time to reject any locally-configured quorum_threshold below ceil(0.51*N) preventing a malicious node operator from locally lowering a registry's threshold to trivially self-confirm an under-signed value.
2026-07-24 Henrique A. Klein (hklein@gnus.ai)
Members:
ValidateQuorumThreshold — Validates that threshold is at or above the majority-safety floor for a signer set of size signer_set_size (ceil(0.51*signer_set_size), computed via integer arithmetic).
---
source: /SuperGenius/Files/d8/df4/_secure_crdt_8cpp/
title: SecureCrdt.cpp (file)
---
Implementation of the SecureCrdt local-write gate (D-03) and reader-side quorum re-derivation (D-04).
2026-07-23 Henrique A. Klein (hklein@gnus.ai)
Members:
OUTCOME_CPP_DEFINE_CATEGORY_3
---
source: /SuperGenius/Files/d9/da5/_secure_crdt_8hpp/
title: SecureCrdt.hpp (file)
---
Mandatory wrapper (D-03) for writing to a registered CRDT key and the reader-side logic (D-04) that always re-derives trust from base_key + sig/ children rather than trusting any "final" marker. This is the ONLY sanctioned write entry point for keys registered via SecureCrdtRegistry.
2026-07-23 Henrique A. Klein (hklein@gnus.ai)
Members:
OUTCOME_HPP_DECLARE_ERROR_2
---
source: /SuperGenius/Files/d4/dc2/_secure_crdt_registry_8hpp/
title: SecureCrdtRegistry.hpp (file)
---
Static registry mapping a base_key pattern to {signer-set source, required signature count, ISignedCRDTData factory}, resolvable at startup/runtime by key. Header-only, mirrors IInputValidator's static Register/UnregisterIf/Get idiom.
2026-07-23 Henrique A. Klein (hklein@gnus.ai)
Members:
SignerSetSource — Injectable callback resolving the current authorized signer set for a given base_key. NOT hard-wired to TrustedPeerRegistry (which does not exist until Phase 10) - tests inject a fixed-list lambda.
---
source: /SuperGenius/Files/d8/db2/_c_component_factory_8cpp/
title: CComponentFactory.cpp (file)
---
2024-02-23 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d3/d74/_c_component_factory_8hpp/
title: CComponentFactory.hpp (file)
---
2024-02-23 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/df/dec/_i_component_8hpp/
title: IComponent.hpp (file)
---
Component interface class.
2024-02-23 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d3/d4b/_i_component_factory_8hpp/
title: IComponentFactory.hpp (file)
---
2024-02-23 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d3/d91/_singleton_8hpp/
title: Singleton.hpp (file)
---
Members:
SINGLETONINSTANCE
SINGLETON
SINGLETONCONSTRUCTOROVERRIDE
---
source: /SuperGenius/Files/d8/dcc/buffer__map__types_8hpp/
title: buffer_map_types.hpp (file)
---
Members:
Buffer
BufferMap
BufferBatch
ReadOnlyBufferMap
BatchWriteBufferMap
BufferStorage
BufferMapCursor
---
source: /SuperGenius/Files/dd/d5f/database__error_8cpp/
title: database_error.cpp (file)
---
Members:
OUTCOME_CPP_DEFINE_CATEGORY_3
error_from_rocksdb
---
source: /SuperGenius/Files/d9/da2/database__error_8hpp/
title: database_error.hpp (file)
---
Members:
DatabaseError — universal database interface error
error_from_rocksdb
OUTCOME_HPP_DECLARE_ERROR_2
---
source: /SuperGenius/Files/dc/df7/predefined__keys_8hpp/
title: predefined_keys.hpp (file)
---
Members:
GetAuthoritySetKey
GetSetStateKey
GetGenesisBlockHashLookupKey
GetLastFinalizedBlockHashLookupKey
---
source: /SuperGenius/Files/dc/d6d/rocksdb_8cpp/
title: rocksdb.cpp (file)
---
Members:
BlockBasedTableOptions
---
source: /SuperGenius/Files/d8/d00/rocksdb__util_8hpp/
title: rocksdb_util.hpp (file)
---
Members:
error_as_result
error_as_result
make_slice
make_span
make_buffer
---
source: /SuperGenius/Files/d5/d4a/_trusted_peer_registry_8cpp/
title: TrustedPeerRegistry.cpp (file)
---
Implementation of the genesis-seeded, quorum-updatable trusted-peer set (TPR-01, TPR-02, TPR-03).
2026-07-24 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/d4/d4c/_trusted_peer_registry_8hpp/
title: TrustedPeerRegistry.hpp (file)
---
Genesis-seeded, quorum-updatable trusted-peer set built entirely on top of Phase 9's SecureCrdt/SecureCrdtRegistry/ISignedCRDTData machinery. This is the first real (non-test) consumer of the SecureCRDT layer, and the signer-set-source dependency Phase 11 (BURN_BASIS_POINTS) will build on (TPR-01, TPR-02, TPR-03).
2026-07-24 Henrique A. Klein (hklein@gnus.ai)
---
source: /SuperGenius/Files/df/d19/bridge__catchup__watcher_8cpp/
title: bridge_catchup_watcher.cpp (file)
---
Implementation of the bridge catch-up scan watcher.
2026-07-12 SuperGenius (ken@gnus.ai) Copyright 2026 Genius Ventures, Inc. SPDX-License-Identifier: MIT
---
source: /SuperGenius/Files/de/d09/bridge__catchup__watcher_8hpp/
title: bridge_catchup_watcher.hpp (file)
---
Header file for the bridge catch-up scan watcher.
2026-07-12 SuperGenius (ken@gnus.ai) Copyright 2026 Genius Ventures, Inc. SPDX-License-Identifier: MIT
Polling watcher that scans historical blocks for unprocessed bridge burn events and forwards them to the node for parsing + minting. Follows the BridgeRpcWatcher / MessagingWatcher pattern.
The watcher keeps its dependency surface small: it decodes raw event logs and passes the ABI values to a BurnProcessor callback provided by the node. The node (which already links the full account / transaction stack) handles ParseBurnEventValues + MintTokens. This avoids pulling BridgeRelayer → TransactionManager → ipfs_lite into the watcher target.
---
source: /SuperGenius/Files/d6/d6b/bridge__rpc__watcher_8cpp/
title: bridge_rpc_watcher.cpp (file)
---
Implementation of the bridge RPC watcher.
2026-02-03 SuperGenius (ken@gnus.ai) Copyright 2026 Genius Ventures, Inc. SPDX-License-Identifier: MIT
---
source: /SuperGenius/Files/d5/de8/bridge__rpc__watcher_8hpp/
title: bridge_rpc_watcher.hpp (file)
---
Header file for the bridge RPC watcher.
2026-06-03 SuperGenius (ken@gnus.ai) Copyright 2026 Genius Ventures, Inc. SPDX-License-Identifier: MIT