SLPDB icon indicating copy to clipboard operation
SLPDB copied to clipboard

New package.json dependencies (slpjs & grpc-bchrpc-node versions deprecated, & bitbox-sdk, bitcore-lib-cash, etc updates)

Open TinosNitso opened this issue 2 years ago • 1 comments

Please update the package.json! After a lot of trial & error I've deduced a package.json (package.json - improved version below) which successfully updates many dependencies (as many as possible, as much as easily possible). I've never opened a pull request before - I might try. NB: overall package version isn't really 1.0.0. 😉

I've tested (& am using) a fresh install of the package & it works but we must force the update, because some dependencies' dependencies clash & cause npm warnings. npm install --force

Line 30 assumes nodejs v16. Lines 29 & 50 work well with mongod v6.

Is an update worth the effort? 24 hrs continuous testing is needed to be confident there won't be any timeouts, etc, but after at least a few hours it's looking faster than just a nodejs update. The following lines are worthy of note:

"bitbox-sdk": "8.10.1", from 8.2.1 "bitcore-lib-cash": "8.25.36", from 8.22.2 "grpc-bchrpc-node": "^0.15.2", from ^0.10.2 (deprecated) "mingo": "6.1.0", from ^2.5.3 "node-jq": "2.3.3", from 1.6.0 "slpjs": "^0.27.11", from ^0.27.8 (deprecated) "ts-node": "10.9.1", from ^7.0.1

It seems like any one of these lines could impact the speed of the mono-threaded slpdb app. Even a 2% total speed increase could mean a whole day's work, to sync a new instance.

I went through each & every dependency the best I could, except for migrate-mongo & devDependencies. For them I didn't dare break the carrot ^ because that would require way more testing.

The exact numbers I've chosen are as follows. Each one is like a long story. I've introduced bigi & bip39 for bitbox-sdk to work. However v8.11 wouldn't work so I went with v8.10.1. I'd guess the most important to get right are mongodb, @types/mongodb, slpjs & maybe grpc-bchrpc-node - the latter two for speed.

  "dependencies": {
    "@types/bigi": "1.4.2",
    "@types/bip39": "^2.4.2",
    "@types/ip": "^1.1.0",
    "@types/js-yaml": "^3.12.5",
    "@types/mongodb": "^3.6.20",
    "@types/node": "16.11.7",
    "@types/p-queue": "3.1.0",
    "@types/zeromq": "5.2.1",
    "bcash": "^1.1.1",
    "bigi": "1.4.2",
    "bignumber.js": "~9.0.0",
    "bip39": "^2.6.0",
    "bitbox-sdk": "~8.10.1",
    "bitcoin-rpc-promise-retry": "^1.3.0",
    "bitcore-lib-cash": "^8.25.36",
    "bufio": "^1.0.7",
    "cashaddrjs-slp": "^0.2.12",
    "dotenv": "16.0.1",
    "fountainhead-core": "^0.0.12",
    "grpc-bchrpc-node": "^0.15.2",
    "iconv-lite": "^0.6.3",
    "ip": "^1.1.8",
    "js-yaml": "4.1.0",
    "level": "^7.0.1",
    "migrate-mongo": "^5.0.1",
    "mingo": "6.1.0",
    "mongodb": "^3.7.3",
    "node-jq": "2.3.3",
    "os-utils": "0.0.14",
    "p-limit": "4.0.0",
    "p-queue": "3.1.0",
    "slpjs": "^0.27.11",
    "synchronized-promise": "0.3.1",
    "traverse": "^0.6.6",
    "ts-node": "10.9.1",
    "typescript": "^3.9.10",
    "zeromq": "^5.2.8"
  },
  "devDependencies": {
    "@types/mocha": "^5.2.7",
    "eslint": "^5.16.0",
    "mocha": "^7.2.0",
    "mocha-steps": "^1.3.0",
    "source-map-support": "^0.5.21"
  }

I've added a few (optional) carrots here compared to the attachment.

TinosNitso avatar Aug 13 '22 21:08 TinosNitso