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

Should the verification phase be multi-threaded #3

Open
xuyi33333 opened this issue Oct 8, 2024 · 1 comment
Open

Should the verification phase be multi-threaded #3

xuyi33333 opened this issue Oct 8, 2024 · 1 comment
Labels
enhancement New feature or request question Further information is requested

Comments

@xuyi33333
Copy link

Hello, I noticed that the verification phase in the block-stm paper is supposed to be parallel. However, after looking at the code, I found that the verification phase in block-stm does not seem to have implemented multi-threaded validation.

@dev-ape-ai dev-ape-ai bot added enhancement New feature or request question Further information is requested labels Oct 8, 2024
Copy link

dev-ape-ai bot commented Oct 8, 2024

Hey @xuyi33333 😊👋,

Thanks for bringing up the issue regarding the parallelism in the verification phase of our block-stm-go implementation. After reviewing the current code and some additional research, it seems the project does not currently implement multithreading or parallel processing during the verification phase within the code explicitly. Here are some insights and findings:

Insights:

  • Our current codebase lacks specific implementations of parallel or multi-threaded execution in the verification processes.
  • Typically, Block-STM should leverage inherent parallelism within transaction execution to enhance performance, as described in related literature. This might imply integrating threading or other concurrency mechanisms native to Go, like goroutines.
Related Code Unfortunately, after conducting a search in the relevant code files (`block_executor.go` and `executor.go`), there are no direct references or implementations pointing towards multithreading or parallel execution for the verification phase.
Related Search Results - [Papers with Code - Block-STM: Scaling Blockchain Execution by Turning ...](https://paperswithcode.com/paper/block-stm-scaling-blockchain-execution-by): Describes Block-STM's leveraging of execution order to dynamically detect dependencies and reduce conflicts during speculative transaction execution. - [PDF arXiv:2203.06871v1 [cs.DC] 14 Mar 2022](https://arxiv.org/pdf/2203.06871v1.pdf): Discusses Block-STM's implementation details on Diem Blockchain, demonstrating the benefits of adaptive use of parallelism in different workload scenarios. - [GitHub - crypto-org-chain/go-block-stm: block-stm implementation in ...](https://github.com/crypto-org-chain/go-block-stm): Another implementation example but with mechanisms to handle dependencies more efficiently. - [Block-STM - arXiv.org](https://arxiv.org/pdf/2203.06871): An in-depth paper detailing full algorithmic implementation and evaluations of Block-STM. - [Block-STM: How We Execute Over 160k Transactions Per Second on the ...](https://medium.com/aptoslabs/block-stm-how-we-execute-over-160k-transactions-per-second-on-the-aptos-blockchain-3b003657e4ba): Provides insights into optimizations like multi-version data structures to avoid write-write conflicts in a multithreaded context.

Let's explore further a possible enhancement by considering the integration of Go's concurrency patterns, such as goroutines and channels, into our verification phase. What are your thoughts on this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request question Further information is requested
Projects
Status: Backlog
Development

No branches or pull requests

1 participant