* clear

* feat: Add everything

* fix: Commenht
This commit is contained in:
Prad Nukala
2025-10-03 14:45:52 -04:00
committed by GitHub
parent 43b4a11c06
commit 13e6c3e84d
1935 changed files with 655061 additions and 40058 deletions
+16
View File
@@ -0,0 +1,16 @@
[tool.commitizen]
name = "cz_customize"
tag_format = "pkg-pkl/v$version"
ignored_tag_formats = ["*/v${version}", "v${version}"]
version_scheme = "semver"
version_provider = "npm"
update_changelog_on_bump = true
major_version_zero = true
pre_bump_hooks = ["bash ../../scripts/hook-bump-pre.sh"]
post_bump_hooks = ["pnpm --filter '@sonr.io/pkl' publish --no-git-checks"]
[tool.commitizen.customize]
bump_pattern = "^(feat|fix|refactor|perf|BREAKING CHANGE)"
bump_map = { "BREAKING CHANGE" = "MAJOR", "feat" = "MINOR", "fix" = "PATCH", "refactor" = "PATCH", "perf" = "PATCH" }
default_bump = "PATCH"
changelog_pattern = "^(feat|fix|refactor|docs|build)\\(pkg-pkl\\)(!)?:"
View File
+83
View File
@@ -0,0 +1,83 @@
# Makefile for pkljar - Pkl configuration management
.PHONY: all release dist docker json-schema-to-pkl upload-module upload-release clean clean-out clean-dist clean-npx-cache
# Default target - run release and dist
all: release dist npm-publish clean-npx-cache
# Package Pkl files and upload to R2
release: clean-out
@pkl project package packages/*/
@gum log --level debug "Publishing to Cloudflare R2"
@$(MAKE) upload-release
@rm -rf .out
# Distribute Pkl files and upload to R2
dist: clean-dist
@fd -e pkl . -t f -x sh -c 'mkdir -p dist/$$(dirname {}) && cp {} dist/$$(dirname {})/'
@mv dist/packages/* dist/
@rm -rf dist/basePklProject.pkl
@rm -rf dist/packages
@gum log --level debug "Publishing to Cloudflare R2"
@$(MAKE) upload-module
@rm -rf dist
# Interactive JSON Schema to Pkl conversion
json-schema-to-pkl:
@SCHEMA=$$(gum file --file --header "Select a JSON schema file to convert to PKL") && \
PACKAGE=package://pkg.pkl-lang.org/pkl-pantry/org.json_schema.contrib@1.1.4#/generate.pkl && \
gum log --level debug "Converting $$SCHEMA to PKL" && \
pkl eval $$PACKAGE -m . -p source=$$SCHEMA && \
(gum confirm "Delete source file?" && rm $$SCHEMA || gum log --level debug "Skipping delete")
# Upload module to R2 (internal)
upload-module:
@rclone copy dist/ r2:pklmod/
# Upload release to R2 (internal)
upload-release:
@rclone copy .out/ r2:pkljar/
# Clean targets
clean-out:
@rm -rf .out
clean-dist:
@rm -rf dist
clean-npx-cache:
@gum log --level debug "Clearing npx cache"
@npx clear-npx-cache -y 2>/dev/null || true
@gum log --level debug "NPX cache cleared"
clean: clean-out clean-dist
@rm -rf build/
# Test npx functionality
npx-test:
@gum log --level debug "Testing pkljar CLI via npm run"
@npm start
# Publish to npm with version patch bump
npm-publish:
@gum log --level debug "Bumping version patch"
@npm version patch --no-git-tag-version
@gum log --level debug "Publishing pkljar to npm"
@npm publish
# Help target
help:
@echo "Usage: make <target>"
@echo ""
@echo "Available targets:"
@echo " all : Package and distribute Pkl files (default)"
@echo " release : Package Pkl files and upload to R2"
@echo " dist : Distribute Pkl files and upload to R2"
@echo " docker : Build multi-platform Docker image"
@echo " json-schema-to-pkl : Convert JSON schema to Pkl interactively"
@echo " npx-test : Test pkljar CLI via npm run"
@echo " npm-publish : Publish pkljar package to npm (with version bump)"
@echo " clean : Remove all build artifacts"
@echo " clean-npx-cache : Clear npx cache for testing fresh installs"
@echo " help : Show this help message"
.PHONY: help npx-test npm-publish
+294
View File
@@ -0,0 +1,294 @@
# pkljar
> Interactive CLI for generating type-safe Sonr Network configurations using Apple's Pkl language
[![npm version](https://img.shields.io/npm/v/@sonr.io/pkljar.svg)](https://www.npmjs.com/package/@sonr.io/pkljar)
[![License: ISC](https://img.shields.io/badge/License-ISC-blue.svg)](https://opensource.org/licenses/ISC)
## Overview
`pkljar` is a comprehensive configuration management system for the Sonr Network that provides an interactive CLI to generate, validate, and distribute type-safe configuration files. Built on Apple's Pkl configuration language, it ensures compile-time validation and type safety for all service configurations.
## Features
- 🎯 **Interactive CLI** - User-friendly prompts for selecting and configuring Pkl packages
- 📦 **Pre-built Packages** - Ready-to-use configuration packages for Sonr services
- 🔒 **Type Safety** - Compile-time validation using Pkl's strong typing system
- 🌐 **Remote Package Resolution** - Automatic fetching from `mod.pkl.sh` repository
- 🎨 **Multiple Output Formats** - Support for YAML, JSON, TOML, XML, and more
- 🐳 **Docker Support** - Multi-platform Docker images for containerized deployments
## Installation
### Using npm
```bash
npm install -g @sonr.io/pkljar
```
### Using npx (no installation required)
```bash
npx @sonr.io/pkljar
```
### Using Docker
```bash
docker run onsonr/pkljar eval_beam
```
## Quick Start
1. Run the CLI:
```bash
pkljar
```
2. Select a package from the interactive menu:
- `sonr.beam` - Matrix/Element communication bridge
- `sonr.core` - Core Sonr Network configuration
- `sonr.hway` - Highway node configuration
- `sonr.testnet` - Testnet deployment configuration
3. Choose a module to evaluate (e.g., Config, Docker, Starship)
4. Specify output directory and format
5. Configuration files are generated in your specified directory
## Available Packages
### sonr.beam
Matrix bridge configuration for Sonr Network communication.
**Modules:**
- `Config.pkl` - Main configuration
- `Element.pkl` - Element client configuration
- `Hookshot.pkl` - GitHub/GitLab bridge configuration
- `Synapse.pkl` - Matrix server configuration
### sonr.core
Core Sonr Network blockchain configuration.
**Modules:**
- `Config.pkl` - Core network configuration
- `Keys.pkl` - Key management configuration
- `UCAN.pkl` - UCAN authorization configuration
- `Wallet.pkl` - Wallet service configuration
### sonr.hway
Highway node configuration for network routing.
**Modules:**
- `Config.pkl` - Highway node configuration
### sonr.testnet
Testnet deployment configurations.
**Modules:**
- `Docker.pkl` - Docker Compose configuration
- `Starship.pkl` - Kubernetes deployment via Starship
## CLI Usage
### Interactive Mode (Default)
```bash
pkljar
```
Launches an interactive prompt that guides you through:
1. Package selection
2. Module selection
3. Output directory configuration
4. Format selection (YAML, JSON, TOML, etc.)
### Output Formats
The CLI supports multiple output formats:
- `auto` - Use module's default format
- `yaml` - YAML format
- `json` - JSON format
- `jsonnet` - Jsonnet format
- `pcf` - Pkl Configuration Format
- `plist` - Property List format
- `properties` - Java Properties format
- `textproto` - Text Protocol Buffer format
- `xml` - XML format
## Development
### Project Structure
```
pkljar/
├── src/
│ └── index.js # CLI entry point
├── packages/ # Pkl package definitions
│ ├── sonr.beam/ # Matrix bridge packages
│ ├── sonr.core/ # Core network packages
│ ├── sonr.hway/ # Highway node packages
│ └── sonr.testnet/ # Testnet packages
├── docker/ # Docker configurations
└── Makefile # Build automation
```
### Building from Source
```bash
# Clone the repository
git clone https://github.com/sonr-io/pkljar.git
cd pkljar
# Install dependencies
npm install
# Run locally
npm start
# Build packages
make release
# Build Docker image
make docker
```
### Creating Custom Packages
1. Create a new directory in `packages/` following the naming convention:
```bash
mkdir packages/myorg.myservice
```
2. Create a `PklProject` file:
```pkl
amends "../../basePklProject.pkl"
dependencies {
["base.web"] = import("../base.web/PklProject")
}
```
3. Define your configuration modules
4. Build and publish:
```bash
make release
```
## Docker Usage
### Pre-built Commands
```bash
# Generate Beam configuration
docker run onsonr/pkljar eval_beam
# Generate Synapse configuration
docker run onsonr/pkljar eval_beam_synapse
# Generate Hookshot configuration
docker run onsonr/pkljar eval_beam_hookshot
```
### Custom Evaluation
```bash
docker run -v $(pwd)/output:/output onsonr/pkljar \
pkl eval -m /output https://mod.pkl.sh/sonr.core/Config.pkl
```
## API Reference
### Package Resolution
All packages are resolved from the `mod.pkl.sh` repository:
```
https://mod.pkl.sh/{package}/{module}
```
Example:
```
https://mod.pkl.sh/sonr.core/Config.pkl
```
### Module Structure
Each Pkl module follows this structure:
```pkl
@ModuleInfo { minPklVersion = "0.27.0" }
module package.name.ModuleName
// Type definitions
class ConfigClass {
property: Type
}
// Configuration instance
config: ConfigClass = new ConfigClass {
property = value
}
// Output configuration
output {
renderer = new YamlRenderer {}
}
```
## Advanced Configuration
### Environment-Specific Overrides
Use Pkl's conditional logic for environment-specific configurations:
```pkl
config = new ServiceConfig {
host = if (env == "production")
"prod.example.com"
else
"localhost"
}
```
### Multi-File Output
Generate multiple configuration files from a single module:
```pkl
output {
files {
["config/app.toml"] = appConfig.output
["config/client.toml"] = clientConfig.output
["docker-compose.yml"] = dockerConfig.output
}
}
```
## Contributing
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
### Development Workflow
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Run tests: `pkl test packages/*/`
5. Submit a pull request
## Support
- **Issues**: [GitHub Issues](https://github.com/sonr-io/pkljar/issues)
- **Documentation**: [Pkl Language Documentation](https://pkl-lang.org)
- **Community**: [Sonr Discord](https://discord.gg/sonr)
## License
ISC License - see [LICENSE](LICENSE) file for details.
## Acknowledgments
- Built with [Pkl](https://pkl-lang.org) by Apple
- CLI powered by [@clack/prompts](https://github.com/natemoo-re/clack)
- Pkl runtime by [@pkl-community/pkl](https://github.com/pkl-community/pkl-npm)
+171
View File
@@ -0,0 +1,171 @@
#!/usr/bin/env node
import { setTimeout } from 'node:timers/promises';
import { exec } from 'node:child_process';
import { promisify } from 'node:util';
import * as p from '@clack/prompts';
import color from 'picocolors';
import { getExePath } from '@pkl-community/pkl';
const execAsync = promisify(exec);
const pklPath = getExePath();
// Static list of available packages on mod.pkl.sh
const AVAILABLE_PACKAGES = [
'sonr.beam',
'sonr.core',
'sonr.hway',
'sonr.testnet'
];
// Module options for each package type
const MODULE_OPTIONS = {
default: [
{ value: 'Config.pkl', label: 'Config', hint: 'Main configuration module' },
{ value: 'PklProject', label: 'Project', hint: 'Project definition' },
],
'sonr.beam': [
{ value: 'Config.pkl', label: 'Config', hint: 'Main configuration' },
{ value: 'Element.pkl', label: 'Element', hint: 'Element configuration' },
{ value: 'Hookshot.pkl', label: 'Hookshot', hint: 'Hookshot configuration' },
{ value: 'Synapse.pkl', label: 'Synapse', hint: 'Synapse configuration' },
{ value: 'PklProject', label: 'Project', hint: 'Project definition' },
],
'sonr.core': [
{ value: 'Config.pkl', label: 'Config', hint: 'Core configuration' },
{ value: 'Keys.pkl', label: 'Keys', hint: 'Key management' },
{ value: 'UCAN.pkl', label: 'UCAN', hint: 'UCAN configuration' },
{ value: 'Wallet.pkl', label: 'Wallet', hint: 'Wallet configuration' },
{ value: 'PklProject', label: 'Project', hint: 'Project definition' },
],
'sonr.testnet': [
{ value: 'Starship.pkl', label: 'Starship', hint: 'Starship K8s configuration' },
{ value: 'Docker.pkl', label: 'Docker', hint: 'Docker Compose configuration' },
],
};
async function getAvailablePackages() {
// Always return static list of packages available on mod.pkl.sh
return AVAILABLE_PACKAGES;
}
async function main() {
console.clear();
await setTimeout(500);
p.intro(`${color.bgCyan(color.black(' Sonr PKL '))} - Configuration CLI`);
try {
// Get available packages
const availablePackages = await getAvailablePackages();
if (availablePackages.length === 0) {
p.cancel('No packages found.');
process.exit(1);
}
const config = await p.group(
{
package: () =>
p.select({
message: 'Select a Pkl package to evaluate',
options: availablePackages.map(pkg => ({
value: pkg,
label: pkg,
hint: `https://mod.pkl.sh/${pkg}/`
})),
maxItems: 10
}),
module: ({ results }) => {
const moduleOpts = MODULE_OPTIONS[results.package] || MODULE_OPTIONS.default;
return p.select({
message: 'Select module to evaluate',
options: moduleOpts,
maxItems: 8
});
},
outputPath: () =>
p.text({
message: 'Output directory path',
placeholder: './data',
initialValue: './data',
validate: value => {
if (!value) return 'Output path is required';
return;
}
}),
format: () =>
p.select({
message: 'Output format',
options: [
{ value: 'auto', label: 'Auto (from module)', hint: 'Use module\'s default format' },
{ value: 'yaml', label: 'YAML' },
{ value: 'json', label: 'JSON' },
{ value: 'jsonnet', label: 'Jsonnet' },
{ value: 'pcf', label: 'PCF (Pkl Configuration Format)' },
{ value: 'plist', label: 'Property List' },
{ value: 'properties', label: 'Java Properties' },
{ value: 'textproto', label: 'Text Proto' },
{ value: 'xml', label: 'XML' },
],
initialValue: 'auto',
maxItems: 8
}),
},
{
onCancel: () => {
p.cancel('Operation cancelled.');
process.exit(0);
},
}
);
const s = p.spinner();
// Always use remote packages from mod.pkl.sh
const moduleUrl = `https://mod.pkl.sh/${config.package}/${config.module}`;
let pklCommand = `"${pklPath}" eval -m ${config.outputPath}`;
if (config.format !== 'auto') {
pklCommand += ` -f ${config.format}`;
}
pklCommand += ` ${moduleUrl}`;
s.start(`Evaluating ${config.package}/${config.module}...`);
try {
const { stdout, stderr } = await execAsync(pklCommand);
s.stop(`Successfully evaluated ${config.package}`);
if (stdout) {
p.note(stdout.trim(), 'Output');
}
if (stderr) {
p.log.warning(stderr.trim());
}
p.outro(`Configuration generated in ${color.cyan(config.outputPath)}`);
} catch (error) {
s.stop('Evaluation failed');
p.log.error(`Failed to evaluate module: ${error.message}`);
if (error.stderr) {
p.log.error(error.stderr);
}
process.exit(1);
}
} catch (error) {
p.log.error(`An error occurred: ${error.message}`);
process.exit(1);
}
}
main().catch(console.error);
+39
View File
@@ -0,0 +1,39 @@
{
"name": "@sonr.io/pkl",
"version": "0.1.0",
"description": "A Pkl project for configuring the Sonr Network. This package resolves Pkl packages and includes the required cli.",
"homepage": "https://github.com/sonr-io/pkljar#readme",
"bugs": {
"url": "https://github.com/sonr-io/pkljar/issues"
},
"repository": {
"type": "git",
"url": "git+https://github.com/sonr-io/pkljar.git"
},
"publishConfig": {
"access": "public"
},
"license": "ISC",
"author": "Sonr DAO",
"type": "module",
"bin": {
"pkljar": "./cli/index.js"
},
"scripts": {
"cli:start": "node src/index.js",
"test": "echo 'No tests defined for @sonr.io/pkl'",
"release": "cz --no-raise 6,21 bump --yes --increment PATCH"
},
"dependencies": {
"@clack/prompts": "^0.11.0",
"@pkl-community/pkl": "^0.28.2",
"picocolors": "^1.1.1"
},
"devDependencies": {
"bun-types": "^1.2.20",
"csstype": "^3.1.3",
"sisteransi": "^1.0.5",
"typescript": "^5.9.2",
"undici-types": "^7.10.0"
}
}
+56
View File
@@ -0,0 +1,56 @@
module base.webapi.Manifest
name: String
short_name: String
description: String?
display: ("fullscreen"|"standalone"|"minimal-ui"|"browser")?
display_override: Listing<String>?
theme_color: String?
background_color: String?
orientation: ("any"|"natural"|"landscape"|"portrait")?
start_url: String
scope: String?
service_worker: ServiceWorker?
icons: Listing<ShortcutIcon>?
related_applications: Listing<RelatedApplication>?
prefer_related_applications: Boolean?
shortcuts: Listing<Shortcut>?
file_handlers: Listing<FileHandler>?
protocol_handlers: Listing<ProtocolHandler>?
class ServiceWorker {
scope: String
src: String
use_cache: Boolean
}
class ShortcutIcon {
src: String
sizes: String
type: String?
purpose: String?
}
class RelatedApplication {
platform: String
url: String?
id: String?
}
class Shortcut {
name: String
short_name: String?
description: String?
url: String
icons: Listing<ShortcutIcon>?
}
class FileHandler {
action: String
accept: Mapping<String, Listing<String>>
}
class ProtocolHandler {
scheme: String
url: String
}
@@ -0,0 +1,62 @@
module base.did.OpenIDPayload
verified_claims: VerifiedClaims
class VerifiedClaims {
verification: Verification
claims: Claims
}
class Verification {
trust_framework: String
time: String
verification_process: String
evidence: Listing<Evidence>
}
class Evidence {
type: String
check_details: Listing<CheckDetail>
time: String
document_details: DocumentDetails
}
class CheckDetail {
check_method: String
}
class DocumentDetails {
type: String
issuer: Issuer
document_number: String?
date_of_issuance: String
date_of_expiry: String?
}
class Issuer {
name: String
country: String
region: String?
street_address: String?
}
class Claims {
given_name: String
family_name: String
birthdate: String
place_of_birth: PlaceOfBirth
nationalities: Listing<String>
address: Address
}
class PlaceOfBirth {
country: String
locality: String
}
class Address {
locality: String
postal_code: String
country: String
street_address: String
}
+5
View File
@@ -0,0 +1,5 @@
amends "../basePklProject.pkl"
package {
version = "0.0.1"
}
@@ -0,0 +1,4 @@
{
"schemaVersion": 1,
"resolvedDependencies": {}
}
@@ -0,0 +1,19 @@
module base.did.VerifiableCredential
`@context`: Listing<String>
id: String
type: Listing<String>
issuer: String
issuanceDate: String
credentialSubject: CredentialSubject
credentialSchema: CredentialSchema
class CredentialSubject {
id: String
emailAddress: String
}
class CredentialSchema {
id: String
type: String
}
+55
View File
@@ -0,0 +1,55 @@
// PklProject template for Sonr.io packages
module basePklProject
amends "pkl:Project"
import "pkl:reflect"
// Automatically determine package name from directory structure
local myModule = reflect.Module(module)
local packageName: String =
findRootModule(myModule)
.relativePathTo(module)
.last
local function findRootModule(mod: reflect.Module): Module =
let (supermodule = mod.supermodule)
if (supermodule == null || !supermodule.isAmend) mod.reflectee
else findRootModule(supermodule)
// Find all test files
const local allTests = import*("**/tests/**.pkl").keys.filter((it) -> !it.contains("tests/fixtures/"))
// Package configuration
package {
name = packageName
baseUri = "package://pkl.sh/\(name)"
packageZipUrl = "https://github.com/sonr-io/pkljar/releases/download/v\(version)/\(name)-\(version).zip"
license = "Apache-2.0"
authors {
"Sonr.io <dev@sonr.io>"
}
exclude {
"examples/**"
"tests/**"
"**/.DS_Store"
"**/.idea/**"
}
description = myModule.docComment
issueTracker = "https://github.com/sonr-io/pkljar/issues"
sourceCode = "https://github.com/sonr-io/pkljar/tree/v\(version)/packages/\(name)"
sourceCodeUrlScheme = "https://github.com/sonr-io/pkljar/blob/v\(version)/packages/\(name)%{path}#L%{line}-%{endLine}"
}
// Default dependencies (can be extended in specific PklProject files)
dependencies {
// Common dependencies can be added here
// ["example-dep"] {
// uri = "package://pkl.sh/example-dep@1.0.0"
// }
}
+81
View File
@@ -0,0 +1,81 @@
open module cosmos.chain.App
`minimum-gas-prices`: String
`query-gas-limit`: String
`pruning-keep-recent`: String
`pruning-interval`: String
`halt-height`: Number
`halt-time`: Number
`min-retain-blocks`: Number
`inter-block-cache`: Boolean
`index-events`: Listing<Any>
`iavl-cache-size`: Number
`iavl-disable-fastnode`: Boolean
`app-db-backend`: String
`grpc-web`: GrpcWeb
`state-sync`: StateSync
pruning: String
telemetry: Telemetry
api: Api
grpc: Grpc
streaming: Streaming
mempool: Mempool
class Telemetry {
`service-name`: String
enabled: Boolean
`enable-hostname`: Boolean
`enable-hostname-label`: Boolean
`enable-service-label`: Boolean
`prometheus-retention-time`: Number
`global-labels`: Listing<Any>
`metrics-sink`: String
`statsd-addr`: String
`datadog-hostname`: String
}
class Api {
enable: Boolean
swagger: Boolean
address: String
`max-open-connections`: Number
`rpc-read-timeout`: Number
`rpc-write-timeout`: Number
`rpc-max-body-bytes`: Number
`enabled-unsafe-cors`: Boolean
}
class Grpc {
enable: Boolean
address: String
`max-recv-msg-size`: String
`max-send-msg-size`: String
}
class GrpcWeb {
enable: Boolean
}
class StateSync {
`snapshot-interval`: Number
`snapshot-keep-recent`: Number
}
class Streaming {
abci: Abci
}
class Abci {
keys: Listing<Any>
plugin: String
`stop-node-on-err`: Boolean
}
class Mempool {
`max-txs`: Number
}
output {
renderer = new toml.Renderer {}
}
+16
View File
@@ -0,0 +1,16 @@
open module cosmos.chain.Client
`chain-id`: String
`keyring-backend`: String
output: String
node: String
`broadcast-mode`: String
output {
renderer = new toml.Renderer {}
}
+141
View File
@@ -0,0 +1,141 @@
open module cosmos.chain.Config
version: String
proxy_app: String
moniker: String
db_backend: String
db_dir: String
log_level: String
log_format: String
genesis_file: String
priv_validator_key_file: String
priv_validator_state_file: String
priv_validator_laddr: String
node_key_file: String
abci: String
filter_peers: Boolean
rpc: Rpc
p2p: P2p
mempool: Mempool
statesync: Statesync
blocksync: Blocksync
consensus: Consensus
storage: Storage
tx_index: TxIndex
instrumentation: Instrumentation
class Rpc {
laddr: String
cors_allowed_origins: Listing<Any>
cors_allowed_methods: Listing<String>
cors_allowed_headers: Listing<String>
grpc_laddr: String
grpc_max_open_connections: Number
unsafe: Boolean
max_open_connections: Number
max_subscription_clients: Number
max_subscriptions_per_client: Number
experimental_subscription_buffer_size: Number
experimental_websocket_write_buffer_size: Number
experimental_close_on_slow_client: Boolean
timeout_broadcast_tx_commit: String
max_request_batch_size: Number
max_body_bytes: Number
max_header_bytes: Number
tls_cert_file: String
tls_key_file: String
pprof_laddr: String
}
class P2p {
laddr: String
external_address: String
seeds: String
persistent_peers: String
addr_book_file: String
addr_book_strict: Boolean
max_num_inbound_peers: Number
max_num_outbound_peers: Number
unconditional_peer_ids: String
persistent_peers_max_dial_period: String
flush_throttle_timeout: String
max_packet_msg_payload_size: Number
send_rate: Number
recv_rate: Number
pex: Boolean
seed_mode: Boolean
private_peer_ids: String
allow_duplicate_ip: Boolean
handshake_timeout: String
dial_timeout: String
}
class Mempool {
type: String
recheck: Boolean
recheck_timeout: String
broadcast: Boolean
wal_dir: String
size: Number
max_txs_bytes: Number
cache_size: Number
`keep-invalid-txs-in-cache`: Boolean
max_tx_bytes: Number
max_batch_bytes: Number
experimental_max_gossip_connections_to_persistent_peers: Number
experimental_max_gossip_connections_to_non_persistent_peers: Number
}
class Statesync {
enable: Boolean
rpc_servers: String
trust_height: Number
trust_hash: String
trust_period: String
discovery_time: String
temp_dir: String
chunk_request_timeout: String
chunk_fetchers: String
}
class Blocksync {
version: String
}
class Consensus {
wal_file: String
timeout_propose: String
timeout_propose_delta: String
timeout_prevote: String
timeout_prevote_delta: String
timeout_precommit: String
timeout_precommit_delta: String
timeout_commit: String
double_sign_check_height: Number
skip_timeout_commit: Boolean
create_empty_blocks: Boolean
create_empty_blocks_interval: String
peer_gossip_sleep_duration: String
peer_query_maj23_sleep_duration: String
}
class Storage {
discard_abci_responses: Boolean
}
class TxIndex {
indexer: String
`psql-conn`: String
}
class Instrumentation {
prometheus: Boolean
prometheus_listen_addr: String
max_open_connections: Number
namespace: String
}
output {
renderer = new toml.Renderer {}
}
+518
View File
@@ -0,0 +1,518 @@
open module cosmos.chain.Genesis
app_name: String
app_version: String
genesis_time: String
chain_id: String
initial_height: Number
app_hash: Any
app_state: AppState
consensus: Consensus
class AppState {
`07-tendermint`: Any
auth: Auth
authz: Authz
bank: Bank
capability: Capability
circuit: Circuit
consensus: Any
crisis: Crisis
did: Svc
distribution: Distribution
dwn: Dwn
evidence: Evidence
feegrant: Feegrant
feeibc: Feeibc
genutil: Genutil
globalfee: Globalfee
gov: Gov
group: Group
ibc: Ibc
interchainaccounts: Interchainaccounts
mint: Mint
nft: Nft
packetfowardmiddleware: Packetfowardmiddleware
params: Any
poa: Poa
slashing: Slashing
staking: Staking
svc: Svc
tokenfactory: Tokenfactory
transfer: Transfer
upgrade: Vesting
vesting: Vesting
}
class Auth {
params: Params
accounts: Listing<Account>
}
class Params {
max_memo_characters: String
tx_sig_limit: String
tx_size_cost_per_byte: String
sig_verify_cost_ed25519: String
sig_verify_cost_secp256k1: String
}
class Account {
`@type`: String
address: String
pub_key: Any
account_number: String
sequence: String
}
class Authz {
authorization: Listing<Any>
}
class Bank {
params: BankParams
balances: Listing<Balance>
supply: Listing<ExpeditedMinDeposit>
denom_metadata: Listing<Any>
send_enabled: Listing<Any>
}
class BankParams {
send_enabled: Listing<Any>
default_send_enabled: Boolean
}
class Balance {
address: String
coins: Listing<ExpeditedMinDeposit>
}
class ExpeditedMinDeposit {
denom: String
amount: String
}
class Capability {
index: String
owners: Listing<Any>
}
class Circuit {
account_permissions: Listing<Any>
disabled_type_urls: Listing<Any>
}
class Crisis {
constant_fee: ExpeditedMinDeposit
}
class Svc {
params: SvcParams
}
class SvcParams {
attenuations: Listing<Any>
}
class Distribution {
params: DistributionParams
fee_pool: FeePool
delegator_withdraw_infos: Listing<Any>
previous_proposer: String
outstanding_rewards: Listing<Any>
validator_accumulated_commissions: Listing<Any>
validator_historical_rewards: Listing<Any>
validator_current_rewards: Listing<Any>
delegator_starting_infos: Listing<Any>
validator_slash_events: Listing<Any>
}
class DistributionParams {
community_tax: String
base_proposer_reward: String
bonus_proposer_reward: String
withdraw_addr_enabled: Boolean
}
class FeePool {
community_pool: Listing<Any>
}
class Dwn {
params: DwnParams
}
class DwnParams {
attenuations: Listing<Any>
allowed_operators: Listing<String>
}
class Evidence {
evidence: Listing<Any>
}
class Feegrant {
allowances: Listing<Any>
}
class Feeibc {
identified_fees: Listing<Any>
fee_enabled_channels: Listing<Any>
registered_payees: Listing<Any>
registered_counterparty_payees: Listing<Any>
forward_relayers: Listing<Any>
}
class Genutil {
gen_txs: Listing<GenTx>
}
class GenTx {
body: Body
auth_info: AuthInfo
signatures: Listing<String>
}
class Body {
messages: Listing<Message>
memo: String
timeout_height: String
extension_options: Listing<Any>
non_critical_extension_options: Listing<Any>
}
class Message {
`@type`: String
description: Description
commission: Commission
min_self_delegation: String
delegator_address: String
validator_address: String
pubkey: PublicKey
value: ExpeditedMinDeposit
}
class Description {
moniker: String
identity: String
website: String
security_contact: String
details: String
}
class Commission {
rate: String
max_rate: String
max_change_rate: String
}
class PublicKey {
`@type`: String
key: String
}
class AuthInfo {
signer_infos: Listing<SignerInfo>
fee: Fee
tip: Any
}
class SignerInfo {
public_key: PublicKey
mode_info: ModeInfo
sequence: String
}
class ModeInfo {
single: Single
}
class Single {
mode: String
}
class Fee {
amount: Listing<Any>
gas_limit: String
payer: String
granter: String
}
class Globalfee {
params: GlobalfeeParams
}
class GlobalfeeParams {
minimum_gas_prices: Listing<MinimumGasPrice>
}
class MinimumGasPrice {
amount: String
denom: String
}
class Gov {
starting_proposal_id: String
deposits: Listing<Any>
votes: Listing<Any>
proposals: Listing<Any>
deposit_params: Any
voting_params: Any
tally_params: Any
params: GovParams
constitution: String
}
class GovParams {
min_deposit: Listing<ExpeditedMinDeposit>
max_deposit_period: String
voting_period: String
quorum: String
threshold: String
veto_threshold: String
min_initial_deposit_ratio: String
proposal_cancel_ratio: String
proposal_cancel_dest: String
expedited_voting_period: String
expedited_threshold: String
expedited_min_deposit: Listing<ExpeditedMinDeposit>
burn_vote_quorum: Boolean
burn_proposal_deposit_prevote: Boolean
burn_vote_veto: Boolean
min_deposit_ratio: String
}
class Group {
group_seq: String
groups: Listing<Any>
group_members: Listing<Any>
group_policy_seq: String
group_policies: Listing<Any>
proposal_seq: String
proposals: Listing<Any>
votes: Listing<Any>
}
class Ibc {
client_genesis: ClientGenesis
connection_genesis: ConnectionGenesis
channel_genesis: ChannelGenesis
}
class ClientGenesis {
clients: Listing<Any>
clients_consensus: Listing<Any>
clients_metadata: Listing<Any>
params: ClientGenesisParams
create_localhost: Boolean
next_client_sequence: String
}
class ClientGenesisParams {
allowed_clients: Listing<String>
}
class ConnectionGenesis {
connections: Listing<Any>
client_connection_paths: Listing<Any>
next_connection_sequence: String
params: ConnectionGenesisParams
}
class ConnectionGenesisParams {
max_expected_time_per_block: String
}
class ChannelGenesis {
channels: Listing<Any>
acknowledgements: Listing<Any>
commitments: Listing<Any>
receipts: Listing<Any>
send_sequences: Listing<Any>
recv_sequences: Listing<Any>
ack_sequences: Listing<Any>
next_channel_sequence: String
params: ChannelGenesisParams
}
class ChannelGenesisParams {
upgrade_timeout: UpgradeTimeout
}
class UpgradeTimeout {
height: Height
timestamp: String
}
class Height {
revision_number: String
revision_height: String
}
class Interchainaccounts {
controller_genesis_state: ControllerGenesisState
host_genesis_state: HostGenesisState
}
class ControllerGenesisState {
active_channels: Listing<Any>
interchain_accounts: Listing<Any>
ports: Listing<Any>
params: ControllerGenesisStateParams
}
class ControllerGenesisStateParams {
controller_enabled: Boolean
}
class HostGenesisState {
active_channels: Listing<Any>
interchain_accounts: Listing<Any>
port: String
params: HostGenesisStateParams
}
class HostGenesisStateParams {
host_enabled: Boolean
allow_messages: Listing<String>
}
class Mint {
minter: Minter
params: MintParams
}
class Minter {
inflation: String
annual_provisions: String
}
class MintParams {
mint_denom: String
inflation_rate_change: String
inflation_max: String
inflation_min: String
goal_bonded: String
blocks_per_year: String
}
class Nft {
classes: Listing<Any>
entries: Listing<Any>
}
class Packetfowardmiddleware {
params: PacketfowardmiddlewareParams
in_flight_packets: Vesting
}
class PacketfowardmiddlewareParams {
fee_percentage: String
}
class Vesting {
}
class Poa {
params: PoaParams
}
class PoaParams {
admins: Listing<String>
allow_validator_self_exit: Boolean
}
class Slashing {
params: SlashingParams
signing_infos: Listing<Any>
missed_blocks: Listing<Any>
}
class SlashingParams {
signed_blocks_window: String
min_signed_per_window: String
downtime_jail_duration: String
slash_fraction_double_sign: String
slash_fraction_downtime: String
}
class Staking {
params: StakingParams
last_total_power: String
last_validator_powers: Listing<Any>
validators: Listing<Any>
delegations: Listing<Any>
unbonding_delegations: Listing<Any>
redelegations: Listing<Any>
exported: Boolean
}
class StakingParams {
unbonding_time: String
max_validators: Number
max_entries: Number
historical_entries: Number
bond_denom: String
min_commission_rate: String
}
class Tokenfactory {
params: TokenfactoryParams
factory_denoms: Listing<Any>
}
class TokenfactoryParams {
denom_creation_fee: Listing<Any>
denom_creation_gas_consume: Number
}
class Transfer {
port_id: String
denom_traces: Listing<Any>
params: TransferParams
total_escrowed: Listing<Any>
}
class TransferParams {
send_enabled: Boolean
receive_enabled: Boolean
}
class Consensus {
params: ConsensusParams
}
class ConsensusParams {
block: Block
evidence: ParamsEvidence
validator: Validator
version: Version
abci: Abci
}
class Block {
max_bytes: String
max_gas: String
}
class ParamsEvidence {
max_age_num_blocks: String
max_age_duration: String
max_bytes: String
}
class Validator {
pub_key_types: Listing<String>
}
class Version {
app: String
}
class Abci {
vote_extensions_enable_height: String
}
output {
renderer = new json.Renderer {}
}
+12
View File
@@ -0,0 +1,12 @@
amends "../basePklProject.pkl"
dependencies {
["toml"] { uri = "package://pkg.pkl-lang.org/pkl-pantry/pkl.toml@1.0.2" }
}
package {
version = "0.0.1"
description = "Cosmos chain configuration for Sonr.io"
}
@@ -0,0 +1,12 @@
{
"schemaVersion": 1,
"resolvedDependencies": {
"package://pkg.pkl-lang.org/pkl-pantry/pkl.toml@1": {
"type": "remote",
"uri": "projectpackage://pkg.pkl-lang.org/pkl-pantry/pkl.toml@1.0.2",
"checksums": {
"sha256": "45fea4cf14e7d776e131b338efe2a7016f86c87b0c0f532409f728033bd82f71"
}
}
}
}
+51
View File
@@ -0,0 +1,51 @@
/// Generated schema for Root
///
/// This module was generated from JSON Schema from
/// <file:///Users/prad/Developer/github.com/sonr-io/pkljar/ibc.json>.
///
/// WARN: The root schema describes open-ended properties, but this is not possible to describe at the
/// module level.
module cosmos.params.Asset
class Coin {
type: String
denom: String
name: String
symbol: String
description: String
decimals: Number
image: String
coinGeckoId: String
ibc_info: IbcInfo?
bridge_info: BridgeInfo?
}
class BridgeInfo {
path: String
enable: Boolean
counterparty: BridgeCounterparty
}
class BridgeCounterparty {
chain: String
contract: String
}
class IbcInfo {
path: String
client: IbcClient
counterparty: IbcCounterparty
}
class IbcClient {
channel: String
port: String
}
class IbcCounterparty {
channel: String
port: String
chain: String
denom: String
}
+74
View File
@@ -0,0 +1,74 @@
open module cosmos.chain.Params
class Chain {
chain_id_cosmos: String
chain_name: String
chain_image: String
staking_asset_denom: String
staking_asset_symbol: String
staking_asset_image: String
bech_account_prefix: String
bech_validator_prefix: String
origin_genesis_time: String
api_name: String
is_support_mintscan: Boolean
account_type: Listing<AccountType>
cosmos_fee_info: CosmosFeeInfo
grpc_endpoint: Listing<LcdEndpoint>
lcd_endpoint: Listing<LcdEndpoint>
explorer: Explorer
about: About
forum: Forum
description: Description
}
class AccountType {
hd_path: String?
pubkey_style: String?
pubkey_type: String?
is_default: Boolean?
}
class CosmosFeeInfo {
base: String?
rate: Listing<String>
is_simulable: Boolean?
simulated_gas_multiply: Number?
init_gas_limit: Number?
fee_threshold: String?
}
class LcdEndpoint {
provider: String?
url: String?
}
class Explorer {
name: String?
url: String?
account: String?
tx: String?
proposal: String?
}
class About {
website: String?
docs: String?
github: String?
blog: String?
twitter: String?
discord: String?
telegram: String?
youtube: String?
coingecko: String?
}
class Forum {
main: String?
}
class Description {
ko: String?
en: String?
ja: String?
}
@@ -0,0 +1,5 @@
amends "../basePklProject.pkl"
package {
version = "0.0.1"
}
@@ -0,0 +1,4 @@
{
"schemaVersion": 1,
"resolvedDependencies": {}
}
+275
View File
@@ -0,0 +1,275 @@
open module ipfs.node.Config
API: API
Addresses: Addresses
AutoNAT: Dynamic
Bootstrap: Listing
DNS: DNS
Datastore: Datastore
Discovery: Discovery
Experimental: Experimental
Gateway: Gateway
Identity: Identity
Internal: Dynamic
Ipns: Ipns
Migration: Migration
Mounts: Mounts
Peering: Peering
Pinning: Pinning
Plugins: Plugins
Provider: Provider
Pubsub: Pubsub
Reprovider: Reprovider
Routing: Routing
Swarm: Swarm
class API {
HTTPHeaders: HTTPHeaders
}
class HTTPHeaders {
`Access-Control-Allow-Origin`: Listing
}
class Addresses {
API: String
Announce: Listing<Any>
AppendAnnounce: Listing<Any>
Gateway: String
NoAnnounce: Listing<Any>
Swarm: Listing
}
class DNS {
Resolvers: Dynamic
}
class Datastore {
BloomFilterSize: Int
GCPeriod: String
HashOnRead: Boolean
Spec: Spec
StorageGCWatermark: Int
StorageMax: String
}
class Spec {
mounts: Listing
type: String
}
class MountsItem0 {
child: Child
mountpoint: String
prefix: String
type: String
}
class Child {
path: String
shardFunc: String
sync: Boolean
type: String
}
class MountsItem1 {
child: MountsItem1Child
mountpoint: String
prefix: String
type: String
}
class MountsItem1Child {
compression: String
path: String
type: String
}
class Discovery {
MDNS: MDNS
}
class MDNS {
Enabled: Boolean
}
class Experimental {
AcceleratedDHTClient: Boolean
FilestoreEnabled: Boolean
GraphsyncEnabled: Boolean
Libp2pStreamMounting: Boolean
P2pHttpProxy: Boolean
StrategicProviding: Boolean
UrlstoreEnabled: Boolean
}
class Gateway {
APICommands: Listing<Any>
HTTPHeaders: GatewayHTTPHeaders
NoDNSLink: Boolean
NoFetch: Boolean
PathPrefixes: Listing<Any>
PublicGateways: Any
RootRedirect: String
Writable: Boolean
}
class GatewayHTTPHeaders {
`Access-Control-Allow-Headers`: Listing
`Access-Control-Allow-Methods`: Listing
`Access-Control-Allow-Origin`: Listing
}
class Identity {
PeerID: String
PrivKey: String
}
class Ipns {
RecordLifetime: String
RepublishPeriod: String
ResolveCacheSize: Int
}
class Migration {
DownloadSources: Listing<Any>
Keep: String
}
class Mounts {
FuseAllowOther: Boolean
IPFS: String
IPNS: String
}
class Peering {
Peers: Listing
}
class PeersItem11 {
Addrs: Listing
ID: String
}
class Pinning {
RemoteServices: Dynamic
}
class Plugins {
Plugins: Any
}
class Provider {
Strategy: String
}
class Pubsub {
DisableSigning: Boolean
Router: String
}
class Reprovider {
Interval: String
Strategy: String
}
class Routing {
Methods: Any
Routers: Any
Type: String
}
class Swarm {
AddrFilters: Any
ConnMgr: Dynamic
DisableBandwidthMetrics: Boolean
DisableNatPortMap: Boolean
RelayClient: Dynamic
RelayService: Dynamic
ResourceMgr: Dynamic
Transports: Transports
}
class Transports {
Multiplexers: Dynamic
Network: Dynamic
Security: Dynamic
}
+5
View File
@@ -0,0 +1,5 @@
amends "../basePklProject.pkl"
package {
version = "0.0.1"
}
@@ -0,0 +1,4 @@
{
"schemaVersion": 1,
"resolvedDependencies": {}
}
+186
View File
@@ -0,0 +1,186 @@
open module matrix.element.Config
default_server_config: DefaultServerConfig
disable_custom_urls: Boolean
disable_guests: Boolean
disable_login_language_selector: Boolean
disable_3pid_login: Boolean
brand: String
integrations_ui_url: String
integrations_rest_url: String
integrations_widgets_urls: Listing<String>
branding: Branding
posthog: Posthog
default_country_code: String
show_labs_settings: Boolean
features: Features
default_federate: Boolean
default_theme: String
room_directory: RoomDirectory
enable_presence_by_hs_url: EnablePresenceByHsUrl
setting_defaults: SettingDefaults
jitsi: Jitsi
element_call: ElementCall
map_style_url: String
settings_defaults: SettingsDefaults
class DefaultServerConfig {
`m.homeserver`: MHomeserver
`m.identity_server`: MIdentityServer
`org.matrix.msc3575.proxy`: OrgMatrixMsc3575Proxy
}
class MHomeserver {
base_url: String
server_name: String
}
class MIdentityServer {
base_url: String
}
class OrgMatrixMsc3575Proxy {
url: String
}
class Branding {
welcome_background_url: String
auth_header_logo_url: String
}
class Posthog {
api_host: String
project_api_key: String
}
class Features {
feature_wysiwyg_composer: Boolean
feature_pinning: Boolean
feature_oidc_native_flow: Boolean
feature_sliding_sync: Boolean
feature_custom_themes: Boolean
}
class RoomDirectory {
servers: Listing<String>
}
class EnablePresenceByHsUrl {
`https://bm.chat`: Boolean
`https://matrix-client.matrix.org`: Boolean
}
class SettingDefaults {
breadcrumbs: Boolean
}
class Jitsi {
preferred_domain: String
}
class ElementCall {
url: String
participant_limit: Number
brand: String
}
class SettingsDefaults {
custom_themes: Listing<CustomTheme>
}
class CustomTheme {
name: String
is_dark: Boolean
colors: Colors
}
class Colors {
`accent-color`: String
`primary-color`: String
`warning-color`: String
alert: String?
`sidebar-color`: String
`roomlist-background-color`: String
`roomlist-text-color`: String
`roomlist-text-secondary-color`: String
`roomlist-highlights-color`: String
`roomlist-separator-color`: String
`timeline-background-color`: String
`timeline-text-color`: String
`secondary-content`: String?
`tertiary-content`: String?
`timeline-text-secondary-color`: String
`timeline-highlights-color`: String
`reaction-row-button-selected-bg-color`: String?
`menu-selected-color`: String?
`focus-bg-color`: String?
`room-highlight-color`: String?
`togglesw-off-color`: String?
`other-user-pill-bg-color`: String?
`username-colors`: Listing<String>?
`avatar-background-colors`: Listing<String>?
}
output {
renderer = new JsonRenderer {}
}
@@ -0,0 +1,6 @@
amends "../basePklProject.pkl"
package {
version = "0.0.1"
}
@@ -0,0 +1,4 @@
{
"schemaVersion": 1,
"resolvedDependencies": {}
}
@@ -0,0 +1,35 @@
open module matrix.service.AppService
id: String
as_token: String
hs_token: String
namespaces: Namespaces
sender_localpart: String
url: String
rate_limited: Boolean
`de.sorunome.msc2409.push_ephemeral`: Boolean
push_ephemeral: Boolean
`org.matrix.msc3202`: Boolean
class Namespaces {
rooms: Listing<Any>
users: Listing<Alias>
aliases: Listing<Alias>
}
class Alias {
regex: String
exclusive: Boolean
}
@@ -0,0 +1,5 @@
amends "../basePklProject.pkl"
package {
version = "0.0.2"
}
@@ -0,0 +1,4 @@
{
"schemaVersion": 1,
"resolvedDependencies": {}
}
@@ -0,0 +1,53 @@
open module matrix.synapse.Synapse
server_name: String
pid_file: String
public_baseurl: String
extra_well_known_client_content: ExtraWellKnownClientContent
app_service_config_files: Listing<String>
listeners: Listing<Listener>
database: Database
log_config: String
enable_registration: Boolean
enable_registration_without_verification: Boolean
media_store_path: String
report_stats: Boolean
signing_key_path: String
trusted_key_servers: Listing<TrustedKeyServer>
class ExtraWellKnownClientContent {
`org.matrix.msc3575.proxy`: OrgMatrixMsc3575Proxy
}
class OrgMatrixMsc3575Proxy {
url: String
}
class Listener {
port: Number
tls: Boolean
type: String
x_forwarded: Boolean
resources: Listing<Resource>
}
class Resource {
names: Listing<String>
compress: Boolean
}
class Database {
name: String
args: Args
}
class Args {
user: String
password: String
dbname: String
host: String
}
class TrustedKeyServer {
server_name: String
}
+13
View File
@@ -0,0 +1,13 @@
module sonr.beam
import "chain/app.pkl" as app
import "chain/client.pkl" as client
import "chain/config.pkl" as config
output {
files {
["config/app.toml"] = app.output
["config/client.toml"] = client.output
["config/config.toml"] = config.output
}
}
+5
View File
@@ -0,0 +1,5 @@
amends "../basePklProject.pkl"
package {
version = "0.0.1"
}
@@ -0,0 +1,4 @@
{
"schemaVersion": 1,
"resolvedDependencies": {}
}
@@ -0,0 +1,70 @@
extends "https://mod.pkl.sh/cosmos.chain/App.pkl"
`minimum-gas-prices` = "0usnr"
`query-gas-limit` = "0"
`pruning-keep-recent` = "0"
`pruning-interval` = "0"
`halt-height` = 0
`halt-time` = 0
`min-retain-blocks` = 0
`inter-block-cache` = true
`index-events` {
}
`iavl-cache-size` = 781250
`iavl-disable-fastnode` = true
`app-db-backend` = "goleveldb"
`grpc-web` {
enable = true
}
`state-sync` {
`snapshot-interval` = 0
`snapshot-keep-recent` = 2
}
pruning = "default"
telemetry {
`service-name` = "sonr-node"
enabled = false
`enable-hostname` = false
`enable-hostname-label` = true
`enable-service-label` = true
`prometheus-retention-time` = 0
`global-labels` {
}
`metrics-sink` = ""
`statsd-addr` = ""
`datadog-hostname` = ""
}
api {
enable = true
swagger = true
address = "tcp://0.0.0.0:1317"
`max-open-connections` = 1000
`rpc-read-timeout` = 10
`rpc-write-timeout` = 0
`rpc-max-body-bytes` = 1000000
`enabled-unsafe-cors` = false
}
grpc {
enable = true
address = "0.0.0.0:9090"
`max-recv-msg-size` = "10485760"
`max-send-msg-size` = "2147483647"
}
streaming {
abci {
keys {
}
plugin = ""
`stop-node-on-err` = true
}
}
mempool {
`max-txs` = 5000
}
@@ -0,0 +1,7 @@
extends "https://mod.pkl.sh/cosmos.chain/Client.pkl"
`chain-id` = "sonr-testnet-1"
`keyring-backend` = "test"
output = "text"
node = "tcp://localhost:26657"
`broadcast-mode` = "sync"
@@ -0,0 +1,139 @@
extends "https://mod.pkl.sh/cosmos.chain/Config.pkl"
version = "v0.38.12"
proxy_app = "tcp://127.0.0.1:26658"
moniker = "florence"
db_backend = "goleveldb"
db_dir = "data"
log_level = "info"
log_format = "plain"
genesis_file = "config/genesis.json"
priv_validator_key_file = "config/priv_validator_key.json"
priv_validator_state_file = "data/priv_validator_state.json"
priv_validator_laddr = ""
node_key_file = "config/node_key.json"
abci = "socket"
filter_peers = false
rpc {
laddr = "tcp://0.0.0.0:26657"
cors_allowed_origins {}
cors_allowed_methods {
"GET"
"POST"
"HEAD"
}
cors_allowed_headers {
"Accept"
"Accept-Encoding"
"Authorization"
"Origin"
"Content-Type"
"X-Requested-With"
"X-Server-Time"
}
grpc_laddr = ""
grpc_max_open_connections = 900
unsafe = false
max_open_connections = 900
max_subscription_clients = 100
max_subscriptions_per_client = 5
experimental_subscription_buffer_size = 200
experimental_websocket_write_buffer_size = 200
experimental_close_on_slow_client = false
timeout_broadcast_tx_commit = "10s"
max_request_batch_size = 10
max_body_bytes = 1000000
max_header_bytes = 1048576
tls_cert_file = ""
tls_key_file = ""
pprof_laddr = "localhost:6060"
}
p2p {
laddr = "tcp://0.0.0.0:26656"
external_address = ""
seeds = ""
persistent_peers = ""
addr_book_file = "config/addrbook.json"
addr_book_strict = true
max_num_inbound_peers = 40
max_num_outbound_peers = 10
unconditional_peer_ids = ""
persistent_peers_max_dial_period = "0s"
flush_throttle_timeout = "100ms"
max_packet_msg_payload_size = 1024
send_rate = 5120000
recv_rate = 5120000
pex = true
seed_mode = false
private_peer_ids = ""
allow_duplicate_ip = false
handshake_timeout = "20s"
dial_timeout = "3s"
}
mempool {
type = "flood"
recheck = true
recheck_timeout = "1s"
broadcast = true
wal_dir = ""
size = 5000
max_txs_bytes = 1073741824
cache_size = 10000
`keep-invalid-txs-in-cache` = false
max_tx_bytes = 1048576
max_batch_bytes = 0
experimental_max_gossip_connections_to_persistent_peers = 0
experimental_max_gossip_connections_to_non_persistent_peers = 0
}
statesync {
enable = false
rpc_servers = ""
trust_height = 0
trust_hash = ""
trust_period = "168h0m0s"
discovery_time = "15s"
temp_dir = ""
chunk_request_timeout = "10s"
chunk_fetchers = "4"
}
blocksync {
version = "v0"
}
consensus {
wal_file = "data/cs.wal/wal"
timeout_propose = "3s"
timeout_propose_delta = "500ms"
timeout_prevote = "1s"
timeout_prevote_delta = "500ms"
timeout_precommit = "1s"
timeout_precommit_delta = "500ms"
timeout_commit = "5s"
double_sign_check_height = 0
skip_timeout_commit = false
create_empty_blocks = true
create_empty_blocks_interval = "0s"
peer_gossip_sleep_duration = "100ms"
peer_query_maj23_sleep_duration = "2s"
}
storage {
discard_abci_responses = false
}
tx_index {
indexer = "kv"
`psql-conn` = ""
}
instrumentation {
prometheus = false
prometheus_listen_addr = ":26660"
max_open_connections = 3
namespace = "cometbft"
}
@@ -0,0 +1,2 @@
extends "https://mod.pkl.sh/cosmos.chain/Genesis.pkl"