Parity pass on the other three language templates. Same guarantees as go/: survive server restart, client restart, half-open TCP, and long outages; rejoin and drain prime-side backlog on reconnect, without the user writing any of this in process.*. python/main.py: - grpc.keepalive_time_ms=10000, keepalive_timeout_ms=3000, keepalive_permit_without_calls=1 on the channel. Half-open TCP is detected within ~13s instead of the OS default ~2h. - Exponential backoff with jitter; max_backoff_seconds config ceiling (default 120). Attempts counter resets after a session runs healthy for 60s so transient restarts don't escalate the delay. - chain_id added as a required config field and sent as the x-chain-id gRPC metadata header (prime rejects streams without it). typescript/src/main.ts: - Same keepalive options on the @grpc/grpc-js client. - Same exponential backoff + jitter logic. - chain_id added to Config + metadata. bash/: - Config + README updated. The bash template uses Python's main.py as its runtime, so the behavioural changes above flow through without a separate main per language. Docs: each README gains a "Durability guarantees" section so contract authors see the invariants without reading the runtime code.
36 lines
1.2 KiB
YAML
Executable File
36 lines
1.2 KiB
YAML
Executable File
# Smart Contract Client Configuration
|
|
# Copy this file and fill in your values
|
|
|
|
# The gRPC server address to connect to
|
|
server_address: "localhost:50051"
|
|
|
|
# The public chain id on which this smart contract is registered.
|
|
# Sent as the x-chain-id gRPC metadata header — prime rejects streams
|
|
# without it.
|
|
chain_id: "your-chain-public-id"
|
|
|
|
# Your smart contract ID (provided by Dragonchain)
|
|
smart_contract_id: "your-smart-contract-id"
|
|
|
|
# API key for authentication (provided by Dragonchain)
|
|
api_key: "your-api-key"
|
|
|
|
# Whether to use TLS for the connection
|
|
use_tls: false
|
|
|
|
# Path to TLS certificate (required if use_tls is true)
|
|
# tls_cert_path: "/path/to/cert.pem"
|
|
|
|
# Number of worker threads for processing transactions concurrently
|
|
num_workers: 10
|
|
|
|
# Reconnect settings. The client uses exponential backoff with jitter:
|
|
# effective delay = min(max_backoff_seconds, reconnect_delay_seconds * 2^attempts) + random(0, reconnect_delay_seconds).
|
|
# Keep max_reconnect_attempts at 0 (infinite) unless you have a specific
|
|
# reason to stop — the client is designed to survive arbitrarily long
|
|
# outages and resume processing from the prime-side queue when the
|
|
# server returns.
|
|
reconnect_delay_seconds: 3
|
|
max_backoff_seconds: 120
|
|
max_reconnect_attempts: 0 # 0 = infinite retries
|