tangle.example.json (3959B)
1 { 2 "server": { 3 "listen_addr": "0.0.0.0:7000", 4 "relay_url": "wss://relay.radroots.test" 5 }, 6 "pocket": { 7 "data_directory": "runtime/pocket", 8 "sync_policy": "flush_on_shutdown", 9 "query": { 10 "allow_scraping": false, 11 "allow_scrape_if_limited_to": 100, 12 "allow_scrape_if_max_seconds": 3600 13 } 14 }, 15 "groups": { 16 "enabled": true, 17 "canonical_relay_url": "wss://relay.radroots.test", 18 "relay_secret": "7777777777777777777777777777777777777777777777777777777777777777", 19 "owner_pubkeys": [ 20 "0000000000000000000000000000000000000000000000000000000000000001" 21 ], 22 "admin_pubkeys": [ 23 "0000000000000000000000000000000000000000000000000000000000000002" 24 ], 25 "policy": { 26 "public_join": false, 27 "invites_enabled": false 28 }, 29 "limits": { 30 "max_group_id_bytes": 128, 31 "max_group_tags_per_event": 8, 32 "max_supported_kinds": 512, 33 "max_member_list_pubkeys": 100000, 34 "max_outbox_replay_batch": 1000 35 } 36 }, 37 "auth": { 38 "challenge_ttl_seconds": 300, 39 "created_at_skew_seconds": 600 40 }, 41 "limits": { 42 "max_message_length": 1048576, 43 "max_subid_length": 64, 44 "max_subscriptions_per_connection": 64, 45 "max_filters_per_request": 10, 46 "max_tag_values_per_filter": 100, 47 "max_query_complexity": 2048, 48 "max_limit": 500, 49 "default_limit": 100, 50 "max_event_tags": 200, 51 "max_content_length": 65536, 52 "broadcast_channel_capacity": 4096, 53 "per_connection_outbound_queue": 256 54 }, 55 "rate_limits": { 56 "auth": { 57 "per_ip": { 58 "window_seconds": 60, 59 "max_hits": 120 60 }, 61 "per_pubkey": { 62 "window_seconds": 60, 63 "max_hits": 30 64 }, 65 "failures": { 66 "window_seconds": 300, 67 "max_hits": 5 68 }, 69 "failures_per_ip": { 70 "window_seconds": 300, 71 "max_hits": 20 72 } 73 }, 74 "event": { 75 "per_ip": { 76 "window_seconds": 60, 77 "max_hits": 600 78 }, 79 "per_pubkey": { 80 "window_seconds": 60, 81 "max_hits": 120 82 }, 83 "per_kind": { 84 "window_seconds": 60, 85 "max_hits": 1000 86 } 87 }, 88 "group": { 89 "write_per_ip": { 90 "window_seconds": 60, 91 "max_hits": 300 92 }, 93 "write_per_pubkey": { 94 "window_seconds": 60, 95 "max_hits": 60 96 }, 97 "write_per_group": { 98 "window_seconds": 60, 99 "max_hits": 90 100 }, 101 "write_per_kind": { 102 "window_seconds": 60, 103 "max_hits": 300 104 }, 105 "join_flow": { 106 "window_seconds": 300, 107 "max_hits": 10 108 }, 109 "join_flow_per_ip": { 110 "window_seconds": 300, 111 "max_hits": 30 112 } 113 }, 114 "req": { 115 "per_ip": { 116 "window_seconds": 60, 117 "max_hits": 600 118 }, 119 "per_connection": { 120 "window_seconds": 60, 121 "max_hits": 120 122 }, 123 "per_pubkey": { 124 "window_seconds": 60, 125 "max_hits": 240 126 }, 127 "per_group": { 128 "window_seconds": 60, 129 "max_hits": 240 130 }, 131 "per_kind": { 132 "window_seconds": 60, 133 "max_hits": 500 134 }, 135 "broad": { 136 "window_seconds": 60, 137 "max_hits": 30 138 } 139 }, 140 "count": { 141 "per_ip": { 142 "window_seconds": 60, 143 "max_hits": 300 144 }, 145 "per_connection": { 146 "window_seconds": 60, 147 "max_hits": 60 148 }, 149 "per_pubkey": { 150 "window_seconds": 60, 151 "max_hits": 120 152 }, 153 "per_group": { 154 "window_seconds": 60, 155 "max_hits": 120 156 }, 157 "per_kind": { 158 "window_seconds": 60, 159 "max_hits": 240 160 }, 161 "broad": { 162 "window_seconds": 60, 163 "max_hits": 20 164 } 165 } 166 }, 167 "observability": { 168 "tracing": { 169 "enabled": true, 170 "filter": "info,tangle=info,tangle_runtime=info,tangle_groups=info,tangle_store_pocket=info", 171 "format": "json" 172 } 173 } 174 }