Initial commit: libp2p-native-bridge package

- Extracted libp2p component from main app
- Created modular package structure with interfaces and implementations
- Added dependency injection for NativeModules
- Configured for IOR loading from Gitea
- Added comprehensive README and documentation
This commit is contained in:
Chris Daßler
2025-08-29 11:18:37 +02:00
commit 6f1d6ec37b
14 changed files with 2060 additions and 0 deletions

45
utils/constants.ts Normal file
View File

@@ -0,0 +1,45 @@
/**
* Shared constants for libp2p configuration across platforms
*/
export const LIBP2P_CONFIG = {
// Default ports
DEFAULT_TCP_PORT: 10000,
DEFAULT_WS_PORT: 10001,
// Connection timeouts (in milliseconds)
CONNECTION_PENDING_TIMEOUT: 30000, // 30 seconds before removing pending connections
CONNECTION_FAILED_VISIBILITY: 5000, // 5 seconds to keep failed connections visible
CONNECTION_ACCEPTANCE_CHECK_DELAY: 5000, // 5 seconds before checking acceptance
// Monitoring intervals (in milliseconds)
CONNECTION_MONITOR_INTERVAL: 3000, // Check connections every 3 seconds
CONNECTION_SYNC_INTERVAL: 5000, // Sync connections every 5 seconds
// Protocol IDs
PROTOCOLS: {
CONNECTION_ACCEPT: '/metatrom/connection-accept/1.0.0',
CONNECTION_ACCEPTED: '/metatrom/connection-accepted/1.0.0',
},
// Connection states
CONNECTION_STATUS: {
PENDING: 'pending',
CONNECTED: 'connected',
DISCONNECTED: 'disconnected',
FAILED: 'failed',
CLOSING: 'closing',
CLOSED: 'closed',
} as const,
// Connection directions
CONNECTION_DIRECTION: {
INBOUND: 'inbound',
OUTBOUND: 'outbound',
} as const,
} as const;
export type ConnectionStatus =
(typeof LIBP2P_CONFIG.CONNECTION_STATUS)[keyof typeof LIBP2P_CONFIG.CONNECTION_STATUS];
export type ConnectionDirection =
(typeof LIBP2P_CONFIG.CONNECTION_DIRECTION)[keyof typeof LIBP2P_CONFIG.CONNECTION_DIRECTION];