Skip to content

Universal block_logs for testing

This MR contains three universal block_logs useful for testing. Each block_log contains accounts and witnesses wih the same names. with the difference that the accounts are created with different authorities depending on the block_log types:

Basic block_logs parameters:

  • chain_id 24,
  • active hardfork 28,
  • block size 2MB ( 2097152 B ),
  • active 21 witnesses ( witness-0 to witness-19 & initminer ),
  • 2_000_000 kont ( names: account-0 to account-1999999 ),
  • 100_000 comments ( creators: account-0 to account-199999 ),
  • hive initial suply 400_000_000_000 ( resources shared equally among all accounts ),
  • initial vesting 50_000_000_000 ( resources shared equally among all accounts ),
  • hbd initial supply 30_000_000_000 ( resources shared equally among all accounts ),
  • initial account creation fee = 0.001 HIVE,
  • account creation fee after hardfork 20 = 3 HIVE,
Witnesses private keys ( the same for each type of block_logs )
initminer:  5JNHfZYKGaomSFvd4NUdQ9qMcEAC43kujbfjueTHpVapX1Kzq2n
witness-0:  5K4aoZc1SQzfRvTfe9W5Yp32nN3tDgiSJ65ySePeG8g9RYJMVvL
witness-1:  5JVn8V3d5RgBhaiHrWo6YRiVJdWJVMv43wbsMNDtYsT7wvuBvDN
witness-2:  5JDKuxi3SzrJ96QQ6p2tB2zwCk9mMeJCDB65WaRdkHn5Nivkw2g
witness-3:  5JyiNt8h5FWb5kYbP2fxkAgx1NTWVN3igbbTSp6VqbRX3rsjPKU
witness-4:  5JeuU3PjbkfPUD2APWzS1mXKfufcBGiBQifjPdhUNFUoWBSWpre
witness-5:  5JoUz8LLCRrCQJrMLAAHfZwZnGa7cAyY2TLAsPfP1MU9MFqgHf8
witness-6:  5KJgoWcJbS2PoDJUaDnzywAG8TC4EB2EhSq3LtGFRR15xGdDLjb
witness-7:  5KeAGu8yWpyaDn8LxMub2Xd5dWDd5bLE7bgyUCPASc7at5hUZAX
witness-8:  5KMewQ4yv6FxyKSYac9EqaAdaJAeW4PPW3jkVetA29vnH1iEfTb
witness-9:  5JRywXzcawejhNCrLvy8m1oqrVFapRRATnMAMr4spHhj6x8auBf
witness-10:  5HpvDkxDkXvDN7diHvz2oVRZyPxQPbTLYx3rYaFLGvZTKVNpaGg
witness-11:  5KePhGuSqjm8xrgg9ZTRN7ukbHRPRuECSBvQvvUZdgjNmxcqSyk
witness-12:  5JfJqtA182G69VYECM89njRdi35zzbBuAYUnD4TyWH2tS3xpG4F
witness-13:  5K32YvjWZuzEcuaExL8vf7E8nMu5h18dde8QUuwMZGbArV1siDu
witness-14:  5KdEt2u4MkADyDywBs82KDjMLUnj86tVRHxYyMzfC4npXe1XNZg
witness-15:  5Hz27CtQFUXzsBswBdZPax1QdBGmwtEimwamToFY7ukFDaEeTri
witness-16:  5J9YwFnf9CqoH2St5Pa4zTvmbJMgSX66NXsatvbpDMQKjUpz62F
witness-17:  5HtHJLNzo6Knau92XwgnoHdkuMNaJptrx1v34znar431UszB8Ea
witness-18:  5JFmmgVMq5X57CxZuWKFQMdvgJeHsNg4dWpKbBs7HxBLxUMx9Rw
witness-19:  5J9iu9kZzEjF2pBv2FNXndjf3EFw9tYxKmrYdpiFMA9pPBVAvrm
Exemplary comment
    [
        "comment",
        {
            "author": account_name,  # account name from account-0 to account-99999
            "body": random_text, # from 100 to 500 characters
            "json_metadata": "{}",
            "parent_author": "",
            "parent_permlink": f"category-{account_name}",  # same account name as field "author"
            "permlink": f"permlink-{account_name.split('-')[1]}", # e.g. permlink-99
            "title": f"title-{account_name}",  # title-account-99
        }
    ]
Open-signature

The accounts do not have set keys, the weight threshold is set to 0. You can sign transactions without a key.

OwnerAuthority(weight_threshold=0, account_auths=[], key_auths=[])
ActiveAuthority(weight_threshold=0, account_auths=[], key_auths=[])
PostingAuthority(weight_threshold=0, account_auths=[], key_auths=[])
# Private Keys
{
'owner': [],
'active': [],
'posting': [],
}
Single-signature

The accounts set only one key for posting, active and owner authority with weight threshold 1, a single-key signature is required to broadcast the transaction.

PostingAuthority(weight_threshold=1, account_auths=[], key_auths=[('STM6VJuSwgXEZ8btuoYC3YjXPt6CGDK6WXeTjgMADLTwWEqin7AYC', 1)])
ActiveAuthority(weight_threshold=1, account_auths=[], key_auths=[('STM5nfmyEuBkUUXMmGAEqj7sXAkqPF5dZNmeegwyekDc2UTheC6YW', 1)])
OwnerAuthority(weight_threshold=1, account_auths=[], key_auths=[('STM7uM29oD8Y6YZZAazU7cZM3YRpZphhfQWEajc7JQUCn3BJvdVw1', 1)])
# Private Keys
{
  'owner': ['5JP3EbwqTqkyCHpkECAANMd9SWbr4RApzbj8WkZj7JwezicsL6m'],
  'active': ['5JqgqkuYAPx2xbSuttJst6Z1mTS3dJh7wdKi8b99MUcrsyT6fyM'],
  'posting': ['5JfcKpyjeyZ4dqdVjXUHFzVQkvU2ZK1kLQS8SSBhEu7bdH5vdh4']
}
Multi-signature

Broadcasting a transaction in this type of block_log requires signing with a different number of keys depending on the required authority. Accounts have three types of weight threshold set for "owner": 3, "active": 6, "posting": 10.

OwnerAuthority(weight_threshold=3, account_auths=[], key_auths=[('STM5H4hmHbhLSSkTbZG2gf9jUGMGqwADbZ4xfG2D5zrYyYMdxJBoP', 1), ('STM5d99fpiG7YoV6ZiFyphrLnk72wag4G6TQAenVyAaqdwzPagpFL', 1), ('STM75wDJnLa9B5TfkmbqFQp9x3FYRJxeDHXv8RNM8NRzrP6C42pgL', 1)])
ActiveAuthority(weight_threshold=6 account_auths=[] key_auths=[('STM5G4AxkcCLe7Vurg4FGCgL4rKBXFJWLLMxSzp2LWG6aGixJyXLk', 1), ('STM5LHMhVTXkoWX6WRAyDhtSoCmLgL94RFmB98fF5aFQkkfERGZaz', 1), ('STM6SWL5kqswx6pEqtBDM4GTHwWnsDhQb94JskWrbzwDmpy8QWzDS', 1), ('STM74LejCncTortt2NFFC5dPcXjD1q3DaSqXRrAtwiDUxPHDj2H4y', 1), ('STM7mNaJ8hvqqHQc7drCwEZAJfAbeHsmdQLCY39Rod4JxcXLDoivk', 1), ('STM7xM8dT912gDWkUVdEnbGwTquvxmjWQ3BAnzcoqndhWRzaUyToX', 1)]
PostingAuthority(weight_threshold=10 account_auths=[] key_auths=[('STM5HKGeKFyFgrtvWdfjMppn42WGeusc7MhcDW7zZHTBNdwJnCgtn', 1), ('STM5nmmdzGkZrV7oXWRRyuTm9fcxTYYQJ2kxCNmgbxs9uGWpAK6ry', 1), ('STM61KJmM7hNXZTzi585rZFMaJ4QcbrZZhyHwW375uUiu48v6wf3b', 1), ('STM6hWdk9T3P5rQMGzaNrzmVQsubrVmLdcW5N4bwTCkCSQ3DrWEe9', 1), ('STM6i55HuryYKK3mhpkSSzpv8SbhbJpW86ZvSiTRyNJqBh2g2V4Cp', 1), ('STM6xesm2pYhEEah8Gse4WrWxnDyyrHzLYPuarCHFBm6zZP5Geqq3', 1), ('STM77Z8QSF7N8RSR8nuAAr81VABVhEk4dk4GbvRaYaTKSCyBMaBNR', 1), ('STM7Y9pcY8javCXLVxaHekzgAohY4r3JVTAA54noCh7VrG1AyM92E', 1), ('STM8H1Qg1V1RLvz5y9y7dKYtZVNjvMVQT6nUZhnqTafDiRSm6Kfiv', 1), ('STM8ZszAJsk9gAJCxUimvqo7RWXqWvZ2Qt9WW3sxHs3uqpfsZRJiD', 1)]
# Private Keys
{
  'owner': 
  [
    '5HuvBmD7bNmdcdBSx1wHNGVLUaKcbPRtjwkh4Vz9JFE1MLGMsPP',
    '5J9iuWsKXK566hXzHA4D3BPyFifK3JphwiQ4cuo92UqXjjKAt7R',
    '5KRoUjzQ5tJAVa6EfE9SgvqWK7336TPBypQXHWFABChVTrDh8nX',
  ],
  'active': 
  [
    '5J2fy1FoutB5UYJgAxVF3qWLVqNaZTCtg78ZaK1TTxCzdYqTEP4',
    '5KhwBEMAhwpmTHD2WETDcB92gWSG9GdXVevvGj3coTdUVjJcHVn',
    '5JpRi3FYim778JMaeQBVQwPsMd5U8FGirerSiiYus2hsRB277HD',
    '5JFAiVLsXB5LG2ntrCNUUjD9Hr4oJvf4Lp3v8C6vCD3HchphtuV',
    '5JUnx8u6PcYkQ5gjdmtkEKdFewtPRGFxyKBYjcbov1wnELw26uK',
    '5JUuhBJuFjFAi8r4fAw4TL2jDzLr6gNPY52drfh6bo4az2kGm9Q',
  ],
  'posting': 
  [
    '5JGe2JSPajRMmAh1VJmoC1mM8oLxADXw5XB3h57XjgA4zRTZjGJ',
    '5JTdmG2c2udBiorTZkENDVCfXgXJKy92d2caTm8kXcnfYiQCqAA',
    '5JPnznv2f3k1dx6uxqP9bKDv8PrShQuZ9tnQ242zaK5v8Ktk2KL',
    '5JvrAVQax5xxM8aSDBZaV1cGsrfsc6JGC58gPAgjedWXbwSVWgj',
    '5JhycWS1MLnyeR5nvU1peJddG2ho5H6WN2kDS813Utdkdp8xJSN',
    '5Huh6DuKYhkUFPmbt3k8dZGYU9t5brr35uYqV6Hfd9hqKF2Kmeg',
    '5JkkX2XvpFeeQoGGgyiG7CQ7SftunMfJTzwYrx6subgguop1T7x',
    '5Ju5hG9Qb4YrSgVVeSZ2H5TM5doFa3imdVFWTMoQ5gRiMpyTH6n',
    '5HwRzZae8h2qsmtAzyHkKwffUCxYqJktTgSzJjurezz86fYZb3d',
    '5K2DAwmDhEWYd6HRKCi6EFuKrFLAcVUi9nasSk1xQexN3p1Ecc3',
  ]
}

@ABW^

@kbotor & @msobczyk

Service universal_block_logs on CI - three new jobs:

  • generate_universal_block_logs_and_save_image -> job with automatic start, based on testnet_node_build. Auto detect when generate_universal_block_logs.py was changed and generate new versions of block logs when it be necessery. Next creating docker image with generated universal_block_logs and save it to container registry (https://gitlab.syncad.com/hive/hive/container_registry/646),

  • copy_universal_block_logs_to_cache -> pull docker image and copies block_logs to /cache/universal_block_logs. Files structure:

/cache/universal_block_logs
├── block_log_multi_sign
│   ├── alternate-chain-spec.json
│   ├── block_log
│   └── block_log.artifacts
├── block_log_open_sign
│   ├── alternate-chain-spec.json
│   ├── block_log
│   └── block_log.artifacts
└── block_log_single_sign
    ├── alternate-chain-spec.json
    ├── block_log
    └── block_log.artifacts
  • universal_block_log_tests -> tests based on generated block_logs. Each test copies block log to own generated.../ files.
Edited by Michał Kudela

Merge request reports

Loading