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

Update weights #1661

Merged
merged 1 commit into from
Apr 3, 2020
Merged

Update weights #1661

merged 1 commit into from
Apr 3, 2020

Conversation

CjS77
Copy link
Collaborator

@CjS77 CjS77 commented Apr 2, 2020

The existing transaction weights were placeholder values.

This PR updates the weights to be more representative of their cost in
disk and bandwidth usage.

A single input is 57 bytes, and output is 737 B and a kernel is 147 B.
Normalising an input weight to one, an output would be 12.9 and a kernel 2.6.

There is one kernel per transaction; and one header per block. We can't
know what the header contribution is per transaction, but by rounding
the kernel weight to 3, each transaction can "pay" for a little part of
the header.

Rounding the output weight to 13 makes very little difference to
the overall arithmetic.

Overall, this makes every transaction, regardless of number of in- or
outputs roughly the same weight per byte; around 57 ± bytes/weight.

Several tests were updated that used fees in theor assertions to account
for the new weights; typically by reducing the fee per gram specified in
the test transactions.

The existing transaction weights were placeholder values.

This PR updates the weights to be more representative of their cost in
disk and bandwidth usage.

A single input is 57 bytes, and output is 737 B and a kernel is 147 B.
Normalising an input weight to one, an output would be 12.9 and a kernel 2.6.

There is one kernel per transaction; and one header per block. We can't
know what the header contribution is per transaction, but by rounding
the kernel weight to 3, each transaction can "pay" for a little part of
the header.

Rounding the output weight to 13 makes very little difference to
the overall arithmetic.

Overall, this makes every transaction, regardless of number of in- or
outputs roughly the same weight per byte; around 57 ±  bytes/weight.

Several tests were updated that used fees in theor assertions to account
for the new weights; typically by reducing the fee per gram specified in
the test transactions.
Copy link
Contributor

@neonknight64 neonknight64 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@sdbondi sdbondi merged commit 2898cca into development Apr 3, 2020
@CjS77 CjS77 deleted the update_weights branch April 7, 2020 10:00
CjS77 added a commit that referenced this pull request Apr 25, 2020
** Major Changes from 0.0.9

**** Store and forward

Peers will hold onto message for recipients that are not online and deliver the messages to them when they appear again.

**** OsX package installer

**** Many documentation improvements

**** Ephemeral keys for private messages

This is a big change that preserves privacy on the network but dramatically reduces the amount of traffic peers have to deal with.

**** Emoji Ids

*** Other changes

- The target difficulty for a specified PoW algorithm is included in the block header. This allows the target difficulty
  of any block height to be calculated by only processing the last set of target difficulty samples up to that height.
- Don't mark peers as offline if there are no existing connections (#1763)
- Add UTXO selection strategy for large txs
- Base node: Dynamically determine build version (#1760)
- Include random peers for liveness ping (#1753)
- RandomX - Version Update (#1754)
- Add generic debug log function to FFI (#1752)
- Lots of logging improvements
- Added list-transactions and cancel-transaction commands (#1746)
- ASCII table output for list-peers and list-connections (#1709)
- Improve Difficulty adjustment manager
- Modular configuration via ConfigLoader and ConfigPath traits
- Fix chain monitoring bug in Transaction Service (#1739)
- Empty Emoji String Bug Fix  (#1736)
- Coin-split base node cli command
- Complete the basic OSX pkg build
- Perform reorgs only on stronger tip accumulated difficulties
- Use filesystem storage for dht.db on libwallet (#1735)
- Fix duplicate message propagation (#1730)
- Introduced accumulated difficulty validators to allow different rules for testing and running running a base node. -
- Changes to peer offline handling (#1716)
- Update Transaction cancellation to work for Inbound and Outbound Txs
- Added oneshot reply to outbound messaging (#1703)
- Add transaction stress test command to CLI
- Implemented basic `make-it-rain` command
- Fix MmrCache rewind issue
- Use ephemeral key for private messages (e.g Discovery) (#1686)
- Limit orphan pool size
- Added a function to list UTXOs in the console (#1678)
- Prevent adding yourself as a peer (#1665)
- Update transaction weights (#1661)
- Fix block period calculation
- Validators will now check the weight of a block when doing validation (#1648)
- Cleaned up duplicate code from the Blockchain db
- The ban peer log will now supply n reason why the peer was banned (#1638)
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.

None yet

3 participants