129 Commits

Author SHA1 Message Date
anonpenguin23
9093c8937e feat: enhance bootstrap peer handling and configuration validation
- Updated DefaultBootstrapPeers function to prioritize environment variable settings for bootstrap peers, allowing for dynamic configuration.
- Added tests to ensure non-empty default bootstrap peers and validate the correct handling of bootstrap peer configurations.
- Introduced a helper function to generate valid configurations for different node types, improving test clarity and maintainability.
- Enhanced the isPrivateOrLocalHost function to properly handle IPv6 addresses, ensuring accurate host validation.
2025-11-03 07:30:27 +02:00
anonpenguin23
30d18aca02 feat: add RQLite command support and help documentation
- Introduced a new RQLite command in the CLI to handle RQLite-related operations.
- Implemented the 'fix' subcommand to automatically repair common RQLite cluster issues, including correcting misconfigured join addresses and cleaning stale raft state.
- Updated help documentation to include RQLite commands and their usage.
2025-11-03 07:10:25 +02:00
anonpenguin23
ed7f4ae3d9 fix: update RQLite join address to use port 5001
- Changed the RQLite join address from "localhost:7001" to "localhost:5001" in multiple locations, including node configuration and test cases.
- Ensured consistency across configuration generation and validation tests to reflect the updated join address.
2025-10-31 20:48:45 +02:00
anonpenguin23
f71ef8e60b refactor: streamline repository removal and directory setup in cloneAndBuild function
- Updated the repository removal process to always use root, with a fallback to the 'debros' user if necessary.
- Added error handling for ensuring the 'debros' home directory exists and setting its ownership.
- Improved clarity in error messages for directory setup failures.
2025-10-31 20:09:34 +02:00
anonpenguin23
6e80ff28b4 refactor: improve repository removal and directory setup in cloneAndBuild function
- Changed the repository removal process to use the 'debros' user to avoid permission issues, with a fallback to root if necessary.
- Added a delay to ensure filesystem sync after removing the repository.
- Ensured the parent directory exists and has the correct permissions, including setting ownership to the 'debros' user.
2025-10-31 20:04:17 +02:00
anonpenguin23
6f30514974 refactor: streamline repository management in cloneAndBuild function
- Removed existing repository if it exists to ensure a fresh start.
- Simplified the cloning process by directly cloning the repository without checking for existing branches.
- Enhanced error handling for cloning, copying binaries, and setting permissions, providing clearer feedback on failures.
2025-10-31 19:58:05 +02:00
anonpenguin23
13e05609e0 chore: update version to 0.53.9 in Makefile and enhance HTTPS configuration prompts in setup.go
- Updated the version number in the Makefile to 0.53.9.
- Improved the interactive prompts for domain name input and DNS verification in the setup.go file, streamlining the process for enabling HTTPS configuration.
2025-10-31 19:44:31 +02:00
anonpenguin23
8a7ae4ad6f feat: add HTTPS configuration options and server setup
- Introduced new configuration fields for enabling HTTPS, specifying a domain name, and setting a TLS cache directory in the gateway configuration.
- Enhanced the main server logic to support HTTPS with ACME integration, including automatic HTTP to HTTPS redirection and error handling for server startup.
- Added validation for HTTPS settings to ensure proper domain and cache directory configuration.
- Implemented interactive prompts in the CLI for domain and HTTPS setup, including DNS verification and port availability checks.
2025-10-31 19:32:13 +02:00
anonpenguin23
f2d6254b7b chore: remove example files for Go and TypeScript SDK
- Deleted basic usage example in Go, TypeScript package.json, README.md, tsconfig.json, and client.ts to streamline the examples directory and remove outdated content.
2025-10-31 19:24:10 +02:00
anonpenguin23
5b05f52162 chore: update version to 0.53.6 in Makefile and add IP extraction utility for multiaddr in setup.go 2025-10-31 15:12:44 +02:00
anonpenguin23
042e516b8c chore: update version to 0.53.5 in Makefile and enhance setup command with peer ID retrieval and VPS IPv4 detection 2025-10-31 14:50:20 +02:00
anonpenguin23
c326711d7c feat: enhance service management and configuration options
- Updated service startup logic to include a helper function for starting or restarting services, improving reliability and clarity in service management.
- Added new configuration options for cluster synchronization, peer inactivity limits, and minimum cluster size in the config_commands.go file, enhancing cluster management capabilities.
2025-10-31 14:34:03 +02:00
anonpenguin23
ebe2706ad8 feat: add Go build cache directory to setupDirectories function
- Included a new directory for the Go build cache in the setupDirectories function to enhance the Go environment setup.
2025-10-31 14:24:57 +02:00
anonpenguin23
c5d3dd1f6d feat: enhance Go module cache setup in CLI
- Added Go module cache directory to the setupDirectories function for improved Go environment configuration.
- Updated cloneAndBuild function to set HOME environment variable, ensuring proper module cache creation during build process.
2025-10-31 12:12:27 +02:00
anonpenguin23
2aead48045 feat: enhance RQLite manager with improved logging and data directory management
- Added structured logging for RQLite components, including cluster discovery and leadership processes.
- Introduced methods for preparing the data directory and launching the RQLite process, improving code organization.
- Implemented exponential backoff for leadership checks to reduce log noise and improve reliability.
- Enhanced peer health tracking and membership update logic to streamline cluster synchronization and recovery.
2025-10-31 11:53:50 +02:00
anonpenguin23
8f82dc7ca3 feat: enhance RQLite cluster discovery and recovery mechanisms
- Introduced TriggerPeerExchange method to facilitate manual peer exchange for RQLite metadata.
- Implemented performPreStartClusterDiscovery to ensure coordinated recovery by building peers.json before RQLite startup.
- Added validation for node ID consistency with raft address during RQLite startup.
- Enhanced logging for cluster recovery processes and peer discovery progress.
- Updated cluster synchronization logic to improve reliability during node recovery scenarios.
2025-10-31 11:41:20 +02:00
anonpenguin23
ea5ef6bc1a feat: implement dynamic cluster discovery and validation for RQLite nodes
- Added ClusterDiscoveryService to manage peer discovery and synchronization for RQLite nodes.
- Introduced new configuration options for cluster synchronization intervals, peer inactivity limits, and minimum cluster size.
- Enhanced validation logic to ensure proper configuration of cluster parameters.
- Implemented metrics collection for cluster health and peer status, improving monitoring capabilities.
- Updated RQLiteManager to integrate with the new discovery service, allowing for dynamic leadership and cluster joining logic.
2025-10-31 10:46:52 +02:00
anonpenguin23
f561bc5311 refactor: improve Anon installation script for terms acceptance
- Updated the installation process to rely on debconf preseed and file-based acceptance methods, reducing the need for interactive prompts.
- Limited the number of "yes" responses piped during installation to enhance reliability and prevent infinite loops.
- Streamlined the command execution for fetching and running the installation script from GitHub.
2025-10-31 08:42:07 +02:00
anonpenguin23
8538e2eb3f feat: streamline Anon installation with automated terms acceptance
- Implemented pre-acceptance of Anon terms in both the setup and installation scripts to eliminate interactive prompts.
- Enhanced the installation process by creating necessary directories and files to ensure terms are accepted before installation.
- Updated the installation command to use a non-interactive frontend, improving reliability during package installation.
2025-10-31 08:36:59 +02:00
anonpenguin23
472b7c10bb feat: automate terms acceptance in Anon configuration and installation
- Added automatic acceptance of terms in the Anon configuration file to streamline the setup process.
- Updated the installation script to pre-accept terms, eliminating interactive prompts during installation.
- Enhanced output messages to reflect the auto-accepted terms for better user awareness.
2025-10-31 08:24:32 +02:00
anonpenguin23
ede253afae feat: enhance Anon installation process with Ubuntu version check and improved error handling
- Added a check for unsupported Ubuntu version 25.04, providing informative messages if installation is skipped.
- Updated the installation method to use the official script from GitHub, ensuring a cleaner installation process.
- Implemented cleanup of old APT repository files and GPG keys before installation.
- Enhanced error handling for enabling and starting the Anon service, including output of command errors for better debugging.
2025-10-31 08:05:59 +02:00
anonpenguin23
45dde89175 feat: add branch selection prompt in setup process
- Introduced a new promptBranch function to allow users to select between 'main' and 'nightly' branches during the setup.
- Updated cloneAndBuild function to use the selected branch for cloning and pulling updates, enhancing flexibility in repository management.
- Implemented logic to switch branches if the current branch differs from the selected one, ensuring the correct branch is used.
2025-10-31 07:38:30 +02:00
anonpenguin23
56dc6892de chore: update version and enhance database connection configuration
- Bumped version from 0.52.15 to 0.52.16 in the Makefile.
- Added connection pool configuration with timeouts and limits in the RQLite adapter and gateway, improving database connection management.
2025-10-31 07:34:27 +02:00
anonpenguin23
061b17de4f feat: improve configuration generation in setup process
- Added checks to prevent overwriting existing node.yaml and gateway.yaml files during configuration generation.
- Enhanced error handling for bootstrap.yaml creation, providing informative messages based on the existence of files.
- Implemented conditional renaming of bootstrap.yaml to node.yaml, ensuring it only occurs if node.yaml does not already exist.
- Updated output messages for clarity on configuration readiness and existing file usage.
2025-10-30 13:10:57 +02:00
anonpenguin23
351ce086bf feat: enhance anonProxyHandler to handle binary data safely
- Added Base64 encoding for the response body in the anonProxyHandler to prevent corruption of binary data when returned in JSON format.
- Updated the response structure to include the encoded body, ensuring compatibility with various data types.
2025-10-30 09:00:24 +02:00
anonpenguin23
fe16d503b5 feat: integrate Anyone Relay (Anon) into the development environment
- Added support for installing and configuring the Anyone Relay (Anon) for anonymous networking in the setup process.
- Updated the Makefile to include the Anon client in the development stack, allowing it to run alongside other services.
- Implemented a new HTTP proxy handler for the Anon service, enabling proxied requests through the Anyone network.
- Enhanced the installation script to manage Anon installation, configuration, and firewall settings.
- Introduced tests for the Anon proxy handler to ensure proper request validation and error handling.
- Updated documentation to reflect the new Anon service and its usage in the development environment.
2025-10-30 06:21:32 +02:00
ad088bd476 feat: enhance API key management and ownership recording in verifyHandler
- Implemented logic to ensure an API key is created or retrieved for each wallet during the verification process.
- Added best-effort recording of ownership for both API keys and wallets in the namespace ownership database.
- Improved error handling and logging for better traceability of ownership checks and API key operations.
- Cleaned up unnecessary comments and whitespace in the auth_handlers.go file for better code readability.
2025-10-29 06:53:51 +02:00
c208ff3288 feat: enhance signature verification for multiple blockchain types
- Added support for verifying signatures from both Ethereum (ETH) and Solana (SOL) blockchains in the verifyHandler.
- Introduced a new ChainType field in the request to specify the blockchain type, defaulting to ETH for backward compatibility.
- Implemented Ed25519 signature verification for Solana, including base64 decoding of signatures and base58 decoding of public keys.
- Enhanced error handling for unsupported chain types and invalid signature formats, improving robustness of the verification process.
2025-10-28 19:19:31 +02:00
0f0237b5ea
feat: implement asynchronous libp2p publishing in pubsub handler
- Updated the pubsubPublishHandler to publish messages to libp2p asynchronously, preventing HTTP response blocking.
- Introduced context with timeout for libp2p publishing to enhance reliability and logging for success and failure cases.
- Maintained immediate response for local delivery to WebSocket subscribers, improving overall message handling efficiency.
2025-10-28 10:25:38 +02:00
8dc71e7920 feat: implement local pub/sub delivery for WebSocket subscribers
- Added local subscriber management to the Gateway for direct message delivery to WebSocket clients.
- Introduced synchronization mechanisms to handle concurrent access to local subscribers.
- Enhanced pubsub handlers to register and unregister local subscribers, improving message delivery efficiency.
- Updated message publishing logic to prioritize local delivery before forwarding to libp2p, ensuring faster response times for local clients.
2025-10-27 17:30:40 +02:00
5930c9d832
feat: enhance pubsub functionality with namespace isolation and handler management
- Implemented namespace isolation in pubsub handlers to ensure message segregation.
- Refactored subscription management to support multiple handlers per topic, allowing independent lifecycles for each handler.
- Introduced a unique HandlerID for each subscription, enabling better management of handler registrations and unsubscriptions.
- Updated message handling to broadcast to all registered handlers, improving message delivery efficiency.
2025-10-27 16:37:25 +02:00
3f3ef9d1ac Revert "feat: enhance setup process with firewall configuration"
This reverts commit 030ea88cf6dafd274f077cc87d3bdd5b968dc33e.
2025-10-27 10:29:00 +02:00
anonpenguin23
36b69047cd
updated makefile 2025-10-27 10:20:35 +02:00
anonpenguin23
dbf8660941
feat: enhance configuration generation in initFullStack
- Added steps to generate node2.yaml, node3.yaml, and gateway.yaml configurations during the full stack initialization process.
- Implemented checks to prevent overwriting existing configuration files unless the --force flag is used.
- Improved output messages to provide clear feedback on generated configurations and bootstrap information.
2025-10-27 09:00:49 +02:00
anonpenguin23
030ea88cf6
feat: enhance setup process with firewall configuration
- Added a new step to configure the UFW firewall during the setup process, ensuring necessary ports are opened for SSH, P2P, and Gateway API.
- Updated the setup command output to reflect the new firewall configuration step.
- Refactored the setup logic to maintain proper sequence and clarity in the setup steps.
- Modified the installation script to update the documentation link for better user guidance.
2025-10-26 12:55:32 +02:00
anonpenguin23
e96271e28c
feat: enhance debros user setup and sudoers configuration
- Added functionality to create the 'debros' user if it does not exist during setup.
- Implemented a mechanism to configure passwordless sudo access for the 'debros' user, including validation of the sudoers rule.
- Updated setup command output to guide users on accessing the 'debros' user.
2025-10-26 11:38:31 +02:00
anonpenguin23
879ba1f2e6
fix: update supported OS versions and improve binary copy command
- Added Ubuntu 25.04 to the list of supported operating systems in the setup command.
- Modified the binary copy command to use a shell command for improved compatibility and functionality.
2025-10-26 11:27:31 +02:00
anonpenguin23
ddebb03aa6
chore: update version and enhance bootstrap configuration in setup
- Incremented version in Makefile to 0.52.7.
- Refactored the `generateConfigsInteractive` function to streamline the setup for single-node VPS configurations.
- Removed user prompts for bootstrap peers and join address, simplifying the configuration process.
- Added explicit commands for generating bootstrap and gateway configurations with improved error handling and output messages.
2025-10-26 11:20:10 +02:00
anonpenguin23
a9ac3fcb83
feat: enhance setup command with validation and refactor
- Added validation functions for multiaddr and host:port formats to improve user input handling during setup.
- Refactored the setup command steps for clarity and consistency, ensuring proper sequence in the setup process.
- Removed the `initializeEnvironments` function and its related logic to streamline the setup flow.
- Updated the cloning process to use a shallow clone for efficiency.
- Enhanced service configuration to use environment variables for better management.
2025-10-26 10:45:28 +02:00
anonpenguin23
3b4d43f808
feat: enhance setup command with validation and refactor
- Added validation functions for multiaddr and host:port formats to improve user input handling during setup.
- Refactored the setup command steps for clarity and consistency, ensuring proper sequence in the setup process.
- Removed the `initializeEnvironments` function and its related logic to streamline the setup flow.
- Updated the cloning process to use a shallow clone for efficiency.
- Enhanced service configuration to use environment variables for better management.
2025-10-26 10:39:19 +02:00
anonpenguin23
c315cd4a86
feat: enhance installation script for persistent Go setup
- Updated `setup.go` to add Go binary path to the current process and the `debros` user's `.bashrc` for persistent availability.
- Implemented error handling for updating `.bashrc` and ensured proper ownership of the file.
- Refined `install-debros-network.sh` to improve OS detection, dependency checks, and installation flow, including downloading the latest release of `network-cli` from GitHub.
- Streamlined the installation process with clearer logging and error messages, enhancing user experience.
2025-10-26 07:02:25 +02:00
anonpenguin23
43c0caaf7f
feat: overhaul GoReleaser configuration and CLI structure
- Updated `.goreleaser.yaml` to reflect the new project name and added multi-platform binary builds for `network-cli`, `node`, `gateway`, and `identity`.
- Enhanced the CLI by modularizing commands into separate packages for better maintainability and clarity.
- Introduced a comprehensive environment management system, allowing users to switch between local, devnet, and testnet environments seamlessly.
- Added interactive setup commands for VPS installation, improving user experience and installation flow.
- Updated the installation script to be APT-ready, providing clear instructions for users and ensuring a smooth setup process.
- Enhanced documentation and changelog to reflect the new features and improvements.
2025-10-26 06:30:44 +02:00
anonpenguin23
6bce9f23d0
chore: remove domain configuration and ACME TLS support from gateway
- Removed the `Domain` field from the gateway configuration to simplify setup.
- Eliminated related logic for domain validation and ACME certificate management.
- Updated installation script to remove references to ACME certificate storage and HTTP/HTTPS port configurations.
- Bumped version in Makefile to 0.52.0-beta to reflect changes.
2025-10-25 15:52:47 +03:00
anonpenguin23
d2b671b335
feat: add domain configuration and ACME TLS support for gateway
- Introduced a new `Domain` field in the gateway configuration to support HTTPS and ACME certificate provisioning.
- Implemented domain validation to ensure proper format.
- Enhanced the main gateway logic to handle ACME challenges and manage TLS certificates using CertMagic.
- Updated installation script to create necessary directories for ACME certificate storage and configure firewall rules for HTTP/HTTPS ports.
2025-10-25 13:45:53 +03:00
anonpenguin23
7c9851729e
chore: update .gitignore and CHANGELOG for new development features
- Added .dev/ directory to .gitignore to exclude development process files.
- Updated CHANGELOG.md with new entries for the one-command `make dev` target, full stack initialization, and improved configuration management.
- Simplified README instructions for generating configuration files and starting the complete network stack.
2025-10-25 08:19:31 +03:00
c770968507 feat: added support for NAT on LibP2P 2025-10-24 13:41:38 +03:00
anonpenguin23
b8af8e0c98
Refactor configuration handling in CLI and node package. Updated default config file naming based on node type and enhanced gateway config generation to include bootstrap peers. Improved data directory path handling by expanding environment variables and user home directory. 2025-10-24 11:13:21 +03:00
anonpenguin23
0717296822
Update configuration management and documentation. Added commands for generating and validating configuration files in the CLI, ensuring strict YAML decoding and improved error handling. Updated README to reflect new configuration paths and filesystem permissions. Enhanced Makefile to streamline node and gateway startup processes. 2025-10-24 11:03:50 +03:00
anonpenguin23
60affaec5c
Enhance configuration validation for nodes and gateways, implementing strict YAML decoding to reject unknown fields. Added comprehensive validation checks for node types, listen addresses, database settings, and discovery parameters. Updated README with configuration validation details and examples. 2025-10-24 10:01:53 +03:00
anonpenguin23
279c03df82
Enhance configuration validation for nodes and gateways, implementing strict YAML decoding to reject unknown fields. Added comprehensive validation checks for node types, listen addresses, database settings, and discovery parameters. Updated README with configuration validation details and examples. 2025-10-24 09:52:18 +03:00