Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Metric for rewards #4955

Closed

Conversation

AlexanderLimonov
Copy link
Contributor

Issue #4935

Introduces a crude gauge of reward trajectory adherence

4845: Implement Entity and Package information requests (redux) r=EdHastingsCasperAssociation a=EdHastingsCasperAssociation

This is a fork of casper-network#4835 to handle merge conflicts

Co-authored-by: Jacek Malec <[email protected]>
Co-authored-by: edhastings <[email protected]>
Co-authored-by: Ed Hastings <[email protected]>
4844: Port the changes related to handling of unbonds in `global-state-update-gen` to `feat-2.0` r=fizyk20 a=fizyk20

This ports the changes made in casper-network#4828 to `feat-2.0`.

Co-authored-by: Bartłomiej Kamiński <[email protected]>
4823: Introducing calltable serialization to `TransactionV1` structures subtree. r=darthsiroftardis a=zajko

This is an extension to the `bytesrepr` serialization used in the rest of the node and it also uses the `
FromBytes` and `ToBytes` traits.
    From now on selected types will use a specific serialization approach which will be called "calltable" serialization.
    A "calltable-serialized" type is serialized as follow:

- For structs:
    -  Given type X with N attributes we assign a unique (in the scope of X) `u16` index to each of the structs attribute. The assumption is that the indexes are 0-based
    - We serialize each of the structs attribute using it's `ToBytes` implementation, producing binary payloads: _binary_vec<sub>0</sub>, binary_vec<sub>1</sub>, ..., binary_ve
c<sub>N-1</sub>_. We don't allow any of the _binary_vec<sub>i</sub>_ to be empty.
    - We construct a _bytes_ vector which is a concatenation of _binary_vec<sub>0</sub>, binary_vec<sub>1</sub>, ..., binary_vec<sub>N-1</sub>_
    - We construct a _fields_ vector. The _i-th_ element of _fields_ is a description of the _i-th_ attribute:
        - For field with index 0 this description will be:
              _field<sub>0</sub>_ = Field {
                 index: 0
                 offset: 0
              }
        - For each next field:
              *field<sub>i</sub>* = Field {
                  index: *i*
                  offset: *field<sub>i - 1</sub>.offset* + length(*binary_vec<sub>i - 1</sub>*)
              }
    - We construct an instance of `CalltableSerializationEnvelope {fields, bytes}`  and serialize it using it's `ToBytes` implementation.
- For enums:
    - Given an enum E with M variants we assign a `u8` unique index for each of the variant. The variant-index should start from 0 and be contiguous.
    - Given an enum instance *e* of variant *E<sub>j</sub>* (having variant index *j*) which has N attributes:
        - we assign a unique (in the scope of *E<sub>j</sub>) `u16` index to each of the enum variants attribute. The assumption is that the indexes are 1-based.
        - We serialize value of *j* as *binary_vec<sub>0</sub>* and each of *e* attribute as subsequent *binary_vec* (binary_vec<sub>1</sub>, binary_vec<sub>2</sub>,..., bi
nary_vec<sub>N</sub>). We don't allow any of the *binary_vec<sub>i</sub>* to be empty.
        -  We construct a *bytes* vector which is a concatenation of *binary_vec<sub>0</sub>, binary_vec<sub>1</sub>, ..., binary_vec<sub>N</sub>*.
        - We construct a *fields* vector. The *i-th* element of *fields* is a description of the *i-th* attribute:
            - For field with index 0 this description will be:
                 _field<sub>0</sub>_ = Field {
                   index: 0
                   offset: 0
                 }
            - For each next field:
                 _field<sub>i</sub>_ = Field {
                     index: *i*
                     offset: *field<sub>i - 1</sub>.offset* + length(*binary_vec<sub>i - 1</sub>*)
                 }
        - We construct an instance of `CalltableSerializationEnvelope {fields, bytes}`  and serialize it using it's `ToBytes` implementation.
        - To recap, each enum variant we serialize analogously to a `struct`, but we prepend a synthetic `u8` field which identifies the variant.
    
This PR applies calltable serialization to the following types:
- `InitiatorAddr` enum
- `PricingMode` enum
- `TransactionEntryPoint` enum
- `TransactionInvocationTarget` enum
- `TransactionScheduling` enum
- `TransactionTarget` enum
- `TransactionV1` struct
- `TransactionV1Body` struct
- `TransactionV1Header` struct
    
All other types (especially legacy ones, including those nested in "calltable-serialized" types) should use "regular" serialization logic.

Co-authored-by: Jakub Zajkowski <[email protected]>
… rustSDK-feat-2.0

# Conflicts:
#	Makefile
#	types/src/transaction/transaction_v1/transaction_v1_builder.rs
# Conflicts:
#	utils/global-state-update-gen/src/generic/state_tracker.rs
4891: Fix `node_should_rejoin_after_ejection` being flaky r=fizyk20 a=fizyk20

This PR changes the bid amount in the `node_should_rejoin_after_ejection` test to be equal to the minimum account balance, set [here](https://github.com/casper-network/casper-node/blob/e6456b709ec1da1c6b703db2a04beeba960651c5/node/src/reactor/main_reactor/tests.rs#L301).

Since the fixture is initialized with random balances for nodes, and the minimum possible balance was less than the bid amount, sometimes the call to `add_bid` would fail with the `InsufficientFunds` error, causing the test to be flaky. This change should fix the issue.

Closes casper-network#4859 


Co-authored-by: Bartłomiej Kamiński <[email protected]>
…/enable-addressable-entity-tweaks

Enable Addressable Entity tweaks
…able-addressable-entity

# Conflicts:
#	execution_engine/src/runtime/mod.rs
#	execution_engine_testing/test_support/src/transfer_request_builder.rs
#	execution_engine_testing/test_support/src/wasm_test_builder.rs
#	execution_engine_testing/tests/src/test/contract_messages.rs
#	smart_contracts/contract/src/contract_api/runtime.rs
#	storage/src/system/runtime_native.rs
#	types/src/chainspec/vm_config/host_function_costs.rs
4897: Add chainspec setting to enable Addressable Entity r=darthsiroftardis a=darthsiroftardis

CHANGELOG:


- Add chainspec setting to the core config which enables the addressable entity and migrates accounts and contracts lazily to the entity, along with the named keys and entry points

Co-authored-by: Karan Dhareshwar <[email protected]>
4841: Implement delegator slot reservation r=darthsiroftardis a=wojcik91



Co-authored-by: Jacek Chmielewski <[email protected]>
Co-authored-by: Maciej Wójcik <[email protected]>
4933: Metrics timings r=EdHastingsCasperAssociation a=darthsiroftardis

Update the histogram timings for the metrics

Closes casper-network#3770 


Co-authored-by: Karan Dhareshwar <[email protected]>
4932: Fix handling zero bids in forced_undelegate r=EdHastingsCasperAssociation a=fizyk20

This PR reverts a change from casper-network#4802 left in by mistake (should have been reverted in casper-network#4827).

It also makes sure that we always prune zero bids, even if the minimum delegation amount allowed by a validator is zero.

Closes casper-network#4920



Co-authored-by: Bartłomiej Kamiński <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants