Initial commit: add .gitignore and README
This commit is contained in:
62
config/besu/CLIQUEgenesis.json
Normal file
62
config/besu/CLIQUEgenesis.json
Normal file
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"config":{
|
||||
"chainId":1337,
|
||||
"londonBlock": 0,
|
||||
"zeroBaseFee": true,
|
||||
"clique":{
|
||||
"blockperiodseconds":15,
|
||||
"epochlength":30000
|
||||
}
|
||||
},
|
||||
"coinbase":"0x0000000000000000000000000000000000000000",
|
||||
"difficulty":"0x1",
|
||||
"extraData":"0x000000000000000000000000000000000000000000000000000000000000000093917cadbace5dfce132b991732c6cda9bcc5b8a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"gasLimit":"0xa00000",
|
||||
"mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"nonce":"0x0",
|
||||
"timestamp":"0x5c51a607",
|
||||
"alloc": {
|
||||
"0xfe3b557e8fb62b89f4916b721be55ceb828dbd73": {
|
||||
"privateKey": "0x8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63",
|
||||
"comment": "private key and this comment are ignored. In a real chain, the private key should NOT be stored",
|
||||
"balance": "0x130EE8E7179044400000"
|
||||
},
|
||||
"0x627306090abaB3A6e1400e9345bC60c78a8BEf57": {
|
||||
"privateKey": "0xc87509a1c067bbde78beb793e6fa76530b6382a4c0241e5e4a9ec0a0f44dc0d3",
|
||||
"comment": "private key and this comment are ignored. In a real chain, the private key should NOT be stored",
|
||||
"balance": "90000000000000000000000"
|
||||
},
|
||||
"0xf17f52151EbEF6C7334FAD080c5704D77216b732": {
|
||||
"privateKey": "0xae6ae8e5ccbfb04590405997ee2d52d2b330726137b875053c36d94e974d162f",
|
||||
"comment": "private key and this comment are ignored. In a real chain, the private key should NOT be stored",
|
||||
"balance": "90000000000000000000000"
|
||||
},
|
||||
"0xf0e2db6c8dc6c681bb5d6ad121a107f300e9b2b5": {
|
||||
"balance": "1000000000000000000000000000"
|
||||
},
|
||||
"0xca843569e3427144cead5e4d5999a3d0ccf92b8e": {
|
||||
"balance": "1000000000000000000000000000"
|
||||
},
|
||||
"0x0fbdc686b912d7722dc86510934589e0aaf3b55a": {
|
||||
"balance": "1000000000000000000000000000"
|
||||
},
|
||||
"0xc9c913c8c3c1cd416d80a0abf475db2062f161f6": {
|
||||
"balance": "1000000000000000000000000000"
|
||||
},
|
||||
"0xed9d02e382b34818e88b88a309c7fe71e65f419d": {
|
||||
"balance": "1000000000000000000000000000"
|
||||
},
|
||||
"0xb30f304642de3fee4365ed5cd06ea2e69d3fd0ca": {
|
||||
"balance": "1000000000000000000000000000"
|
||||
},
|
||||
"0x0886328869e4e1f401e1052a5f4aae8b45f42610": {
|
||||
"balance": "1000000000000000000000000000"
|
||||
},
|
||||
"0xf48de4a0c2939e62891f3c6aca68982975477e45": {
|
||||
"balance": "1000000000000000000000000000"
|
||||
}
|
||||
},
|
||||
"number":"0x0",
|
||||
"gasUsed":"0x0",
|
||||
"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000"
|
||||
}
|
||||
92
config/besu/IBFTgenesis.json
Normal file
92
config/besu/IBFTgenesis.json
Normal file
File diff suppressed because one or more lines are too long
95
config/besu/QBFTgenesis.json
Normal file
95
config/besu/QBFTgenesis.json
Normal file
File diff suppressed because one or more lines are too long
42
config/besu/config.toml
Normal file
42
config/besu/config.toml
Normal file
@@ -0,0 +1,42 @@
|
||||
|
||||
genesis-file="/config/genesis.json"
|
||||
node-private-key-file="/opt/besu/keys/nodekey"
|
||||
logging="INFO"
|
||||
data-path="/opt/besu/data"
|
||||
host-allowlist=["*"]
|
||||
min-gas-price=0
|
||||
|
||||
# rpc
|
||||
rpc-http-enabled=true
|
||||
rpc-http-host="0.0.0.0"
|
||||
rpc-http-port=8545
|
||||
rpc-http-cors-origins=["*"]
|
||||
|
||||
# ws
|
||||
rpc-ws-enabled=true
|
||||
rpc-ws-host="0.0.0.0"
|
||||
rpc-ws-port=8546
|
||||
|
||||
# graphql
|
||||
graphql-http-enabled=true
|
||||
graphql-http-host="0.0.0.0"
|
||||
graphql-http-port=8547
|
||||
graphql-http-cors-origins=["*"]
|
||||
|
||||
# metrics
|
||||
metrics-enabled=true
|
||||
metrics-host="0.0.0.0"
|
||||
metrics-port=9545
|
||||
|
||||
# permissions
|
||||
permissions-nodes-config-file-enabled=true
|
||||
permissions-nodes-config-file="/config/permissions_config.toml"
|
||||
|
||||
# bootnodes
|
||||
bootnodes=["enode://8208a3f344695d44e9cf2c023683cbea7b9343e2f70a5e804bd2c93858e945f8f91439eef96a4ab6c47ff06637d6fbe6472f96de1655a1bee57ea896654f3a22@172.16.239.11:30303"]
|
||||
|
||||
|
||||
# Discovery at boot is set to a list of static files, but will also discover new nodes should they be added
|
||||
# static nodes
|
||||
static-nodes-file="/config/static-nodes.json"
|
||||
discovery-enabled=true
|
||||
46
config/besu/log-config-splunk.xml
Normal file
46
config/besu/log-config-splunk.xml
Normal file
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Configuration status="WARN">
|
||||
<Properties>
|
||||
<Property name="root.log.level">${env:LOG_LEVEL:-INFO}</Property>
|
||||
<Property name="root.log.logger">${env:LOGGER:-Console}</Property>
|
||||
<Property name="host">${env:HOST:-${docker:containerId:-${hostName:-locahost}}}</Property>
|
||||
<Property name="splunk.url">${env:SPLUNK_URL}</Property>
|
||||
<Property name="splunk.token">${env:SPLUNK_TOKEN}</Property>
|
||||
<Property name="splunk.index">${env:SPLUNK_INDEX}</Property>
|
||||
<Property name="splunk.source">${env:SPLUNK_SOURCE:-besu}</Property>
|
||||
<Property name="splunk.sourcetype">${env:SPLUNK_SOURCETYPE:-besu}</Property>
|
||||
<Property name="splunk.batch_size_bytes">${env:SPLUNK_BATCH_SIZE_BYTES:-65536}</Property>
|
||||
<Property name="splunk.batch_size_count">${env:SPLUNK_BATCH_SIZE_COUNT:-1000}</Property>
|
||||
<Property name="splunk.batch_interval">${env:SPLUNK_BATCH_INTERVAL:-500}</Property>
|
||||
<Property name="splunk.disableCertificateValidation">${env:SPLUNK_SKIPTLSVERIFY:-false}</Property>
|
||||
</Properties>
|
||||
|
||||
<Appenders>
|
||||
<Routing name="Router">
|
||||
<Routes pattern="$${sys:root.log.logger}">
|
||||
<Route key="Splunk">
|
||||
<SplunkHttp name="Splunk"
|
||||
url="${sys:splunk.url}"
|
||||
token="${sys:splunk.token}"
|
||||
host="${sys:host}"
|
||||
index="${sys:splunk.index}"
|
||||
source="${sys:splunk.source}"
|
||||
sourcetype="${sys:splunk.sourcetype}"
|
||||
messageFormat="text"
|
||||
batch_size_bytes="${sys:splunk.batch_size_bytes}"
|
||||
batch_size_count="${sys:splunk.batch_size_count}"
|
||||
batch_interval="${sys:splunk.batch_interval}"
|
||||
disableCertificateValidation="${sys:splunk.disableCertificateValidation}">
|
||||
<PatternLayout pattern="%msg" />
|
||||
</SplunkHttp>
|
||||
</Route>
|
||||
</Routes>
|
||||
</Routing>
|
||||
</Appenders>
|
||||
<Loggers>
|
||||
<Logger name="org.apache.logging.log4j.status.StatusLogger" level="OFF"/>
|
||||
<Root level="${sys:root.log.level}">
|
||||
<AppenderRef ref="Router" />
|
||||
</Root>
|
||||
</Loggers>
|
||||
</Configuration>
|
||||
28
config/besu/log-config.xml
Normal file
28
config/besu/log-config.xml
Normal file
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Configuration status="INFO" monitorInterval="5">
|
||||
|
||||
<Properties>
|
||||
<Property name="root.log.level">INFO</Property>
|
||||
</Properties>
|
||||
|
||||
<Appenders>
|
||||
<Console name="Console" target="SYSTEM_OUT">
|
||||
<PatternLayout alwaysWriteExceptions="false" pattern='{"timestamp":"%d{ISO8601}","container":"${hostName}","level":"%level","thread":"%t","class":"%c{1}","message":"%msg","throwable":"%enc{%throwable}{JSON}"}%n'/>
|
||||
</Console>
|
||||
<RollingFile name="RollingFile" fileName="/tmp/besu/besu-${env:HOSTNAME}.log" filePattern="/tmp/besu/besu-${env:HOSTNAME}_%d{yyyy-MM-dd}_%i.log.gz" >
|
||||
<PatternLayout alwaysWriteExceptions="false" pattern='{"timestamp":"%d{ISO8601}","container":"${hostName}","level":"%level","thread":"%t","class":"%c{1}","message":"%msg","throwable":"%enc{%throwable}{JSON}"}%n'/>
|
||||
<Policies>
|
||||
<SizeBasedTriggeringPolicy size="10 MB" />
|
||||
</Policies>
|
||||
<DefaultRolloverStrategy max="5" />
|
||||
</RollingFile>
|
||||
</Appenders>
|
||||
|
||||
<Loggers>
|
||||
<Root level="${sys:root.log.level}">
|
||||
<AppenderRef ref="RollingFile" />
|
||||
<AppenderRef ref="Console" />
|
||||
</Root>
|
||||
</Loggers>
|
||||
|
||||
</Configuration>
|
||||
11
config/besu/permissions_config.toml
Normal file
11
config/besu/permissions_config.toml
Normal file
@@ -0,0 +1,11 @@
|
||||
nodes-allowlist=[
|
||||
"enode://8208a3f344695d44e9cf2c023683cbea7b9343e2f70a5e804bd2c93858e945f8f91439eef96a4ab6c47ff06637d6fbe6472f96de1655a1bee57ea896654f3a22@172.16.239.11:30303",
|
||||
"enode://b9050e002aa42464e6b07c811a1f9dfec01249af03f67b753e8415420649b184447bb2a784863ccbf327ad9e31aaba803464979dfe6a7facc669151a5fa6ad1b@172.16.239.12:30303",
|
||||
"enode://59cf0c623c582fa9b19bdf70fb6bade07f4ae32218dd4d1c7e2c7e65acf87da45cf2ab55d16d27360aafef17622c37c09db60d7680ebcc17b78867f4c05bcaa4@172.16.239.13:30303",
|
||||
"enode://2fd5b5b6ad529f55b71602026d1849d0036f06482368b5812fa793014195d3571b0840dbc4175617de2a12db8f1222c012420d471ae5c0d982118625cae58868@172.16.239.14:30303",
|
||||
"enode://86fcc16f4730fbfd238dc17ea552854c0943923bb1d5e886e5601b8d884fb0519060e0023f495dd24ffe60a65660fb7fdcdebfceedd2b3673dfa63658825924b@172.16.239.15:30303",
|
||||
"enode://98496800174b3c73ae33cba59f8f5e686cd488f7897c2edb52e2cf46383d75cd03dbb58dde07185bc0953f98800ca9a89f4b5ef450c5e51292ea08ec6130ee0c@172.16.239.16:30303",
|
||||
"enode://ad2c79c6561bc8212c2e8382611c62e406e767d1f3106c68ca206900f575cb8ba9a8be111c645cd9803701d684454c782c40d2361b000a32ed03d26228b30ec1@172.16.239.17:30303",
|
||||
"enode://af19c92deb635bd7720634de9b2e7908208530d6f5e96eee003a8f1799e5be4037957d7e2fdbe3605e3a38dab05c961679c02133a0e624e23a72f7961e8af6ac@172.16.239.18:30303"
|
||||
]
|
||||
|
||||
11
config/besu/static-nodes.json
Normal file
11
config/besu/static-nodes.json
Normal file
@@ -0,0 +1,11 @@
|
||||
[
|
||||
"enode://8208a3f344695d44e9cf2c023683cbea7b9343e2f70a5e804bd2c93858e945f8f91439eef96a4ab6c47ff06637d6fbe6472f96de1655a1bee57ea896654f3a22@172.16.239.11:30303",
|
||||
"enode://b9050e002aa42464e6b07c811a1f9dfec01249af03f67b753e8415420649b184447bb2a784863ccbf327ad9e31aaba803464979dfe6a7facc669151a5fa6ad1b@172.16.239.12:30303",
|
||||
"enode://59cf0c623c582fa9b19bdf70fb6bade07f4ae32218dd4d1c7e2c7e65acf87da45cf2ab55d16d27360aafef17622c37c09db60d7680ebcc17b78867f4c05bcaa4@172.16.239.13:30303",
|
||||
"enode://2fd5b5b6ad529f55b71602026d1849d0036f06482368b5812fa793014195d3571b0840dbc4175617de2a12db8f1222c012420d471ae5c0d982118625cae58868@172.16.239.14:30303",
|
||||
"enode://86fcc16f4730fbfd238dc17ea552854c0943923bb1d5e886e5601b8d884fb0519060e0023f495dd24ffe60a65660fb7fdcdebfceedd2b3673dfa63658825924b@172.16.239.15:30303",
|
||||
"enode://98496800174b3c73ae33cba59f8f5e686cd488f7897c2edb52e2cf46383d75cd03dbb58dde07185bc0953f98800ca9a89f4b5ef450c5e51292ea08ec6130ee0c@172.16.239.16:30303",
|
||||
"enode://ad2c79c6561bc8212c2e8382611c62e406e767d1f3106c68ca206900f575cb8ba9a8be111c645cd9803701d684454c782c40d2361b000a32ed03d26228b30ec1@172.16.239.17:30303",
|
||||
"enode://af19c92deb635bd7720634de9b2e7908208530d6f5e96eee003a8f1799e5be4037957d7e2fdbe3605e3a38dab05c961679c02133a0e624e23a72f7961e8af6ac@172.16.239.18:30303"
|
||||
]
|
||||
|
||||
8
config/ethsigner/createKey.js
Normal file
8
config/ethsigner/createKey.js
Normal file
@@ -0,0 +1,8 @@
|
||||
const Web3 = require('web3')
|
||||
|
||||
// Web3 initialization (should point to the JSON-RPC endpoint)
|
||||
const web3 = new Web3(new Web3.providers.HttpProvider('http://127.0.0.1:8545'))
|
||||
|
||||
var V3KeyStore = web3.eth.accounts.encrypt("797bbe0373132e8c5483515b68ecbb6d3581b56f0205b653ad2b30a559e83891", "Password1");
|
||||
console.log(JSON.stringify(V3KeyStore));
|
||||
process.exit();
|
||||
1
config/ethsigner/key
Normal file
1
config/ethsigner/key
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"id":"0e3d044a-26b4-429f-a5d3-def4a62a77ec","address":"9b790656b9ec0db1936ed84b3bea605873558198","crypto":{"ciphertext":"4d34be50618c36fb57349a8a7dc7b0c46f7c6883c817087863ff4f1fbc957582","cipherparams":{"iv":"723a6a815dcaf255ebd1da1bfb14e1b8"},"cipher":"aes-128-ctr","kdf":"scrypt","kdfparams":{"dklen":32,"salt":"3d04a3f225d3d5874388484730a30d45627399d69721a7c7fb653f8e0e90a67b","n":8192,"r":8,"p":1},"mac":"5c04e705196b35abace4da61700921d7762dba782ed68a4cd9917dd75badaacb"}}
|
||||
1
config/ethsigner/password
Normal file
1
config/ethsigner/password
Normal file
@@ -0,0 +1 @@
|
||||
Password1
|
||||
884
config/grafana/provisioning/dashboards/besu.json
Normal file
884
config/grafana/provisioning/dashboards/besu.json
Normal file
@@ -0,0 +1,884 @@
|
||||
{
|
||||
"__inputs": [
|
||||
{
|
||||
"name": "Prometheus",
|
||||
"label": "Prometheus",
|
||||
"description": "",
|
||||
"type": "datasource",
|
||||
"pluginId": "prometheus",
|
||||
"pluginName": "Prometheus"
|
||||
}
|
||||
],
|
||||
"__requires": [
|
||||
{
|
||||
"type": "grafana",
|
||||
"id": "grafana",
|
||||
"name": "Grafana",
|
||||
"version": "6.2.2"
|
||||
},
|
||||
{
|
||||
"type": "panel",
|
||||
"id": "graph",
|
||||
"name": "Graph",
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "datasource",
|
||||
"id": "prometheus",
|
||||
"name": "Prometheus",
|
||||
"version": "1.0.0"
|
||||
},
|
||||
{
|
||||
"type": "panel",
|
||||
"id": "table",
|
||||
"name": "Table",
|
||||
"version": ""
|
||||
}
|
||||
],
|
||||
"annotations": {
|
||||
"list": [
|
||||
{
|
||||
"builtIn": 1,
|
||||
"datasource": "-- Grafana --",
|
||||
"enable": true,
|
||||
"hide": true,
|
||||
"iconColor": "rgba(0, 211, 255, 1)",
|
||||
"name": "Annotations & Alerts",
|
||||
"type": "dashboard"
|
||||
}
|
||||
]
|
||||
},
|
||||
"description": "Provides an overview of Besu nodes",
|
||||
"editable": true,
|
||||
"gnetId": 10273,
|
||||
"graphTooltip": 0,
|
||||
"id": null,
|
||||
"iteration": 1560146167177,
|
||||
"links": [],
|
||||
"panels": [
|
||||
{
|
||||
"columns": [],
|
||||
"fontSize": "120%",
|
||||
"gridPos": {
|
||||
"h": 9,
|
||||
"w": 24,
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"id": 10,
|
||||
"links": [],
|
||||
"options": {},
|
||||
"pageSize": null,
|
||||
"scroll": true,
|
||||
"showHeader": true,
|
||||
"sort": {
|
||||
"col": 2,
|
||||
"desc": true
|
||||
},
|
||||
"styles": [
|
||||
{
|
||||
"alias": "",
|
||||
"colorMode": null,
|
||||
"colors": [
|
||||
"rgba(245, 54, 54, 0.9)",
|
||||
"rgba(237, 129, 40, 0.89)",
|
||||
"rgba(50, 172, 45, 0.97)"
|
||||
],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"mappingType": 1,
|
||||
"pattern": "job",
|
||||
"thresholds": [],
|
||||
"type": "hidden",
|
||||
"unit": "short"
|
||||
},
|
||||
{
|
||||
"alias": "Chain Height",
|
||||
"colorMode": null,
|
||||
"colors": [
|
||||
"rgba(245, 54, 54, 0.9)",
|
||||
"rgba(237, 129, 40, 0.89)",
|
||||
"rgba(50, 172, 45, 0.97)"
|
||||
],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"mappingType": 1,
|
||||
"pattern": "Value #A",
|
||||
"thresholds": [],
|
||||
"type": "number",
|
||||
"unit": "locale"
|
||||
},
|
||||
{
|
||||
"alias": "Total Difficulty",
|
||||
"colorMode": null,
|
||||
"colors": [
|
||||
"rgba(245, 54, 54, 0.9)",
|
||||
"rgba(237, 129, 40, 0.89)",
|
||||
"rgba(50, 172, 45, 0.97)"
|
||||
],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"mappingType": 1,
|
||||
"pattern": "Value #B",
|
||||
"thresholds": [],
|
||||
"type": "number",
|
||||
"unit": "sci"
|
||||
},
|
||||
{
|
||||
"alias": "",
|
||||
"colorMode": null,
|
||||
"colors": [
|
||||
"rgba(245, 54, 54, 0.9)",
|
||||
"rgba(237, 129, 40, 0.89)",
|
||||
"rgba(50, 172, 45, 0.97)"
|
||||
],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"mappingType": 1,
|
||||
"pattern": "Time",
|
||||
"thresholds": [],
|
||||
"type": "hidden",
|
||||
"unit": "short"
|
||||
},
|
||||
{
|
||||
"alias": "",
|
||||
"colorMode": null,
|
||||
"colors": [
|
||||
"rgba(245, 54, 54, 0.9)",
|
||||
"rgba(237, 129, 40, 0.89)",
|
||||
"rgba(50, 172, 45, 0.97)"
|
||||
],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"mappingType": 1,
|
||||
"pattern": "__name__",
|
||||
"thresholds": [],
|
||||
"type": "hidden",
|
||||
"unit": "short"
|
||||
},
|
||||
{
|
||||
"alias": "Peer Count",
|
||||
"colorMode": null,
|
||||
"colors": [
|
||||
"rgba(245, 54, 54, 0.9)",
|
||||
"rgba(237, 129, 40, 0.89)",
|
||||
"rgba(50, 172, 45, 0.97)"
|
||||
],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"mappingType": 1,
|
||||
"pattern": "Value #C",
|
||||
"thresholds": [
|
||||
""
|
||||
],
|
||||
"type": "number",
|
||||
"unit": "locale"
|
||||
},
|
||||
{
|
||||
"alias": "Block Time (5m avg)",
|
||||
"colorMode": null,
|
||||
"colors": [
|
||||
"rgba(245, 54, 54, 0.9)",
|
||||
"rgba(237, 129, 40, 0.89)",
|
||||
"rgba(50, 172, 45, 0.97)"
|
||||
],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"mappingType": 1,
|
||||
"pattern": "Value #D",
|
||||
"thresholds": [],
|
||||
"type": "number",
|
||||
"unit": "s"
|
||||
},
|
||||
{
|
||||
"alias": "System",
|
||||
"colorMode": null,
|
||||
"colors": [
|
||||
"rgba(245, 54, 54, 0.9)",
|
||||
"rgba(237, 129, 40, 0.89)",
|
||||
"rgba(50, 172, 45, 0.97)"
|
||||
],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"mappingType": 1,
|
||||
"pattern": "instance",
|
||||
"thresholds": [],
|
||||
"type": "string",
|
||||
"unit": "short",
|
||||
"valueMaps": []
|
||||
},
|
||||
{
|
||||
"alias": "Time Since Last Block",
|
||||
"colorMode": "value",
|
||||
"colors": [
|
||||
"rgba(50, 172, 45, 0.97)",
|
||||
"rgba(237, 129, 40, 0.89)",
|
||||
"rgba(245, 54, 54, 0.9)"
|
||||
],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 0,
|
||||
"mappingType": 1,
|
||||
"pattern": "Value #E",
|
||||
"thresholds": [
|
||||
"120",
|
||||
"240"
|
||||
],
|
||||
"type": "number",
|
||||
"unit": "dtdurations"
|
||||
},
|
||||
{
|
||||
"alias": "Target Chain Height",
|
||||
"colorMode": null,
|
||||
"colors": [
|
||||
"rgba(245, 54, 54, 0.9)",
|
||||
"rgba(237, 129, 40, 0.89)",
|
||||
"rgba(50, 172, 45, 0.97)"
|
||||
],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"mappingType": 1,
|
||||
"pattern": "Value #F",
|
||||
"thresholds": [],
|
||||
"type": "number",
|
||||
"unit": "locale"
|
||||
},
|
||||
{
|
||||
"alias": "Blocks Behind",
|
||||
"colorMode": "value",
|
||||
"colors": [
|
||||
"rgba(50, 172, 45, 0.97)",
|
||||
"rgba(237, 129, 40, 0.89)",
|
||||
"rgba(245, 54, 54, 0.9)"
|
||||
],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"mappingType": 1,
|
||||
"pattern": "Value #G",
|
||||
"thresholds": [
|
||||
"1",
|
||||
"10"
|
||||
],
|
||||
"type": "number",
|
||||
"unit": "locale",
|
||||
"valueMaps": [
|
||||
{
|
||||
"text": "Yes",
|
||||
"value": "1"
|
||||
},
|
||||
{
|
||||
"text": "No",
|
||||
"value": "0"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"alias": "% Peer Limit Used",
|
||||
"colorMode": "value",
|
||||
"colors": [
|
||||
"rgba(245, 54, 54, 0.9)",
|
||||
"rgba(237, 129, 40, 0.89)",
|
||||
"rgba(50, 172, 45, 0.97)"
|
||||
],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 0,
|
||||
"mappingType": 1,
|
||||
"pattern": "Value #H",
|
||||
"thresholds": [
|
||||
"0.25",
|
||||
"0.75"
|
||||
],
|
||||
"type": "number",
|
||||
"unit": "percentunit"
|
||||
},
|
||||
{
|
||||
"alias": "",
|
||||
"colorMode": null,
|
||||
"colors": [
|
||||
"rgba(245, 54, 54, 0.9)",
|
||||
"rgba(237, 129, 40, 0.89)",
|
||||
"rgba(50, 172, 45, 0.97)"
|
||||
],
|
||||
"decimals": 2,
|
||||
"pattern": "/.*/",
|
||||
"thresholds": [],
|
||||
"type": "number",
|
||||
"unit": "short"
|
||||
}
|
||||
],
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum by (instance) (ethereum_blockchain_height{instance=~\"$system\"})",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"interval": "",
|
||||
"intervalFactor": 1,
|
||||
"legendFormat": "Chain Height",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"expr": "sum by (instance) (ethereum_best_known_block_number{instance=~\"$system\"})",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 1,
|
||||
"refId": "F"
|
||||
},
|
||||
{
|
||||
"expr": "sum by (instance) (ethereum_best_known_block_number{instance=~\"$system\"} - ethereum_blockchain_height{instance=~\"$system\"})",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 1,
|
||||
"refId": "G"
|
||||
},
|
||||
{
|
||||
"expr": "sum by (instance) (besu_blockchain_difficulty_total{instance=~\"$system\"})",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 1,
|
||||
"legendFormat": "Total Difficulty",
|
||||
"refId": "B"
|
||||
},
|
||||
{
|
||||
"expr": "sum by (instance) (1/rate(ethereum_blockchain_height{instance=~\"$system\"}[5m]))",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 1,
|
||||
"refId": "D"
|
||||
},
|
||||
{
|
||||
"expr": "sum by (instance) (time() - besu_blockchain_chain_head_timestamp{instance=~\"$system\"})",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 1,
|
||||
"refId": "E"
|
||||
},
|
||||
{
|
||||
"expr": "sum by (instance) (ethereum_peer_count{instance=~\"$system\"})",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 1,
|
||||
"legendFormat": "Peer Count",
|
||||
"refId": "C"
|
||||
},
|
||||
{
|
||||
"expr": "sum by (instance) (ethereum_peer_count{instance=~\"$system\"} / ethereum_peer_limit{instance=~\"$system\"})",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 1,
|
||||
"refId": "H"
|
||||
}
|
||||
],
|
||||
"title": "Overview",
|
||||
"transform": "table",
|
||||
"type": "table"
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 14,
|
||||
"w": 12,
|
||||
"x": 0,
|
||||
"y": 9
|
||||
},
|
||||
"id": 12,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": true,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"options": {},
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "1/rate(ethereum_blockchain_height{instance=~\"$system\"}[5m])",
|
||||
"format": "time_series",
|
||||
"interval": "",
|
||||
"intervalFactor": 1,
|
||||
"legendFormat": "{{instance}}",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"expr": "",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 1,
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeRegions": [],
|
||||
"timeShift": null,
|
||||
"title": "Block Time",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "s",
|
||||
"label": null,
|
||||
"logBase": 10,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false,
|
||||
"alignLevel": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 14,
|
||||
"w": 12,
|
||||
"x": 12,
|
||||
"y": 9
|
||||
},
|
||||
"id": 13,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": true,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"options": {},
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "ethereum_best_known_block_number{instance=~\"$system\"} - ethereum_blockchain_height{instance=~\"$system\"}",
|
||||
"format": "time_series",
|
||||
"interval": "",
|
||||
"intervalFactor": 1,
|
||||
"legendFormat": "{{instance}}",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeRegions": [],
|
||||
"timeShift": null,
|
||||
"title": "Blocks Behind",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "locale",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false,
|
||||
"alignLevel": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 12,
|
||||
"w": 24,
|
||||
"x": 0,
|
||||
"y": 23
|
||||
},
|
||||
"id": 6,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"options": {},
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "irate(process_cpu_seconds_total{instance=~\"$system\"}[1m])",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 1,
|
||||
"legendFormat": "CPU Time IRate [{{instance}}]",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeRegions": [],
|
||||
"timeShift": null,
|
||||
"title": "CPU",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false,
|
||||
"alignLevel": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "Prometheus",
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 12,
|
||||
"w": 12,
|
||||
"x": 0,
|
||||
"y": 35
|
||||
},
|
||||
"id": 8,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"options": {},
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "rate(jvm_gc_collection_seconds_sum{instance=~\"$system\"}[1m])",
|
||||
"format": "time_series",
|
||||
"interval": "",
|
||||
"intervalFactor": 5,
|
||||
"legendFormat": "{{gc}} [{{instance}}]",
|
||||
"metric": "jvm_gc_collection_seconds_sum",
|
||||
"refId": "A",
|
||||
"step": 10
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeRegions": [],
|
||||
"timeShift": null,
|
||||
"title": "GC time",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"decimals": null,
|
||||
"format": "percentunit",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": "1",
|
||||
"min": "0",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false,
|
||||
"alignLevel": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"fill": 1,
|
||||
"gridPos": {
|
||||
"h": 12,
|
||||
"w": 12,
|
||||
"x": 12,
|
||||
"y": 35
|
||||
},
|
||||
"id": 4,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": true,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"options": {},
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "jvm_memory_bytes_used{instance=~\"$system\", area=\"heap\"} + ignoring(area) jvm_memory_bytes_used{instance=~\"$system\", area=\"nonheap\"}",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 5,
|
||||
"legendFormat": "{{instance}}",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeRegions": [],
|
||||
"timeShift": null,
|
||||
"title": "Memory Used",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "decbytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false,
|
||||
"alignLevel": null
|
||||
}
|
||||
}
|
||||
],
|
||||
"refresh": "10s",
|
||||
"schemaVersion": 18,
|
||||
"style": "dark",
|
||||
"tags": [
|
||||
"besu",
|
||||
"ethereum"
|
||||
],
|
||||
"templating": {
|
||||
"list": [
|
||||
{
|
||||
"allValue": null,
|
||||
"current": {},
|
||||
"datasource": "Prometheus",
|
||||
"definition": "ethereum_blockchain_height",
|
||||
"hide": 0,
|
||||
"includeAll": true,
|
||||
"label": "System",
|
||||
"multi": true,
|
||||
"name": "system",
|
||||
"options": [],
|
||||
"query": "ethereum_blockchain_height",
|
||||
"refresh": 2,
|
||||
"regex": "/instance=\"([^\"]*)\"/",
|
||||
"skipUrlSync": false,
|
||||
"sort": 5,
|
||||
"tagValuesQuery": "",
|
||||
"tags": [],
|
||||
"tagsQuery": "",
|
||||
"type": "query",
|
||||
"useTags": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"time": {
|
||||
"from": "now-12h",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {
|
||||
"refresh_intervals": [
|
||||
"5s",
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
],
|
||||
"time_options": [
|
||||
"5m",
|
||||
"15m",
|
||||
"1h",
|
||||
"6h",
|
||||
"12h",
|
||||
"24h",
|
||||
"2d",
|
||||
"7d",
|
||||
"30d"
|
||||
]
|
||||
},
|
||||
"timezone": "",
|
||||
"title": "Besu Overview",
|
||||
"uid": "XE4V0WGZz",
|
||||
"version": 1
|
||||
}
|
||||
12
config/grafana/provisioning/dashboards/dashboard.yml
Normal file
12
config/grafana/provisioning/dashboards/dashboard.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
---
|
||||
apiVersion: 1
|
||||
|
||||
providers:
|
||||
- name: 'Prometheus'
|
||||
orgId: 1
|
||||
folder: ''
|
||||
type: file
|
||||
disableDeletion: false
|
||||
editable: true
|
||||
options:
|
||||
path: /etc/grafana/provisioning/dashboards
|
||||
284
config/grafana/provisioning/dashboards/loki.json
Normal file
284
config/grafana/provisioning/dashboards/loki.json
Normal file
@@ -0,0 +1,284 @@
|
||||
{
|
||||
"__inputs": [
|
||||
{
|
||||
"name": "loki",
|
||||
"label": "loki",
|
||||
"description": "",
|
||||
"type": "datasource",
|
||||
"pluginId": "loki",
|
||||
"pluginName": "Loki"
|
||||
}
|
||||
],
|
||||
"__requires": [
|
||||
{
|
||||
"type": "grafana",
|
||||
"id": "grafana",
|
||||
"name": "Grafana",
|
||||
"version": "7.1.0"
|
||||
},
|
||||
{
|
||||
"type": "panel",
|
||||
"id": "graph",
|
||||
"name": "Graph",
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "panel",
|
||||
"id": "logs",
|
||||
"name": "Logs",
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "datasource",
|
||||
"id": "loki",
|
||||
"name": "Loki",
|
||||
"version": "1.0.0"
|
||||
}
|
||||
],
|
||||
"annotations": {
|
||||
"list": [
|
||||
{
|
||||
"$$hashKey": "object:75",
|
||||
"builtIn": 1,
|
||||
"datasource": "-- Grafana --",
|
||||
"enable": true,
|
||||
"hide": true,
|
||||
"iconColor": "rgba(0, 211, 255, 1)",
|
||||
"name": "Annotations & Alerts",
|
||||
"type": "dashboard"
|
||||
}
|
||||
]
|
||||
},
|
||||
"description": "Quorum Log Viewer for Loki",
|
||||
"editable": false,
|
||||
"gnetId": 13639,
|
||||
"graphTooltip": 0,
|
||||
"id": null,
|
||||
"iteration": 1608932746420,
|
||||
"links": [
|
||||
{
|
||||
"$$hashKey": "object:59",
|
||||
"icon": "bolt",
|
||||
"includeVars": true,
|
||||
"keepTime": true,
|
||||
"tags": [],
|
||||
"targetBlank": true,
|
||||
"title": "View In Explore",
|
||||
"type": "link",
|
||||
"url": "/explore?orgId=1&left=[\"now-1h\",\"now\",\"Loki\",{\"expr\":\"{job=\\\"$app\\\"}\"},{\"ui\":[true,true,true,\"none\"]}]"
|
||||
},
|
||||
{
|
||||
"$$hashKey": "object:61",
|
||||
"icon": "external link",
|
||||
"tags": [],
|
||||
"targetBlank": true,
|
||||
"title": "Learn LogQL",
|
||||
"type": "link",
|
||||
"url": "https://grafana.com/docs/loki/latest/logql/"
|
||||
}
|
||||
],
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": true,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "Loki",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {},
|
||||
"links": []
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": {
|
||||
"h": 3,
|
||||
"w": 24,
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"hiddenSeries": false,
|
||||
"id": 6,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": false,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": false,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pluginVersion": "7.1.0",
|
||||
"pointradius": 2,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(count_over_time({job=\"$app\"} |= \"$search\" [$__interval]))",
|
||||
"legendFormat": "",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeRegions": [],
|
||||
"timeShift": null,
|
||||
"title": "",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"$$hashKey": "object:168",
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": false
|
||||
},
|
||||
{
|
||||
"$$hashKey": "object:169",
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": false
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false,
|
||||
"alignLevel": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"datasource": "Loki",
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 25,
|
||||
"w": 24,
|
||||
"x": 0,
|
||||
"y": 3
|
||||
},
|
||||
"id": 2,
|
||||
"maxDataPoints": "",
|
||||
"options": {
|
||||
"showLabels": false,
|
||||
"showTime": true,
|
||||
"sortOrder": "Descending",
|
||||
"wrapLogMessage": false
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "{job=\"$app\"} |= \"$search\" | logfmt",
|
||||
"hide": false,
|
||||
"legendFormat": "",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "",
|
||||
"transparent": true,
|
||||
"type": "logs"
|
||||
}
|
||||
],
|
||||
"refresh": false,
|
||||
"schemaVersion": 26,
|
||||
"style": "dark",
|
||||
"tags": [],
|
||||
"templating": {
|
||||
"list": [
|
||||
{
|
||||
"allValue": null,
|
||||
"current": {},
|
||||
"datasource": "Loki",
|
||||
"definition": "label_values(job)",
|
||||
"hide": 0,
|
||||
"includeAll": false,
|
||||
"label": "App",
|
||||
"multi": false,
|
||||
"name": "app",
|
||||
"options": [],
|
||||
"query": "label_values(job)",
|
||||
"refresh": 1,
|
||||
"regex": "",
|
||||
"skipUrlSync": false,
|
||||
"sort": 0,
|
||||
"tagValuesQuery": "",
|
||||
"tags": [],
|
||||
"tagsQuery": "",
|
||||
"type": "query",
|
||||
"useTags": false
|
||||
},
|
||||
{
|
||||
"current": {
|
||||
"selected": false,
|
||||
"text": "",
|
||||
"value": ""
|
||||
},
|
||||
"hide": 0,
|
||||
"label": "String Match",
|
||||
"name": "search",
|
||||
"options": [
|
||||
{
|
||||
"selected": true,
|
||||
"text": "",
|
||||
"value": ""
|
||||
}
|
||||
],
|
||||
"query": "",
|
||||
"skipUrlSync": false,
|
||||
"type": "textbox"
|
||||
}
|
||||
]
|
||||
},
|
||||
"time": {
|
||||
"from": "now-1h",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {
|
||||
"hidden": false,
|
||||
"refresh_intervals": [
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
]
|
||||
},
|
||||
"timezone": "",
|
||||
"title": "Quorum Logs Loki",
|
||||
"uid": "Ak6eXLsPxFemKYKEXfcH",
|
||||
"version": 1
|
||||
}
|
||||
2205
config/grafana/provisioning/dashboards/quorum.json
Normal file
2205
config/grafana/provisioning/dashboards/quorum.json
Normal file
File diff suppressed because it is too large
Load Diff
54
config/grafana/provisioning/datasources/loki.yml
Normal file
54
config/grafana/provisioning/datasources/loki.yml
Normal file
@@ -0,0 +1,54 @@
|
||||
# config file version
|
||||
apiVersion: 1
|
||||
|
||||
# list of datasources that should be deleted from the database
|
||||
deleteDatasources:
|
||||
- name: Graphite
|
||||
orgId: 1
|
||||
|
||||
# list of datasources to insert/update depending
|
||||
# what's available in the database
|
||||
datasources:
|
||||
# <string, required> name of the datasource. Required
|
||||
- name: Loki
|
||||
# <string, required> datasource type. Required
|
||||
type: loki
|
||||
# <string, required> access mode. proxy or direct (Server or Browser in the UI). Required
|
||||
access: proxy
|
||||
# <int> org id. will default to orgId 1 if not specified
|
||||
orgId: 1
|
||||
# <string> url
|
||||
url: http://loki:3100/
|
||||
# <string> Deprecated, use secureJsonData.password
|
||||
password:
|
||||
# <string> database user, if used
|
||||
user:
|
||||
# <string> database name, if used
|
||||
database:
|
||||
# <bool> enable/disable basic auth
|
||||
basicAuth:
|
||||
# <string> basic auth username
|
||||
basicAuthUser:
|
||||
# <string> Deprecated, use secureJsonData.basicAuthPassword
|
||||
basicAuthPassword:
|
||||
# <bool> enable/disable with credentials headers
|
||||
withCredentials:
|
||||
# <bool> mark as default datasource. Max one per org
|
||||
isDefault: false
|
||||
# <map> fields that will be converted to json and stored in jsonData
|
||||
jsonData:
|
||||
graphiteVersion: "1.1"
|
||||
tlsAuth: false
|
||||
tlsAuthWithCACert: false
|
||||
# <string> json object of data that will be encrypted.
|
||||
secureJsonData:
|
||||
tlsCACert: "..."
|
||||
tlsClientCert: "..."
|
||||
tlsClientKey: "..."
|
||||
# <string> database password, if used
|
||||
password:
|
||||
# <string> basic auth password
|
||||
basicAuthPassword:
|
||||
version: 1
|
||||
# <bool> allow users to edit datasources from the UI.
|
||||
editable: true
|
||||
54
config/grafana/provisioning/datasources/prometheus.yml
Normal file
54
config/grafana/provisioning/datasources/prometheus.yml
Normal file
@@ -0,0 +1,54 @@
|
||||
# config file version
|
||||
apiVersion: 1
|
||||
|
||||
# list of datasources that should be deleted from the database
|
||||
deleteDatasources:
|
||||
- name: Graphite
|
||||
orgId: 1
|
||||
|
||||
# list of datasources to insert/update depending
|
||||
# what's available in the database
|
||||
datasources:
|
||||
# <string, required> name of the datasource. Required
|
||||
- name: Prometheus
|
||||
# <string, required> datasource type. Required
|
||||
type: prometheus
|
||||
# <string, required> access mode. proxy or direct (Server or Browser in the UI). Required
|
||||
access: proxy
|
||||
# <int> org id. will default to orgId 1 if not specified
|
||||
orgId: 1
|
||||
# <string> url
|
||||
url: http://prometheus:9090/
|
||||
# <string> Deprecated, use secureJsonData.password
|
||||
password:
|
||||
# <string> database user, if used
|
||||
user:
|
||||
# <string> database name, if used
|
||||
database:
|
||||
# <bool> enable/disable basic auth
|
||||
basicAuth:
|
||||
# <string> basic auth username
|
||||
basicAuthUser:
|
||||
# <string> Deprecated, use secureJsonData.basicAuthPassword
|
||||
basicAuthPassword:
|
||||
# <bool> enable/disable with credentials headers
|
||||
withCredentials:
|
||||
# <bool> mark as default datasource. Max one per org
|
||||
isDefault: true
|
||||
# <map> fields that will be converted to json and stored in jsonData
|
||||
jsonData:
|
||||
graphiteVersion: "1.1"
|
||||
tlsAuth: false
|
||||
tlsAuthWithCACert: false
|
||||
# <string> json object of data that will be encrypted.
|
||||
secureJsonData:
|
||||
tlsCACert: "..."
|
||||
tlsClientCert: "..."
|
||||
tlsClientKey: "..."
|
||||
# <string> database password, if used
|
||||
password:
|
||||
# <string> basic auth password
|
||||
basicAuthPassword:
|
||||
version: 1
|
||||
# <bool> allow users to edit datasources from the UI.
|
||||
editable: true
|
||||
8
config/kibana/besu_overview_dashboard.ndjson
Normal file
8
config/kibana/besu_overview_dashboard.ndjson
Normal file
File diff suppressed because one or more lines are too long
1
config/nodes/member1/accountKeystore
Normal file
1
config/nodes/member1/accountKeystore
Normal file
@@ -0,0 +1 @@
|
||||
{"address":"f0e2db6c8dc6c681bb5d6ad121a107f300e9b2b5","crypto":{"cipher":"aes-128-ctr","ciphertext":"f2af258ee3733513333652be19197ae7eace4b5e79a346cf25b02a857e6043f3","cipherparams":{"iv":"587d7faaa6403b8a73273d0ad58dd71f"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"b93c7d69c5bb0a760c3b7fdf791c47896a552c5c977648b392a24d708674dcf3"},"mac":"d83bcb555c92fc5a32ceacabbb6b99f59515ec3986b9fe5995c67e027bd750c8"},"id":"5392d73f-08dd-42b8-bca9-6f6d35c419d9","version":3}
|
||||
0
config/nodes/member1/accountPassword
Normal file
0
config/nodes/member1/accountPassword
Normal file
1
config/nodes/member1/accountPrivateKey
Normal file
1
config/nodes/member1/accountPrivateKey
Normal file
@@ -0,0 +1 @@
|
||||
0x8bbbb1b345af56b560a5b20bd4b0ed1cd8cc9958a16262bc75118453cb546df7
|
||||
1
config/nodes/member1/address
Normal file
1
config/nodes/member1/address
Normal file
@@ -0,0 +1 @@
|
||||
0x13a52aab892e1322e8b52506276363d4754c122e
|
||||
1
config/nodes/member1/nodekey
Normal file
1
config/nodes/member1/nodekey
Normal file
@@ -0,0 +1 @@
|
||||
b9a4bd1539c15bcc83fa9078fe89200b6e9e802ae992f13cd83c853f16e8bed4
|
||||
1
config/nodes/member1/nodekey.pub
Normal file
1
config/nodes/member1/nodekey.pub
Normal file
@@ -0,0 +1 @@
|
||||
98496800174b3c73ae33cba59f8f5e686cd488f7897c2edb52e2cf46383d75cd03dbb58dde07185bc0953f98800ca9a89f4b5ef450c5e51292ea08ec6130ee0c
|
||||
1
config/nodes/member1/tm.key
Normal file
1
config/nodes/member1/tm.key
Normal file
@@ -0,0 +1 @@
|
||||
{"data":{"bytes":"Wl+xSyXVuuqzpvznOS7dOobhcn4C5auxkFRi7yLtgtA="},"type":"unlocked"}
|
||||
1
config/nodes/member1/tm.pub
Normal file
1
config/nodes/member1/tm.pub
Normal file
@@ -0,0 +1 @@
|
||||
BULeR8JyUWhiuuCMU/HLA0Q5pzkYT+cHII3ZKBey3Bo=
|
||||
1
config/nodes/member1/tma.key
Normal file
1
config/nodes/member1/tma.key
Normal file
@@ -0,0 +1 @@
|
||||
{"data":{"bytes":"wGEar7J9G0JAgdisp61ZChyrJWeW2QPyKvecjjeVHOY="},"type":"unlocked"}
|
||||
1
config/nodes/member1/tma.pub
Normal file
1
config/nodes/member1/tma.pub
Normal file
@@ -0,0 +1 @@
|
||||
8SjRHlUBe4hAmTk3KDeJ96RhN+s10xRrHDrxEi1O5W0=
|
||||
1
config/nodes/member2/accountKeystore
Normal file
1
config/nodes/member2/accountKeystore
Normal file
@@ -0,0 +1 @@
|
||||
{"address":"ca843569e3427144cead5e4d5999a3d0ccf92b8e","crypto":{"cipher":"aes-128-ctr","ciphertext":"01d409941ce57b83a18597058033657182ffb10ae15d7d0906b8a8c04c8d1e3a","cipherparams":{"iv":"0bfb6eadbe0ab7ffaac7e1be285fb4e5"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"7b90f455a95942c7c682e0ef080afc2b494ef71e749ba5b384700ecbe6f4a1bf"},"mac":"4cc851f9349972f851d03d75a96383a37557f7c0055763c673e922de55e9e307"},"id":"354e3b35-1fed-407d-a358-889a29111211","version":3}
|
||||
0
config/nodes/member2/accountPassword
Normal file
0
config/nodes/member2/accountPassword
Normal file
1
config/nodes/member2/accountPrivateKey
Normal file
1
config/nodes/member2/accountPrivateKey
Normal file
@@ -0,0 +1 @@
|
||||
0x4762e04d10832808a0aebdaa79c12de54afbe006bfffd228b3abcc494fe986f9
|
||||
1
config/nodes/member2/address
Normal file
1
config/nodes/member2/address
Normal file
@@ -0,0 +1 @@
|
||||
0xe090a28b8a9d0a69ec259cb745036d5d1030e3ea
|
||||
1
config/nodes/member2/nodekey
Normal file
1
config/nodes/member2/nodekey
Normal file
@@ -0,0 +1 @@
|
||||
f18166704e19b895c1e2698ebc82b4e007e6d2933f4b31be23662dd0ec602570
|
||||
1
config/nodes/member2/nodekey.pub
Normal file
1
config/nodes/member2/nodekey.pub
Normal file
@@ -0,0 +1 @@
|
||||
ad2c79c6561bc8212c2e8382611c62e406e767d1f3106c68ca206900f575cb8ba9a8be111c645cd9803701d684454c782c40d2361b000a32ed03d26228b30ec1
|
||||
1
config/nodes/member2/tm.key
Normal file
1
config/nodes/member2/tm.key
Normal file
@@ -0,0 +1 @@
|
||||
{"data":{"bytes":"nDFwJNHSiT1gNzKBy9WJvMhmYRkW3TzFUmPsNzR6oFk="},"type":"unlocked"}
|
||||
1
config/nodes/member2/tm.pub
Normal file
1
config/nodes/member2/tm.pub
Normal file
@@ -0,0 +1 @@
|
||||
QfeDAys9MPDs2XHExtc84jKGHxZg/aj52DTh0vtA3Xc=
|
||||
1
config/nodes/member2/tma.key
Normal file
1
config/nodes/member2/tma.key
Normal file
@@ -0,0 +1 @@
|
||||
{"data":{"bytes":"rwfJC1kNa8BjPfc+zZXug+it9sdWa0vbdN6pp6IXlAs="},"type":"unlocked"}
|
||||
1
config/nodes/member2/tma.pub
Normal file
1
config/nodes/member2/tma.pub
Normal file
@@ -0,0 +1 @@
|
||||
2T7xkjblN568N1QmPeElTjoeoNT4tkWYOJYxSMDO5i0=
|
||||
1
config/nodes/member3/accountKeystore
Normal file
1
config/nodes/member3/accountKeystore
Normal file
@@ -0,0 +1 @@
|
||||
{"address":"0fbdc686b912d7722dc86510934589e0aaf3b55a","crypto":{"cipher":"aes-128-ctr","ciphertext":"6b2c72c6793f3da8185e36536e02f574805e41c18f551f24b58346ef4ecf3640","cipherparams":{"iv":"582f27a739f39580410faa108d5cc59f"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"1a79b0db3f8cb5c2ae4fa6ccb2b5917ce446bd5e42c8d61faeee512b97b4ad4a"},"mac":"cecb44d2797d6946805d5d744ff803805477195fab1d2209eddc3d1158f2e403"},"id":"f7292e90-af71-49af-a5b3-40e8493f4681","version":3}
|
||||
0
config/nodes/member3/accountPassword
Normal file
0
config/nodes/member3/accountPassword
Normal file
1
config/nodes/member3/accountPrivateKey
Normal file
1
config/nodes/member3/accountPrivateKey
Normal file
@@ -0,0 +1 @@
|
||||
0x61dced5af778942996880120b303fc11ee28cc8e5036d2fdff619b5675ded3f0
|
||||
1
config/nodes/member3/address
Normal file
1
config/nodes/member3/address
Normal file
@@ -0,0 +1 @@
|
||||
0x401bdfcd9221cd790e7cd66eece303ed4d4b53b1
|
||||
1
config/nodes/member3/nodekey
Normal file
1
config/nodes/member3/nodekey
Normal file
@@ -0,0 +1 @@
|
||||
4107f0b6bf67a3bc679a15fe36f640415cf4da6a4820affaac89c8b280dfd1b3
|
||||
1
config/nodes/member3/nodekey.pub
Normal file
1
config/nodes/member3/nodekey.pub
Normal file
@@ -0,0 +1 @@
|
||||
af19c92deb635bd7720634de9b2e7908208530d6f5e96eee003a8f1799e5be4037957d7e2fdbe3605e3a38dab05c961679c02133a0e624e23a72f7961e8af6ac
|
||||
1
config/nodes/member3/tm.key
Normal file
1
config/nodes/member3/tm.key
Normal file
@@ -0,0 +1 @@
|
||||
{"data":{"bytes":"tMxUVR8bX7aq/TbpVHc2QV3SN2iUuExBwefAuFsO0Lg="},"type":"unlocked"}
|
||||
1
config/nodes/member3/tm.pub
Normal file
1
config/nodes/member3/tm.pub
Normal file
@@ -0,0 +1 @@
|
||||
1iTZde/ndBHvzhcl7V68x44Vx7pl8nwx9LqnM/AfJUg=
|
||||
1
config/nodes/member3/tma.key
Normal file
1
config/nodes/member3/tma.key
Normal file
@@ -0,0 +1 @@
|
||||
{"data":{"bytes":"yLcbICXicELZOnvpkDXB2UkQUiNAMIfsEOsgtFOGkQU="},"type":"unlocked"}
|
||||
1
config/nodes/member3/tma.pub
Normal file
1
config/nodes/member3/tma.pub
Normal file
@@ -0,0 +1 @@
|
||||
3nLS1GSlPs3/AccoZ20WTBrYP/ua5KDlUM1uGrDKHTs=
|
||||
1
config/nodes/rpcnode/accountKeystore
Normal file
1
config/nodes/rpcnode/accountKeystore
Normal file
@@ -0,0 +1 @@
|
||||
{"address":"c9c913c8c3c1cd416d80a0abf475db2062f161f6","crypto":{"cipher":"aes-128-ctr","ciphertext":"ce8e51e64e9f053414616c62b3924536f3f9144638359e2e2eb00e04ad095b0a","cipherparams":{"iv":"648343bce02b158eda9bb2074f8dc601"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"0982402da973d8176315aeae4415b328a7ce4393e217a0c4f45385f1cee9bc3e"},"mac":"5707caff457f930655849293dc1101e13ab32b175fdf5538869a2a3ffc716d8b"},"id":"8d031b90-ab7f-48dc-9b7a-ce41abd7f9c8","version":3}
|
||||
0
config/nodes/rpcnode/accountPassword
Normal file
0
config/nodes/rpcnode/accountPassword
Normal file
1
config/nodes/rpcnode/accountPrivateKey
Normal file
1
config/nodes/rpcnode/accountPrivateKey
Normal file
@@ -0,0 +1 @@
|
||||
0x60bbe10a196a4e71451c0f6e9ec9beab454c2a5ac0542aa5b8b733ff5719fec3
|
||||
1
config/nodes/rpcnode/address
Normal file
1
config/nodes/rpcnode/address
Normal file
@@ -0,0 +1 @@
|
||||
0xdf8b560be949c229c821731554c33ead5e3888a4
|
||||
1
config/nodes/rpcnode/nodekey
Normal file
1
config/nodes/rpcnode/nodekey
Normal file
@@ -0,0 +1 @@
|
||||
0e93a540518eeb673d94fb496b746008ab56605463cb9212493997f5755124d1
|
||||
1
config/nodes/rpcnode/nodekey.pub
Normal file
1
config/nodes/rpcnode/nodekey.pub
Normal file
@@ -0,0 +1 @@
|
||||
86fcc16f4730fbfd238dc17ea552854c0943923bb1d5e886e5601b8d884fb0519060e0023f495dd24ffe60a65660fb7fdcdebfceedd2b3673dfa63658825924b
|
||||
1
config/nodes/validator1/accountKeystore
Normal file
1
config/nodes/validator1/accountKeystore
Normal file
@@ -0,0 +1 @@
|
||||
{"address":"ed9d02e382b34818e88b88a309c7fe71e65f419d","crypto":{"cipher":"aes-128-ctr","ciphertext":"4e77046ba3f699e744acb4a89c36a3ea1158a1bd90a076d36675f4c883864377","cipherparams":{"iv":"a8932af2a3c0225ee8e872bc0e462c11"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"8ca49552b3e92f79c51f2cd3d38dfc723412c212e702bd337a3724e8937aff0f"},"mac":"6d1354fef5aa0418389b1a5d1f5ee0050d7273292a1171c51fd02f9ecff55264"},"id":"a65d1ac3-db7e-445d-a1cc-b6c5eeaa05e0","version":3}
|
||||
0
config/nodes/validator1/accountPassword
Normal file
0
config/nodes/validator1/accountPassword
Normal file
1
config/nodes/validator1/accountPrivateKey
Normal file
1
config/nodes/validator1/accountPrivateKey
Normal file
@@ -0,0 +1 @@
|
||||
0xe6181caaffff94a09d7e332fc8da9884d99902c7874eb74354bdcadf411929f1
|
||||
1
config/nodes/validator1/address
Normal file
1
config/nodes/validator1/address
Normal file
@@ -0,0 +1 @@
|
||||
0x93917cadbace5dfce132b991732c6cda9bcc5b8a
|
||||
1
config/nodes/validator1/nodekey
Normal file
1
config/nodes/validator1/nodekey
Normal file
@@ -0,0 +1 @@
|
||||
1a2c4ff0f1b38e2322658dba692816138eb22d002515df1fffca21278f406aa9
|
||||
1
config/nodes/validator1/nodekey.pub
Normal file
1
config/nodes/validator1/nodekey.pub
Normal file
@@ -0,0 +1 @@
|
||||
8208a3f344695d44e9cf2c023683cbea7b9343e2f70a5e804bd2c93858e945f8f91439eef96a4ab6c47ff06637d6fbe6472f96de1655a1bee57ea896654f3a22
|
||||
1
config/nodes/validator2/accountKeystore
Normal file
1
config/nodes/validator2/accountKeystore
Normal file
@@ -0,0 +1 @@
|
||||
{"address":"b30f304642de3fee4365ed5cd06ea2e69d3fd0ca","crypto":{"cipher":"aes-128-ctr","ciphertext":"cf7f44a86510c497f2a6727f62b8e89c8cd42dbfd8e3377658d659c776c75f30","cipherparams":{"iv":"5d320e3072939817faa2caefdb810239"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"e637b069dacfe77f3a495d8a0d3735544e73973c03e107976545df78e6f04289"},"mac":"e20c97b8ee7d54072b9cfac201d52ef360ecacdbd1f7187e7547b3cd9be00599"},"id":"5bf73d6b-340b-4e9f-a7f3-f9ab41f39726","version":3}
|
||||
0
config/nodes/validator2/accountPassword
Normal file
0
config/nodes/validator2/accountPassword
Normal file
1
config/nodes/validator2/accountPrivateKey
Normal file
1
config/nodes/validator2/accountPrivateKey
Normal file
@@ -0,0 +1 @@
|
||||
0x5ad8b28507578c429dfa9f178d7f742f4861716ee956eb75648a7dbc5ffe915d
|
||||
1
config/nodes/validator2/address
Normal file
1
config/nodes/validator2/address
Normal file
@@ -0,0 +1 @@
|
||||
0x27a97c9aaf04f18f3014c32e036dd0ac76da5f18
|
||||
1
config/nodes/validator2/nodekey
Normal file
1
config/nodes/validator2/nodekey
Normal file
@@ -0,0 +1 @@
|
||||
7f9af699dd2bb1af76c90b3f67183dd48abae509c315eb8f2c55301ad90ba978
|
||||
1
config/nodes/validator2/nodekey.pub
Normal file
1
config/nodes/validator2/nodekey.pub
Normal file
@@ -0,0 +1 @@
|
||||
b9050e002aa42464e6b07c811a1f9dfec01249af03f67b753e8415420649b184447bb2a784863ccbf327ad9e31aaba803464979dfe6a7facc669151a5fa6ad1b
|
||||
1
config/nodes/validator3/accountKeystore
Normal file
1
config/nodes/validator3/accountKeystore
Normal file
@@ -0,0 +1 @@
|
||||
{"address":"0886328869e4e1f401e1052a5f4aae8b45f42610","crypto":{"cipher":"aes-128-ctr","ciphertext":"6e0e228b810a88f2cea85c439b005a92bba6220de8cd6ba73a8f7ecd681fde09","cipherparams":{"iv":"5264c2defa48f7f9fa103899acaea021"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"15ef956dab453387ddf7afd6775f3727fb560a77028b5a14d774c3bfff17f101"},"mac":"6ca1d88defee18378789d191ca7b32bbecbd6dd5a6c39427ed45b13c9595edc3"},"id":"734d1189-4e1e-44bf-854a-642485532715","version":3}
|
||||
0
config/nodes/validator3/accountPassword
Normal file
0
config/nodes/validator3/accountPassword
Normal file
1
config/nodes/validator3/accountPrivateKey
Normal file
1
config/nodes/validator3/accountPrivateKey
Normal file
@@ -0,0 +1 @@
|
||||
0xf23f92ed543046498d7616807b18a8f304855cb644df25bc7d0b0b37d8a66019
|
||||
1
config/nodes/validator3/address
Normal file
1
config/nodes/validator3/address
Normal file
@@ -0,0 +1 @@
|
||||
0xce412f988377e31f4d0ff12d74df73b51c42d0ca
|
||||
1
config/nodes/validator3/nodekey
Normal file
1
config/nodes/validator3/nodekey
Normal file
@@ -0,0 +1 @@
|
||||
fe006b00c738e7e5af7f7623290ffc83f394741ae6fb6afc6081cab49e1e1a70
|
||||
1
config/nodes/validator3/nodekey.pub
Normal file
1
config/nodes/validator3/nodekey.pub
Normal file
@@ -0,0 +1 @@
|
||||
59cf0c623c582fa9b19bdf70fb6bade07f4ae32218dd4d1c7e2c7e65acf87da45cf2ab55d16d27360aafef17622c37c09db60d7680ebcc17b78867f4c05bcaa4
|
||||
1
config/nodes/validator4/accountKeystore
Normal file
1
config/nodes/validator4/accountKeystore
Normal file
@@ -0,0 +1 @@
|
||||
{"address":"f48de4a0c2939e62891f3c6aca68982975477e45","crypto":{"cipher":"aes-128-ctr","ciphertext":"402a2d8eb1ff6bab713ddb81f68142c4f0113d32e9f0cc8969347a4945cd1e5f","cipherparams":{"iv":"a1f708815212854c0c49081869198dd5"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"a24d95de8680d8d214ae5e9060e919eb563ce513bf63021497e0d218ed68f89d"},"mac":"571164da79472f210caeb45af2b9715fb22eef8d485ce5c6a4e0c52865398ea7"},"id":"d5723032-0a81-46ec-ac34-9d8362e2250c","version":3}
|
||||
0
config/nodes/validator4/accountPassword
Normal file
0
config/nodes/validator4/accountPassword
Normal file
1
config/nodes/validator4/accountPrivateKey
Normal file
1
config/nodes/validator4/accountPrivateKey
Normal file
@@ -0,0 +1 @@
|
||||
0x7f012b2a11fc651c9a73ac13f0a298d89186c23c2c9a0e83206ad6e274ba3fc7
|
||||
1
config/nodes/validator4/address
Normal file
1
config/nodes/validator4/address
Normal file
@@ -0,0 +1 @@
|
||||
0x98c1334496614aed49d2e81526d089f7264fed9c
|
||||
1
config/nodes/validator4/nodekey
Normal file
1
config/nodes/validator4/nodekey
Normal file
@@ -0,0 +1 @@
|
||||
8f6ae009cdbbf6e6fa739b91a4483f251bbe89f6570d34856554533b36c93c55
|
||||
1
config/nodes/validator4/nodekey.pub
Normal file
1
config/nodes/validator4/nodekey.pub
Normal file
@@ -0,0 +1 @@
|
||||
2fd5b5b6ad529f55b71602026d1849d0036f06482368b5812fa793014195d3571b0840dbc4175617de2a12db8f1222c012420d471ae5c0d982118625cae58868
|
||||
136
config/prometheus/prometheus.yml
Normal file
136
config/prometheus/prometheus.yml
Normal file
@@ -0,0 +1,136 @@
|
||||
# my global config
|
||||
global:
|
||||
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
|
||||
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
|
||||
# scrape_timeout is set to the global default (10s).
|
||||
|
||||
# Alertmanager configuration
|
||||
alerting:
|
||||
# alertmanagers:
|
||||
# - static_configs:
|
||||
# - targets:
|
||||
# - alertmanager:9093
|
||||
|
||||
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
|
||||
rule_files:
|
||||
# - "first_rules.yml"
|
||||
# - "second_rules.yml"
|
||||
|
||||
# A scrape configuration containing exactly one endpoint to scrape:
|
||||
# Here it's Prometheus itself.
|
||||
scrape_configs:
|
||||
- job_name: validator1
|
||||
scrape_interval: 15s
|
||||
scrape_timeout: 10s
|
||||
metrics_path: /metrics
|
||||
scheme: http
|
||||
static_configs:
|
||||
- targets: [ validator1:9545 ]
|
||||
|
||||
- job_name: validator2
|
||||
scrape_interval: 15s
|
||||
scrape_timeout: 10s
|
||||
metrics_path: /metrics
|
||||
scheme: http
|
||||
static_configs:
|
||||
- targets: [ validator2:9545 ]
|
||||
|
||||
- job_name: validator3
|
||||
scrape_interval: 15s
|
||||
scrape_timeout: 10s
|
||||
metrics_path: /metrics
|
||||
scheme: http
|
||||
static_configs:
|
||||
- targets: [ validator3:9545 ]
|
||||
|
||||
- job_name: validator4
|
||||
scrape_interval: 15s
|
||||
scrape_timeout: 10s
|
||||
metrics_path: /metrics
|
||||
scheme: http
|
||||
static_configs:
|
||||
- targets: [ validator4:9545 ]
|
||||
|
||||
- job_name: rpcnode
|
||||
scrape_interval: 15s
|
||||
scrape_timeout: 10s
|
||||
metrics_path: /metrics
|
||||
scheme: http
|
||||
static_configs:
|
||||
- targets: [ rpcnode:9545 ]
|
||||
|
||||
- job_name: newnode
|
||||
scrape_interval: 15s
|
||||
scrape_timeout: 10s
|
||||
metrics_path: /metrics
|
||||
scheme: http
|
||||
static_configs:
|
||||
- targets: [ newnode:9545 ]
|
||||
|
||||
- job_name: member1besu
|
||||
scrape_interval: 15s
|
||||
scrape_timeout: 10s
|
||||
metrics_path: /metrics
|
||||
scheme: http
|
||||
static_configs:
|
||||
- targets: [ member1besu:9545 ]
|
||||
|
||||
- job_name: member2besu
|
||||
scrape_interval: 15s
|
||||
scrape_timeout: 10s
|
||||
metrics_path: /metrics
|
||||
scheme: http
|
||||
static_configs:
|
||||
- targets: [ member2besu:9545 ]
|
||||
|
||||
- job_name: member3besu
|
||||
scrape_interval: 15s
|
||||
scrape_timeout: 10s
|
||||
metrics_path: /metrics
|
||||
scheme: http
|
||||
static_configs:
|
||||
- targets: [ member3besu:9545 ]
|
||||
|
||||
- job_name: member1tessera
|
||||
scrape_interval: 15s
|
||||
scrape_timeout: 10s
|
||||
metrics_path: /metrics
|
||||
scheme: http
|
||||
static_configs:
|
||||
- targets: [ member1tessera:9545 ]
|
||||
|
||||
- job_name: member2tessera
|
||||
scrape_interval: 15s
|
||||
scrape_timeout: 10s
|
||||
metrics_path: /metrics
|
||||
scheme: http
|
||||
static_configs:
|
||||
- targets: [ member2tessera:9545 ]
|
||||
|
||||
- job_name: member3tessera
|
||||
scrape_interval: 15s
|
||||
scrape_timeout: 10s
|
||||
metrics_path: /metrics
|
||||
scheme: http
|
||||
static_configs:
|
||||
- targets: [ member3tessera:9545 ]
|
||||
|
||||
# all the nodes override themselves if given the same name
|
||||
# so we use dns based lookup and, replace labels to
|
||||
# alter the address from 192.168.x.y:9545 to node:192.168.x.y:9545 so they are easier to see in grafana
|
||||
- job_name: node
|
||||
scrape_interval: 15s
|
||||
scrape_timeout: 10s
|
||||
metrics_path: /metrics
|
||||
scheme: http
|
||||
dns_sd_configs:
|
||||
- names:
|
||||
- node
|
||||
type: 'A'
|
||||
port: 9545
|
||||
relabel_configs:
|
||||
- source_labels: [__address__]
|
||||
regex: '(.*)'
|
||||
target_label: instance
|
||||
replacement: "node:$1"
|
||||
|
||||
15
config/tessera/Dockerfile
Normal file
15
config/tessera/Dockerfile
Normal file
@@ -0,0 +1,15 @@
|
||||
ARG TESSERA_VERSION=latest
|
||||
|
||||
FROM quorumengineering/tessera:${TESSERA_VERSION}
|
||||
|
||||
# develop uses a debain container, all releases use an alpine container - this allows both to be used for the quickstart
|
||||
# set the version in ../../.env
|
||||
RUN if [ -e /sbin/apk ] ; then apk add gettext --no-cache ; else apt-get update && apt-get install -y gettext && rm -rf /var/lib/apt/lists/* ; fi
|
||||
|
||||
ENV JAVA_OPTS="-Dlogback.configurationFile=/data/logback.xml"
|
||||
|
||||
COPY docker-entrypoint.sh /usr/bin/
|
||||
COPY data data
|
||||
|
||||
ENTRYPOINT ["docker-entrypoint.sh"]
|
||||
|
||||
33
config/tessera/data/logback.xml
Normal file
33
config/tessera/data/logback.xml
Normal file
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
|
||||
<property name="defaultLogLevel" value="INFO" />
|
||||
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>{"timestamp":"%d{ISO8601}","container":"${hostName}","level":"%level","thread":"%thread","logger":"%logger{36}","message":"%replace(%replace(%msg){'[\r\n]',''}){'"','\\"'}","throwable":"%replace(%replace(%throwable){'[\r\n]',''}){'"','\\"'}"}%n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||
<file>/var/log/tessera/tessera-${HOSTNAME}.log</file>
|
||||
<append>true</append>
|
||||
<immediateFlush>true</immediateFlush>
|
||||
<encoder>
|
||||
<pattern>{"timestamp":"%d{ISO8601}","container":"${hostName}","level":"%level","thread":"%thread","class":"%c{1}","logger":"%logger{36}","message":"%replace(%msg){'[\r\n]', ''}","throwable":"%replace(%replace(%throwable){'[\r\n]',''}){'"','\\"'}"}%n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- silence hibernate messages that were being created from DefaultCliAdapter -->
|
||||
<logger name="org.hibernate.validator.internal.util.Version" level="OFF"/>
|
||||
<logger name="org.hibernate.validator.internal.engine.ConfigurationImpl" level="OFF"/>
|
||||
|
||||
<!-- silence noisy logging from regular /partyinfo messages -->
|
||||
<logger name="com.quorum.tessera.p2p.PartyInfoResource" level="WARN"/>
|
||||
|
||||
<root level="${verbosity:-${defaultLogLevel}}">
|
||||
<appender-ref ref="STDOUT"/>
|
||||
<appender-ref ref="FILE"/>
|
||||
</root>
|
||||
|
||||
</configuration>
|
||||
62
config/tessera/data/tessera-config-template.json
Normal file
62
config/tessera/data/tessera-config-template.json
Normal file
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"mode": "${TESSERA_MODE}",
|
||||
"useWhiteList": false,
|
||||
"jdbc": {
|
||||
"username": "sa",
|
||||
"password": "",
|
||||
"url": "jdbc:h2:./data/tm/db;MODE=Oracle;TRACE_LEVEL_SYSTEM_OUT=0",
|
||||
"autoCreateTables": true
|
||||
},
|
||||
"serverConfigs": [
|
||||
{
|
||||
"app": "ThirdParty",
|
||||
"enabled": true,
|
||||
"serverAddress": "http://${HOSTNAME}:9080",
|
||||
"communicationType": "REST"
|
||||
},
|
||||
{
|
||||
"app": "Q2T",
|
||||
"enabled": true,
|
||||
"serverAddress": "http://${HOSTNAME}:9101",
|
||||
"sslConfig": {
|
||||
"tls": "OFF"
|
||||
},
|
||||
"communicationType": "REST"
|
||||
},
|
||||
{
|
||||
"app": "P2P",
|
||||
"enabled": true,
|
||||
"serverAddress": "http://${HOSTNAME}:9000",
|
||||
"sslConfig": {
|
||||
"tls": "OFF"
|
||||
},
|
||||
"communicationType": "REST"
|
||||
}
|
||||
],
|
||||
"peer": [
|
||||
{
|
||||
"url": "http://member1tessera:9000"
|
||||
},
|
||||
{
|
||||
"url": "http://member2tessera:9000"
|
||||
},
|
||||
{
|
||||
"url": "http://member3tessera:9000"
|
||||
}
|
||||
],
|
||||
"keys": {
|
||||
"passwords": [],
|
||||
"keyData": [
|
||||
{
|
||||
"privateKeyPath": "/config/keys/tm.key",
|
||||
"publicKeyPath": "/config/keys/tm.pub"
|
||||
}
|
||||
]
|
||||
},
|
||||
"alwaysSendTo": [],
|
||||
"bootstrapNode": false,
|
||||
"features": {
|
||||
"enableRemoteKeyValidation": false,
|
||||
"enablePrivacyEnhancements": true
|
||||
}
|
||||
}
|
||||
12
config/tessera/docker-entrypoint.sh
Executable file
12
config/tessera/docker-entrypoint.sh
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
|
||||
mkdir -p /var/log/tessera/;
|
||||
mkdir -p /data/tm/;
|
||||
|
||||
envsubst < /data/tessera-config-template.json > /data/tessera-config.json
|
||||
|
||||
cat /data/tessera-config.json
|
||||
|
||||
exec /tessera/bin/tessera \
|
||||
-configfile /data/tessera-config.json
|
||||
|
||||
Reference in New Issue
Block a user