Installation and usage of the platform

General platform configuration: execution of smart contracts

If you are going to develop and execute smart contracts in your blockchain, set their execution parameters in the docker-engine section of the node configuration file:

docker-engine {
  enable = yes
  integration-tests-mode-enable = no
  # docker-host = "unix:///var/run/docker.sock"
  execution-limits {
    startup-timeout = 10s
    timeout = 10s
    memory = 512
    memory-swap = 0
    }
  reuse-containers = yes
  remove-container-after = 10m
  allow-net-access = yes
  remote-registries = [
    {
     domain = "myregistry.com:5000"
     username = "user"
     password = "password"
   }
  ]
  check-registry-auth-on-startup = no
  # default-registry-domain = "registry.wavesenterprise.com"
  contract-execution-messages-cache {
    expire-after = 60m
    max-buffer-size = 10
    max-buffer-time = 100ms
  }
  contract-auth-expires-in = 1m
  grpc-server {
    # host = "192.168.97.3"
    port = 6865
    }
  }
  remove-container-on-fail = yes
}
  • enable – enable transaction processing for Docker contracts.

  • integration-tests-mode-enable – Docker contracts testing mode. When this option is enabled, smart contracts are executed locally in the container.

  • docker-host – Docker daemon address (optional). If this field is commented out, the address of the daemon will be taken from the system environment.

  • startup-timeout – time taken to create the contract container and register it in the node (in seconds).

  • timeout – the time taken to execute the contract (in seconds).

  • memory – memory limit for the contract container (in megabytes).

  • memory-swap – allocated amount of virtual memory for the contract container (in megabytes).

  • reuse-containers – using one container for several contracts when using the same Docker image. To enable this option, specify yes, to disable - no.

  • remove-container-after – the time interval of container inactivity, after which it will be removed.

  • allow-net-access – permission to access the network.

  • remote-registries – Docker registry addresses and authorization settings.

  • check-registry-auth-on-startup – check authorization for Docker registries at node startup. To enable this option, specify yes, to disable - no.

  • default-registry-domain – default Docker registry address (optional). This parameter is used if no repository is specified in the contract image name.

  • contract-execution-messages-cache – settings of the cache with the execution status of transactions on Docker contracts.

  • expire-after – time to store the status of the smart contract.

  • max-buffer-size and max-buffer-time – settings for size and time of the status cache.

  • contract-auth-expires-in – lifetime of the authorization token used by smart contracts for calls to the node.

  • grpc-server – gRPC server settings section for Docker contracts with the gRPC API.

  • host – network address of the node (optional).

  • port – port of the gRPC server. Specify the listening port for gRPC requests used by the platform.

  • remove-container-on-fail – removes the container if an error occurred during its startup. To enable this option, specify yes, to disable - no.