Starting to loose faith in Web3

Hy everyone,

I wanted to start this post here to get your opinions on the ongoing developments in the web3 space, especially when it comes to the truffle environment and npm packages in general really.

I had to take a break from smart contract development for about six weeks due to other work. Yesterday I went back to a project I have been working on intensely. I tried to re-deploy it to mumbai testnet and did face many issues every since. Now I am in the process of debugging the whole thing that worked so smoothly just a little over one month ago. I can’t tell you how much of a pain this is. I really would like to see some stability coming into the space and I am really asking myself if I want to continue investing so much of my precious time into running behind the latest npm package updates, or if it is maybe a better idea to wait with blockchain development until things are more standardized and bug-free.

How are your experiences with this?

1 Like

I have done couple of project, But not with Web3 we work on Ethersjs it’s lighter and I don’t meet any issue.

Maybe you can have a look and try.

Hi, i don’t use truffle/node for development (python or go for the backend), but by your description, you seem to be having a dependency version problems. Are you pinning specific versions?

this is my package.json

package.json
{

  "name": "meme-of-the-day",

  "homepage": ".",

  "version": "0.1.0",

  "private": true,

  "devDependencies": {

    "@openzeppelin/truffle-upgrades": "^1.5.2",

    "@truffle/hdwallet-provider": "^1.4.1",

    "@types/jest": "^24.0.0",

    "@types/node": "^12.0.0",

    "@types/react": "^16.9.0",

    "@types/react-dom": "^16.9.0",

    "@types/react-router-dom": "^5.1.5",

    "@types/styled-components": "^5.1.3",

    "chai": "^4.2.0",

    "chai-as-promised": "^7.1.1",

    "chai-bignumber": "^3.0.0",

    "concurrently": "^5.3.0",

    "cross-var": "^1.1.0",

    "dotenv-cli": "^4.0.0",

    "eth-gas-reporter": "^0.2.20",

    "ganache-cli": "^6.10.2",

    "rimraf": "^3.0.2",

    "truffle": "^5.3.14",

    "truffle-hdwallet-provider": "^1.0.17",

    "typescript": "^3.9.5"

  },

  "dependencies": {

    "@ceramicnetwork/ceramic-http-client": "^0.7.2",

    "@ceramicstudio/idx-constants": "^0.3.0",

    "@ceramicstudio/idx-web": "^0.2.0",

    "@openzeppelin/contracts": "^3.3.0",

    "@openzeppelin/contracts-upgradeable": "^4.0.0",

    "@testing-library/jest-dom": "^4.2.4",

    "@testing-library/react": "^9.3.2",

    "@testing-library/user-event": "^7.1.2",

    "@textile/hub": "^2.0.2",

    "@walletconnect/web3-provider": "^1.3.1",

    "3id-connect": "^1.0.0-alpha.8",

    "babel-polyfill": "^6.26.0",

    "babel-preset-env": "1.7.0",

    "babel-preset-es2015": "6.24.1",

    "babel-preset-stage-2": "6.24.1",

    "babel-preset-stage-3": "6.24.1",

    "babel-register": "^6.26.0",

    "bootstrap": "4.3.1",

    "browser-image-resizer": "^2.1.3",

    "dayjs": "^1.9.5",

    "eth-sig-util": "^3.0.0",

    "ethers": "^5.0.14",

    "isomorphic-ws": "^4.0.1",

    "react": "^16.13.1",

    "react-bootstrap": "^1.3.0",

    "react-dom": "^16.13.1",

    "react-router-dom": "^5.2.0",

    "react-scripts": "3.4.3",

    "styled-components": "^5.2.0",

    "web3": "^1.3.0",

    "web3modal": "^1.9.2",

    "ws": "^7.3.1"

  },

  "scripts": {

    "start": "react-scripts start",

    "build": "react-scripts build",

    "test": "react-scripts test",

    "eject": "react-scripts eject",

    "compile": "truffle compile",

    "test-contracts": "dotenv truffle test ./src/contracts/test/*",

    "ganache": "dotenv npm run run:ganache",

    "run:ganache": "cross-var  ganache-cli --chainId $npm_package_config_ganache_networkId --networkId $npm_package_config_ganache_networkId --allowUnlimitedContractSize --gasLimit $npm_package_config_ganache_gasLimit --gasPrice $npm_package_config_ganache_gasPrice --mnemonic '$MNEMONIC'",

    "migrate-dev": "dotenv npm run run:migrate-dev",

    "run:migrate-dev": "rimraf ./src/contracts/abis && truffle migrate --reset --compile-all --network development",

    "migratematic": "rimraf ./src/abis && truffle migrate --reset --compile-all --network matic",

    "deploydev": "concurrently \"npm run ganache\" \"npm run migrate-dev\""

  },

  "config": {

    "ganache": {

      "networkId": 3431,

      "gasPrice": 25000000000,

      "gasLimit": 6500000

    }

  },

  "eslintConfig": {

    "extends": "react-app"

  },

  "browserslist": {

    "production": [

      ">0.2%",

      "not dead",

      "not op_mini all"

    ],

    "development": [

      "last 1 chrome version",

      "last 1 firefox version",

      "last 1 safari version"

    ]

  }

}

it is not web3.js i am having troubles with, but truffle. Sorry, the title can be misleading. I actually really enjoy connecting contracts to the frontend with web3.js. not having any painful issues there. But the smart contract side of things are what throw me off a lot these days. having issues that havent been there before and have no clue what to do about them. also cannot seem to find anyone having the same problems. It is a mystery for me since 3 days

PREACH!!!

The endless error messages and worthless youtube tutorial videos has damn near driven me crazy. After a bottle of Adderall I am back a square one - hoping Open Zepp hears our cries and create a Remix site for custom smart contract deployment!

2 Likes

Maybe you have a try with the Hardhat.

I began to study in this industry almost a year ago with truffle environment, I’ve been lightning fast on testing different kind of contracts, deploying them like bullets, everything in the environment was incentive to study more and more, but since last week I’ve been like getting aged with forcing, pushing, hammering a simple filecoin+truffle box, teard my haired off, and later I decided to try Hardhat and ethersJS.

Actually that was the reason I started an account in this forum, I needed answers for first time after a year.

I’m curious if it’s because a lot of new players joining into that development space lately and package management got messed, or is it simply been ignored?

2 Likes

I’ve had that happen to me a while back with truffle when I upgraded a boilerplate to web3 version 1.x. What worked for me was importing web3.min.js and using truffle only fir deployment and to get the Abi abstraction.

My stack now is web3 1.3.6, truffle ( for development) and ganache for testing.

sorry, the ecosystem is dynamic and rapidly growing. if you want stability this is not your game. frankly, I haven’t faced challenges upgrading projects, if you have an understanding of where the direction is heading to.

There’re plenty of C++ projects or low-level hardware development where you can invest time and come back after 2 years you can still compile them. smart contracts and everything blockchain-related are moving at lightning speed.

1 Like