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

Web Socket connection (ws:/ and wss:/) not working properly with Nodejs app and Web3 libraries. #3477

Open
beawareoftheg opened this issue Jul 22, 2024 · 2 comments
Assignees
Labels
bug Something isn't working

Comments

@beawareoftheg
Copy link

beawareoftheg commented Jul 22, 2024

Describe the bug
I use a ws connection from my Nodejs app, that uses web3 libraries. The connection via wss works properly with the public API of the IOTA evm testnet and I can interact with smart contracts and even listen to events. The problem is with a local wasp node and a private chain that I deployed. The connection is made with ws (and not wss) as the wasp node runs with HTTP (not HTTPS). With wscat I am able to get a response. The nodejs app initially connects with the web socket, and I can call view functions from a smart contract, but when I try to call a normal function (i.e. where I have to spend gas) or subscribe to events, the connection stops. Moreover, once I do that, with wscat I am not able anymore to connect to the web socket, and I get "error: Unexpected server response: 429". To get it working again I need to run "docker compose down" and then "docker compose up".

To Reproduce

  1. Run a local HTTP(s) hornet node and wasp node.
  2. Deploy a private chain
  3. Deploy a simple smart contract to the chain
  4. Connect to the ws via the Web3 functions
  5. Interact with the contract, via Web3 functions
  6. See error

Expected behavior
The connection should not stop, as it is working without errors in public testnets.

Screenshots
Screenshot of the error in my nodejs app (running on localhost:3000)
Schermata del 2024-07-22 12-50-47

Network and versioning

  • Type of L1 network: IOTA testnet
  • Type of Wasp chain: Private chain
  • Interaction method: JSON/RPC Websocket
  • Interaction software: Web3 libraries, nodejs app
  • Version of Wasp 1.2.0-alpha.1 and 1.4.0-alpha.3

Additional context
The connection to the web socket from the nodejs app, is made with: web3 = new Web3(new Web3.providers.WebsocketProvider(ws://localhost/wasp/api/v1/chains/tst1pqsvlxmlvj9fkq6uuz0y48m6wucgdsqpt70ftmgzn95ase5wrjtqy7msdq4/evm/ws));

@beawareoftheg beawareoftheg added the bug Something isn't working label Jul 22, 2024
@beawareoftheg beawareoftheg changed the title Local Web Socket connection (ws:/) not working properly with Nodejs app. Web Socket connection (ws:/) not working properly with Nodejs app and Web3 libraries. Jul 23, 2024
@beawareoftheg
Copy link
Author

Update: I tried with a wss connection.
I ran a similar node but with a https connection. But the outcome it's still the same: when I try to call a normal function of the contract or subscribe to event, it gives me: "Unexpected server response: 429", that for what I understood, it's a Too Many Requests error.

The problem is not related to the use of tls.

@beawareoftheg beawareoftheg closed this as not planned Won't fix, can't repro, duplicate, stale Jul 23, 2024
@beawareoftheg beawareoftheg reopened this Jul 23, 2024
@beawareoftheg
Copy link
Author

beawareoftheg commented Jul 24, 2024

Another update: the problem seems to be related to executing the nodejs app in the same node. I tried to run the nodejs app in another vm, connecting to the one running wasp. It seems that, by limiting the action's rates (e.g., only one subscription to the event at a time), the interactions works. But still, running it in the same node is not working, even by limiting the actions.
Moreover, connecting to wss of public testnets, there are no errors and it is possible to perform all the actions together without problems

I cannot try with newer versions of web3 for the #3392 issue.

@beawareoftheg beawareoftheg changed the title Web Socket connection (ws:/) not working properly with Nodejs app and Web3 libraries. Web Socket connection (ws:/ and wss:/) not working properly with Nodejs app and Web3 libraries. Jul 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants