Skip to content

Conversation

@patrick-ogrady
Copy link
Contributor

@patrick-ogrady patrick-ogrady commented May 12, 2023

Closes: #52
Replaces: #136

TODO

  • Add issue to remove tx gossip between validators, just rely on API/Client to distribute
  • invariant: tx block never needs to interact with root block
  • add height to txBlock hash to avoid massive compaction when storing/deleting
  • create genesis txBlock to avoid empty parent checks (height == 0)
  • resolve txBlocks from disk
  • avoid using multiple layers of MerkleDB on TxBlocks (will generate IDs on each layer) -> should use VersionDB
  • Add metric for verification delay (time between request verification and verification ready to proceed)
  • Use streamed blocks to ack txs (or test larger write buffer) or batch acks based on what is available
    • also batch submit
  • Add metric for build time of blocks issued to consensus
  • Ensure verify delay time exits immediately after checking blocks (don't allow redos)
  • Handle closed Chan
  • Carry view forward across all TxBlocks (don't allow forks to be processed?)
    • can assert each node gets 1 txBlock at each height
  • Verify signatures during Last so we don't block RootBlock.Verify
  • Use millisecond timestamps (UnixMilli) + limit 1 block per X ms (avoid surge of seconds)
  • recover txs from dropped txBlocks (into mempool)
  • only gossip to next validators, non-stake can fetch chunks

@patrick-ogrady patrick-ogrady marked this pull request as draft May 12, 2023 22:29
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 12, 2023 22:29 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 12, 2023 22:29 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 12, 2023 22:29 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 12, 2023 22:29 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 12, 2023 22:29 — with GitHub Actions Inactive
status choices.Status,
vm VM,
) (*StatelessRootBlock, error) {
ctx, span := vm.Tracer().Start(ctx, "chain.ParseStatefulBlock")

Check warning

Code scanning / CodeQL

Useless assignment to local variable

This definition of ctx is never used.
ctx context.Context,
estimatedChanges int,
) (merkledb.TrieView, error) {
ctx, span := b.vm.Tracer().Start(ctx, "StatelessRootBlock.childState")

Check warning

Code scanning / CodeQL

Useless assignment to local variable

This definition of ctx is never used.

// implements "snowman.Block.choices.Decidable"
func (b *StatelessTxBlock) Reject(ctx context.Context) error {
ctx, span := b.vm.Tracer().Start(ctx, "StatelessTxBlock.Reject")

Check warning

Code scanning / CodeQL

Useless assignment to local variable

This definition of ctx is never used.
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 12, 2023 23:00 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 12, 2023 23:00 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 12, 2023 23:00 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 12, 2023 23:00 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 12, 2023 23:00 — with GitHub Actions Inactive
}

func (b *StatelessTxBlock) Accept(ctx context.Context) error {
ctx, span := b.vm.Tracer().Start(ctx, "StatelessTxBlock.Accept")

Check warning

Code scanning / CodeQL

Useless assignment to local variable

This definition of ctx is never used.

// implements "snowman.Block.choices.Decidable"
func (b *StatelessTxBlock) Reject(ctx context.Context) error {
ctx, span := b.vm.Tracer().Start(ctx, "StatelessTxBlock.Reject")

Check warning

Code scanning / CodeQL

Useless assignment to local variable

This definition of ctx is never used.
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 12, 2023 23:08 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 12, 2023 23:08 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 12, 2023 23:08 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 12, 2023 23:08 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 12, 2023 23:08 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 17, 2023 07:27 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 17, 2023 07:27 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 17, 2023 07:27 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 17, 2023 07:27 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 18, 2023 01:06 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 18, 2023 01:06 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 18, 2023 01:06 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 18, 2023 01:06 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 18, 2023 01:06 — with GitHub Actions Inactive
@patrick-ogrady
Copy link
Contributor Author

There should be no tx blocks missing:
image

@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 18, 2023 01:28 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 18, 2023 01:28 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 18, 2023 01:28 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 18, 2023 01:28 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 18, 2023 01:28 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 18, 2023 03:54 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 18, 2023 03:54 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 18, 2023 03:54 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 18, 2023 03:54 — with GitHub Actions Inactive
@patrick-ogrady patrick-ogrady temporarily deployed to long-ci May 18, 2023 03:54 — with GitHub Actions Inactive
@patrick-ogrady
Copy link
Contributor Author

gzip compression should be disabled?
image

@patrick-ogrady
Copy link
Contributor Author

Amount of state changes we can process rapidly degrades:
image

@patrick-ogrady
Copy link
Contributor Author

Verify and build time explode:
image

@github-actions
Copy link

This PR has become stale because it has been open for 30 days with no activity. Adding the lifecycle/frozen label will exempt this PR from future lifecycle events..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add large block support

2 participants