diff --git a/configs/v1.2.0/accounts-example.conf b/configs/v1.2.0/accounts-example.conf new file mode 100644 index 0000000..1e6b369 --- /dev/null +++ b/configs/v1.2.0/accounts-example.conf @@ -0,0 +1,11 @@ +accounts-generator { + waves-crypto = yes + chain-id = V + amount = 1 + wallet = "./configs/nodes/keystore.dat" + wallet-password = "some string as password" + reload-node-wallet { + enabled = false + url = "http://localhost:6862/utils/reload-wallet" + } +} \ No newline at end of file diff --git a/configs/v1.2.0/api-key-hash-example.conf b/configs/v1.2.0/api-key-hash-example.conf new file mode 100644 index 0000000..6919fb6 --- /dev/null +++ b/configs/v1.2.0/api-key-hash-example.conf @@ -0,0 +1,4 @@ +apikeyhash-generator { + waves-crypto = no + api-key = "some string for api-key" +} \ No newline at end of file diff --git a/configs/v1.2.0/mainnet.conf b/configs/v1.2.0/mainnet.conf new file mode 100644 index 0000000..fefb24e --- /dev/null +++ b/configs/v1.2.0/mainnet.conf @@ -0,0 +1,109 @@ +node { + # Type of cryptography + waves-crypto = yes + + # Node owner address + owner-address = " /FILL/ " + + # Waves "home" and data directories to store the state + directory = "/node" + data-directory = ${node.directory}"/data" + + wallet { + # Path to keystore file + file = "/node/keystore.dat" + + # Access password + password = " /FILL/ " + } + + # Blockchain settings + # Mainnet blockchain settings (should match on all nodes for consistency) + blockchain.type = MAINNET + + # Application logging level. Could be DEBUG | INFO | WARN | ERROR. Default value is INFO. + logging-level = DEBUG + + # P2P Network settings + network { + # Network address + bind-address = "0.0.0.0" + # Port number + port = 6864 + + # Peers network addresses and ports + known-peers = ["node-0.wavesenterprise.com:6864", "node-1.wavesenterprise.com:6864", "node-2.wavesenterprise.com:6864"] + + # Node name to send during handshake. Comment this string out to set random node name. + # Example: node-name = "your-we-node-name" + node-name = " /FILL/ " + + # How long the information about peer stays in database after the last communication with it + peers-data-residence-time = 2h + + # String with IP address and port to send as external address during handshake. Could be set automatically if uPnP is enabled. + declared-address = "0.0.0.0:6864" + } + + # Node's REST API settings + rest-api { + enable = yes + bind-address = "0.0.0.0" + port = 6862 + + auth { + type: "api-key" + + # Hashed secret Api-Key to access node's REST API + api-key-hash = " /FILL/ " + + # Api-key hash for Privacy Data Exchange REST API methods + privacy-api-key-hash = " /FILL/ " + } + } + + # New blocks generator settings + miner { + enable = no + quorum = 2 + interval-after-last-block-then-generation-is-allowed = 35d + micro-block-interval = 5s + min-micro-block-age = 3s + max-transactions-in-micro-block = 500 + minimal-block-generation-offset = 200ms + } + + # Anchoring settings + scheduler-service.enable = no + + # Settings for Privacy Data Exchange + # Uncomment and fill to enable + # privacy { + # storage { + # enabled = true + # url = "jdbc:postgresql://"${POSTGRES_ADDRESS}":"${POSTGRES_PORT}"/"${POSTGRES_DB} + # driver = "org.postgresql.Driver" + # profile = "slick.jdbc.PostgresProfile$" + # + # user = ${POSTGRES_USER} + # password = ${POSTGRES_PASSWORD} + # connectionPool = HikariCP + # connectionTimeout = 5000 + # connectionTestQuery = "SELECT 1" + # queueSize = 10000 + # numThreads = 20 + # schema = "public" + # migration-dir = "db/migration" + # } + # } + + # Docker smart-contracts engine config + docker-engine { + enable = no + execution-limits { + timeout = 10s + memory = 512 + memory-swap = 512 + } + } +} \ No newline at end of file diff --git a/configs/v1.2.0/node-example.conf b/configs/v1.2.0/node-example.conf new file mode 100644 index 0000000..eef81e1 --- /dev/null +++ b/configs/v1.2.0/node-example.conf @@ -0,0 +1,230 @@ +node { + # Type of cryptography + waves-crypto = yes + + # Node owner address + owner-address = " /FILL/ " + + # NTP settings + ntp.fatal-timeout = 5 minutes + + # Node "home" and data directories to store the state + directory = "/node" + data-directory = "/node/data" + + wallet { + # Path to keystore. + file = "/node/keystore.dat" + + # Access password + password = " /FILL/ " + } + + # Blockchain settings + blockchain { + type = CUSTOM + fees.enabled = false + consensus { + type = "poa" + round-duration = "17s" + sync-duration = "3s" + ban-duration-blocks = 100 + warnings-for-ban = 3 + max-bans-percentage = 40 + } + custom { + address-scheme-character = "E" + functionality { + feature-check-blocks-period = 1500 + blocks-for-feature-activation = 1000 + pre-activated-features = { 2 = 0, 3 = 0, 4 = 0, 5 = 0, 6 = 0, 7 = 0, 9 = 0, 10 = 0, 100 = 0 } + } + + # Mainnet genesis settings + genesis { + average-block-delay: 60s + initial-base-target: 153722867 + + # Filled by GenesisBlockGenerator + block-timestamp: 1573472578702 + + initial-balance: 1625000000000000 + + # Filled by GenesisBlockGenerator + genesis-public-key-base-58: "" + + # Filled by GenesisBlockGenerator + signature: "" + + transactions = [ + # Initial token distribution: + # - recipient: target's blockchain address (base58 string) + # - amount: amount of tokens, multiplied by 10e8 (integer) + # + # Example: { recipient: "3HQSr3VFCiE6JcWwV1yX8xttYbAGKTLV3Gz", amount: 3000000000000000 } + # + # Note: + # Sum of amounts must be equal to initial-balance above. + # + { recipient: " /FILL/ ", amount: 100000000000000 }, + { recipient: " /FILL/ ", amount: 150000000000000 }, + { recipient: " /FILL/ ", amount: 50000000000000 }, + ] + network-participants = [ + # Initial participants and role distribution + # - public-key: participant's base58 encoded public key; + # - roles: list of roles to be granted; + # + # Example: {public-key: "EPxkVA9iQejsjQikovyxkkY8iHnbXsR3wjgkgE7ZW1Tt", roles: [permissioner, miner, connection_manager, contract_developer, issuer]} + # + # Note: + # There has to be at least one miner, one permissioner and one connection_manager for the network to start correctly. + # Participants are granted access to the network via GenesisRegisterNodeTransaction. + # Role list could be empty, then given public-key will only be granted access to the network. + # + { public-key: " /FILL/ ", roles: [permissioner, miner, connection_manager, contract_developer, issuer]}, + { public-key: " /FILL/ ", roles: [miner]}, + { public-key: " /FILL/ ", roles: []}, + ] + } + } + } + + # Application logging level. Could be DEBUG | INFO | WARN | ERROR. Default value is INFO. + logging-level = DEBUG + + # P2P Network settings + network { + # Network address + bind-address = "0.0.0.0" + # Port number + port = 6864 + + # Peers network addresses and ports + # Example: known-peers = ["node-1.com:6864", "node-2.com:6864"] + known-peers = [ /FILL/ ] + + # Node name to send during handshake. Comment this string out to set random node name. + # Example: node-name = "your-we-node-name" + node-name = " /FILL/ " + + # How long the information about peer stays in database after the last communication with it + peers-data-residence-time = 2h + + # String with IP address and port to send as external address during handshake. Could be set automatically if uPnP is enabled. + # Example: declared-address = "your-node-address.com:6864" + declared-address = "0.0.0.0:6864" + } + + # New blocks generator settings + miner { + enable = yes + # Important: use quorum = 0 only for testing purposes, while running a single-node network; + # In other cases always set quorum > 0 + quorum = 0 + interval-after-last-block-then-generation-is-allowed = 10d + micro-block-interval = 5s + min-micro-block-age = 3s + max-transactions-in-micro-block = 500 + minimal-block-generation-offset = 200ms + } + + # Nodes REST API settings + rest-api { + # Enable/disable REST API + enable = yes + + # Network address to bind to + bind-address = "0.0.0.0" + + # Port to listen to REST API requests + port = 6862 + + auth { + type: "api-key" + + # Hash of API key string + # You can obtain hashes by running ApiKeyHash generator + api-key-hash: " /FILL/ " + + # Hash of API key string for PrivacyApi routes + privacy-api-key-hash: " /FILL/ " + } + } + + #Settings for Privacy Data Exchange + privacy { + storage { + enabled = false + # url = "jdbc:postgresql://postgres:5432/node-1?user=postgres&password=wenterprise" + # driver = "org.postgresql.Driver" + # profile = "slick.jdbc.PostgresProfile$" + + # user = "postgres@postgres&password=wenterprise" + # password = "wenterprise" + + # connectionPool = HikariCP + # connectionTimeout = 5000 + # connectionTestQuery = "SELECT 1" + # queueSize = 10000 + # numThreads = 20 + # schema = "public" + # migration-dir = "db/migration" + } + } + + + # Docker smart contracts settings + docker-engine { + # Docker smart contracts enabled flag + enable = no + + # Basic auth credentials for docker host + #docker-auth { + # username = "some user" + # password = "some password" + #} + + # Optional connection string to docker host + docker-host = "unix:///var/run/docker.sock" + + # Optional string to node REST API if we use remote docker host + # node-rest-api = "node-0" + + # Execution settings + execution-limits { + # Contract execution timeout + timeout = 10s + # Memory limit in Megabytes + memory = 512 + # Memory swap value in Megabytes (see https://docs.docker.com/config/containers/resource_constraints/) + memory-swap = 0 + } + + # Reuse once created container on subsequent executions + reuse-containers = yes + + # Remove container with contract after specified duration passed + remove-container-after = 10m + + # Allows net access for all contracts + allow-net-access = yes + + # Remote registries auth information + remote-registries = [] + + # Check registry auth on node startup + check-registry-auth-on-startup = yes + + # Contract execution messages cache settings + contract-execution-messages-cache { + # Time to expire for messages in cache + expire-after = 60m + # Max number of messages in buffer. When the limit is reached, the node processes all messages in batch + max-buffer-size = 10 + # Max time for buffer. When time is out, the node processes all messages in batch + max-buffer-time = 100ms + } + } +} + diff --git a/configs/v1.2.0/partnernet.conf b/configs/v1.2.0/partnernet.conf new file mode 100644 index 0000000..1b52d3d --- /dev/null +++ b/configs/v1.2.0/partnernet.conf @@ -0,0 +1,136 @@ +node { + waves-crypto = yes + + directory = "/node" + data-directory = ${node.directory}"/data" + + # Node owner address + owner-address = " /FILL/ " + + wallet { + file = "/node/keystore.dat" + password = " /FILL/ " + } + + ntp.fatal-timeout = 5 minute + + # Blockchain settings + blockchain { + type = CUSTOM + consensus { + type = "poa" + round-duration = "17s" + sync-duration = "3s" + ban-duration-blocks = 50 + warnings-for-ban = 10 + max-bans-percentage = 40 + } + custom { + address-scheme-character = "P" + functionality { + feature-check-blocks-period = 1500 + blocks-for-feature-activation = 1000 + pre-activated-features = {2 = 0, 3 = 0, 4 = 0, 5 = 0, 6 = 0, 7 = 0, 9 = 0, 10 = 0, 100 = 0} + } + genesis { + average-block-delay: 60s + initial-base-target: 153722867 + block-timestamp: 1577449414054 + initial-balance: 40000000000000000 + genesis-public-key-base-58: "9Gm4Dy5Awr9TPWPMNzHTxmUdovKpA67DHmh53NPgSjdK" + signature: "3jV3HxkfAcLpittYriMJfkNrEU9VxWnLPifg63gwthcnTupt4h3LUqEYAg1MThLsAA1fVEQW3aYK5DaePvCt2a7H" + transactions = [ + {recipient: "3LWg4n6VmN6DKBSwGF1hwnaCzXdjMkQCFrn", amount: 10000000000000000}, + {recipient: "3LPPZNhakdm9ZPiGShNvWGCshFqsQXFjUQ1", amount: 10000000000000000}, + {recipient: "3LEpXfh7XmCRias92swo6LUJqyo9MA7SaFc", amount: 10000000000000000}, + {recipient: "3LNYDaB5oqsBJ65SBG3ScWA8cTwNVP7Emw1", amount: 10000000000000000} + ] + network-participants = [ + {public-key: "CaFrRzAv7B3DrECR4i2Los1DwxHj4yKAEKCT3zEke9U4", roles: [permissioner, miner, connection_manager, contract_developer, issuer]}, + {public-key: "Vxb6LQ8Qt9Afs6VJuyiMbMN5qM2pm1EEcWdoZo3WmkN", roles: [miner, permissioner]}, + {public-key: "FmzyByBePwbKDjSdnYjwF9G12zGrQc7Gcr8WvQ5ybejC", roles: [miner]}, + {public-key: "AFCqmayq4XdGPvj1pmLFLPK6aQEVipLCUubRi3SbNo4N", roles: [miner]} + ] + } + } + } + + # Application logging level. Could be DEBUG | INFO | WARN | ERROR. Default value is INFO. + logging-level = DEBUG + + # P2P Network settings + network { + # Network address + bind-address = "0.0.0.0" + # Port number + port = 6864 + known-peers = [ + "node0-partnernet.vostoknodes.com:6864", + "node1-partnernet.vostoknodes.com:6864", + "node2-partnernet.vostoknodes.com:6864" + ] + # Node name to send during handshake. Comment this string out to set random node name. + # String with IP address and port to send as external address during handshake. Could be set automatically if uPnP is enabled. + declared-address = "0.0.0.0:6864" + } + + # Node's REST API settings + rest-api { + enable = yes + bind-address = "0.0.0.0" + port = 6862 + auth { + type: "api-key" + api-key-hash = " /FILL/ " #api-key for all api + privacy-api-key-hash = " /FILL/ " #api-key for SendData api + } + } + + # New blocks generator settings + miner { + enable = yes + quorum = 1 + interval-after-last-block-then-generation-is-allowed = 10d + micro-block-interval = 5s + min-micro-block-age = 3s + max-transactions-in-micro-block = 500 + minimal-block-generation-offset = 200ms + } + + # Anchoring + scheduler-service.enable = no + + # For docker smart-contracts + docker-engine { + enable = no + # Optional connection string to docker host + # docker-host = "unix:///var/run/docker.sock" + # Optional string to node REST API if we use remote docker host + # node-rest-api = "https://clinton.vostokservices.com/node-0" + execution-limits { + timeout = 10s + memory = 512 + memory-swap = 512 + } + allow-net-access = yes + } + + privacy { + # DB connection config + storage { + enabled = false + #FILL insert DB connection string here, example "jdbc:postgresql://db_hostname:5432/_____?user=_____________&password=____" + url = "" + driver = "org.postgresql.Driver" + profile = "slick.jdbc.PostgresProfile$" + connectionPool = HikariCP + connectionTimeout = 5000 + connectionTestQuery = "SELECT 1" + queueSize = 10000 + numThreads = 10 + schema = "public" + migration-dir = "db/migration" + } + } + +} \ No newline at end of file