privileged.hpp 2.4 KB
Newer Older
1
#pragma once
2 3
#include "privileged.h"
#include "serialize.hpp"
A
Anton Perkov 已提交
4
#include "types.h"
5 6

namespace eosio {
7 8

   struct blockchain_parameters {
A
arhag 已提交
9 10 11
      uint64_t max_block_net_usage;
      uint32_t target_block_net_usage_pct;
      uint32_t max_transaction_net_usage;
12
      uint32_t base_per_transaction_net_usage;
13
      uint32_t net_usage_leeway;
14 15
      uint32_t context_free_discount_net_usage_num;
      uint32_t context_free_discount_net_usage_den;
A
arhag 已提交
16

17
      uint32_t max_block_cpu_usage;
A
arhag 已提交
18 19
      uint32_t target_block_cpu_usage_pct;
      uint32_t max_transaction_cpu_usage;
20 21 22 23
      uint32_t base_per_transaction_cpu_usage;
      uint32_t base_per_action_cpu_usage;
      uint32_t base_setcode_cpu_usage;
      uint32_t per_signature_cpu_usage;
24
      uint32_t cpu_usage_leeway;
25 26
      uint32_t context_free_discount_cpu_usage_num;
      uint32_t context_free_discount_cpu_usage_den;
A
arhag 已提交
27

28
      uint32_t max_transaction_lifetime;
A
arhag 已提交
29 30
      uint32_t deferred_trx_expiration_window;
      uint32_t max_transaction_delay;
31
      uint32_t max_inline_action_size;
A
arhag 已提交
32 33
      uint16_t max_inline_action_depth;
      uint16_t max_authority_depth;
34
      uint32_t max_generated_transaction_count;
35

36
      EOSLIB_SERIALIZE( blockchain_parameters,
37
                        (max_block_net_usage)(target_block_net_usage_pct)
38
                        (max_transaction_net_usage)(base_per_transaction_net_usage)(net_usage_leeway)
A
arhag 已提交
39 40 41 42
                        (context_free_discount_net_usage_num)(context_free_discount_net_usage_den)

                        (max_block_cpu_usage)(target_block_cpu_usage_pct)
                        (max_transaction_cpu_usage)(base_per_transaction_cpu_usage)
43
                        (base_per_action_cpu_usage)(base_setcode_cpu_usage)(per_signature_cpu_usage)(cpu_usage_leeway)
A
arhag 已提交
44 45 46 47 48
                        (context_free_discount_cpu_usage_num)(context_free_discount_cpu_usage_den)

                        (max_transaction_lifetime)(deferred_trx_expiration_window)(max_transaction_delay)
                        (max_inline_action_size)(max_inline_action_depth)
                        (max_authority_depth)(max_generated_transaction_count)
49 50
      )
   };
A
Anton Perkov 已提交
51

52 53 54 55
   void set_blockchain_parameters(const eosio::blockchain_parameters& params);

   void get_blockchain_parameters(eosio::blockchain_parameters& params);

A
Anton Perkov 已提交
56
   struct producer_key {
A
Anton Perkov 已提交
57 58
      account_name producer_name;
      public_key   block_signing_key;
A
Anton Perkov 已提交
59 60 61 62

      EOSLIB_SERIALIZE( producer_key, (producer_name)(block_signing_key) )
   };

63
}