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

We're Falling Behind! #676

Open
dnwiebe opened this issue Mar 8, 2023 · 2 comments
Open

We're Falling Behind! #676

dnwiebe opened this issue Mar 8, 2023 · 2 comments

Comments

@dnwiebe
Copy link

dnwiebe commented Mar 8, 2023

There is of course our dependence on old versions of actix and Tokio; but perhaps more urgent is the fact that Rust is moving on without us. The current Rust version at the time of this writing is 1.67.1, but we're stuck at 1.63.0, because we can't build with anything higher.

This is tolerable now, but eventually it will wedge us into a corner we can't escape from. We need to keep up with the advancing versions of Rust.

Determine what has to be done to:

  • move us to the latest version of Rust
  • begin using the (relatively) new async/await feature of Rust
  • change to the latest versions of actix and tokio
  • eliminate the places in the code where we're calling .wait() on futures and blocking Actors from proceeding

Write cards to describe this work. Once the work is done, we should modify Node/.github/workflows/ci_matrix.yml so that the Rust toolchain is no longer fixed at 1.63.1, but is always the latest stable version.

@masqrauder
Copy link

error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
--> /Users/sswing/.cargo/registry/src/github.com-1ecc6299db9ec823/socket2-0.3.15/src/sockaddr.rs:176:9
|
176 | mem::transmute::<SocketAddrV4, sockaddr_in>(v4);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: source type: SocketAddrV4 (48 bits)
= note: target type: sockaddr_in (128 bits)

@masqrauder
Copy link

masqrauder commented Mar 17, 2024

For the rust-web3/json-rpc follow-ups after this card, I recommend we consider adopting https://github.com/alloy-rs (the planned successor to https://github.com/ethers-rs). The determining factor is if we think alloy-rs is ready for use.

The other choice to evaluate is https://github.com/ethers-rs.

I think we would prefer to do a single migration instead of one from rust-web3 to ethers-rs and another from ethers-rs to alloy-rs. The benefits of alloy-rs include improved Rust datatypes (e.g. uint256) perhaps even native flavors; Solidity macros; Flexible http transports; async/await; hardware wallets and other hardware keys for signing transactions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: 🏗 Development In Progress
Status: Development In Progress
Development

No branches or pull requests

3 participants