Operating a node on a 32bit system

Hello,
I have a dual core laptop running ubuntu 18.04 that I would like to use to create a storage node. lscpu provides the below output, so it looks like I am on a 32bit CPU. Does storj suppor it? I could not find the identity command for 32bit Intel…

Thanks a lot in advance,

lscpu
Architecture: i686
CPU op-mode(s): 32-bit
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 2
Core(s) per socket: 1
Socket(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 28
Model name: Intel(R) Atom™ CPU N270 @ 1.60GHz
Stepping: 2
CPU MHz: 862.724
CPU max MHz: 1600,0000
CPU min MHz: 800,0000
BogoMIPS: 3192.62
L1d cache: 24K
L1i cache: 32K
L2 cache: 512K
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon pebs bts cpuid aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 xtpr pdcm movbe lahf_lm dtherm

Hello @ste,
Welcome to the forum!

We do not build 32-bit versions, but you can try to build them yourself: https://github.com/storj/storj
You can use this post as an example (it’s little bit outdated, the current version is 1.37.1): De-Dockered storage node operation

2 Likes

Thanks @Alexey, very helpful!

One more question: can I creat the identity on a 64 bit system and use it on a 32 bit system (assuming to install it as mentioned in your reply?)

Yes, you can. I would say that generating an identity on this 32-bit system could take weeks, so it’s better to generate it on more new system, then transfer to this one.

1 Like

Ok, in the meantime I set it up on a 64bit machine with docker. Now I’d like to go back and use an older pc which runs an 32bit ubuntu.
I have followed the instructions in the wiki and the

go install -v ./cmd/...

completed without errors. Making it a service won’t be a problem, but I need now some help to migrate the other installation into this one. How can I now set it up? Any help, at least a starting point would be really appreciated.

You can follow this guide: How do I migrate my node to a new device? - Node Operator

To create a service: How to set up a non-Docker node using systemd services with the official native storagenode binary

thanks. I actually ran also:

go build -ldflags " -s -w -X storj.io/storj/internal/version.buildTimestamp=$(date +%s) -X storj.io/storj/internal/version.buildCommitHash=$(git rev-parse HEAD) -X storj.io/storj/internal/version.buildVersion=$(git describe --tags) -X storj.io/storj/internal/version.buildRelease=true" -o ../bin storj.io/storj/cmd/storagenode

this seems to have generated the binary file (I think mistakenly called bin). Is that the only binary needed?

It should produce the storagenode binary in the ../bin folder.
Make sure that folder ../bin is exist before build with go.
However, you also need to build UI packages for the node’s dashboard before the binary build:

cd web/storagenode/
npm install
npm run build
cd -
go get github.com/go-bindata/go-bindata/go-bindata

# embed web assets into go
go-bindata -prefix web/storagenode/ -fs -o storagenode/console/consoleassets/bindata.resource.go -pkg consoleassets web/storagenode/dist/... web/storagenode/static/...

# configure existing go code to know about the new assets
/usr/bin/env echo -e '\nfunc init() { FileSystem = AssetFile() }' >> storagenode/console/consoleassets/bindata.resource.go
gofmt -w -s storagenode/console/consoleassets/bindata.resource.go

Then build the storagenode.

go install -race -v storj.io/storj/cmd/storagenode

Hi Alexey,
good staff. I managed to reproduce all the steps with the following changes:

  1. no -fs flags to go-bindata
  2. no -race flag to go install

However it seems there is still an issue:

storj@storj32:~/STORJ/storj$ go-bindata -prefix web/storagenode/ -o storagenode/console/consoleassets/bindata.resource.go -pkg consoleassets web/storagenode/dist/... web/storagenode/static/...
storj@storj32:~/STORJ/storj$ /usr/bin/env echo -e '\nfunc init() { FileSystem = AssetFile() }' >> storagenode/console/consoleassets/bindata.resource.go
storj@storj32:~/STORJ/storj$ gofmt -w -s storagenode/console/consoleassets/bindata.resource.go
storj@storj32:~/STORJ/storj$ go install -v storj.io/storj/cmd/storagenode
storj.io/storj/storagenode/console/consoleassets
# storj.io/storj/storagenode/console/consoleassets
storagenode/console/consoleassets/bindata.resource.go:1827:28: undefined: AssetFile
storj@storj32:~/STORJ/storj$

any idea?

have you build js assets?

cd web/storagenode/
npm install
npm run build

If you did skip this, then you can skip everything below and you will not have a web-dashboard.

I just tried to build everything for i386 and it’s finished. You are right - -race is not supported on i386 architecture.

1 Like

Yes I did. In any case I have started from scratch, but I’ve got the same result. you find below the whole output. Please also note I had to take out -fs when running go-binddata. In the output you see the versions for node, npm and go. Let me know if you need anything else.

PS: I am a seasoned developer, but I am not familiar with node nor go. Do not give up :slight_smile: after a little push or with some directions I will do my home work :wink:

storj@storj32:~/STORJ$ node -v
v16.10.0
storj@storj32:~/STORJ$ npm -v
7.24.0
storj@storj32:~/STORJ$ go version
go version go1.17.1 linux/386
storj@storj32:~/STORJ$ git clone https://github.com/storj/storj.git
Cloning into 'storj'...
remote: Enumerating objects: 91339, done.
remote: Counting objects: 100% (2289/2289), done.
remote: Compressing objects: 100% (1402/1402), done.
remote: Total 91339 (delta 1252), reused 1548 (delta 835), pack-reused 89050
Receiving objects: 100% (91339/91339), 77.11 MiB | 2.66 MiB/s, done.
Resolving deltas: 100% (64583/64583), done.
Checking out files: 100% (2088/2088), done.
storj@storj32:~/STORJ$ cd storj
storj@storj32:~/STORJ/storj$ cd web/storagenode/
storj@storj32:~/STORJ/storj/web/storagenode$ npm install
npm WARN deprecated request-promise-native@1.0.9: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
npm WARN deprecated @hapi/topo@3.1.6: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @hapi/bourne@1.3.2: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated eslint-loader@2.2.1: This loader has been deprecated. Please use eslint-webpack-plugin
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated left-pad@1.3.0: use String.prototype.padStart()
npm WARN deprecated sane@4.1.0: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added
npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated querystring@0.2.0: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated html-webpack-plugin@3.2.0: 3.x is no longer supported
npm WARN deprecated babel-eslint@10.1.0: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.
npm WARN deprecated @hapi/address@2.1.4: Moved to 'npm install @sideway/address'
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated @hapi/hoek@8.5.1: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @hapi/joi@15.1.1: Switch to 'npm install joi'
npm WARN deprecated core-js@2.6.12: core-js@<3.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.

added 2296 packages, and audited 2298 packages in 3m

141 packages are looking for funding
  run `npm fund` for details

16 vulnerabilities (3 low, 12 moderate, 1 high)

To address issues that do not require attention, run:
  npm audit fix

To address all issues possible (including breaking changes), run:
  npm audit fix --force

Some issues need review, and may require choosing
a different dependency.

Run `npm audit` for details.
storj@storj32:~/STORJ/storj/web/storagenode$ npm run build

> storj-storagenode@0.1.0 build
> vue-cli-service build


⠸  Building for production...Starting type checking service...
Using 1 worker with 2048MB memory limit
⠧  Building for production...

 WARNING  Compiled with 14 warnings                                                                         9:16:31 AM

Module Warning (from ./node_modules/eslint-loader/index.js):

/home/storj/STORJ/storj/web/storagenode/src/app/components/SNOHeader.vue
  106:13  warning  Unexpected console statement  no-console
  175:13  warning  Unexpected console statement  no-console
  181:13  warning  Unexpected console statement  no-console
  187:13  warning  Unexpected console statement  no-console
  196:13  warning  Unexpected console statement  no-console
  202:13  warning  Unexpected console statement  no-console
  208:13  warning  Unexpected console statement  no-console

✖ 7 problems (0 errors, 7 warnings)


Module Warning (from ./node_modules/eslint-loader/index.js):

/home/storj/STORJ/storj/web/storagenode/src/app/components/SatelliteSelectionDropdown.vue
   79:13  warning  Unexpected console statement  no-console
   96:13  warning  Unexpected console statement  no-console
  120:17  warning  Unexpected console statement  no-console
  127:13  warning  Unexpected console statement  no-console
  133:13  warning  Unexpected console statement  no-console
  139:13  warning  Unexpected console statement  no-console

✖ 6 problems (0 errors, 6 warnings)


Module Warning (from ./node_modules/eslint-loader/index.js):

/home/storj/STORJ/storj/web/storagenode/src/app/components/VChart.vue
  39:30  warning  Unexpected console statement  no-console

✖ 1 problem (0 errors, 1 warning)


Module Warning (from ./node_modules/eslint-loader/index.js):

/home/storj/STORJ/storj/web/storagenode/src/app/components/VPagination.vue
  133:13  warning  Unexpected console statement  no-console
  158:13  warning  Unexpected console statement  no-console
  183:13  warning  Unexpected console statement  no-console

✖ 3 problems (0 errors, 3 warnings)


Module Warning (from ./node_modules/eslint-loader/index.js):

/home/storj/STORJ/storj/web/storagenode/src/app/components/notifications/SNONotification.vue
  90:13  warning  Unexpected console statement  no-console

✖ 1 problem (0 errors, 1 warning)


Module Warning (from ./node_modules/eslint-loader/index.js):

/home/storj/STORJ/storj/web/storagenode/src/app/components/payments/PayoutHistoryPeriodCalendar.vue
  85:17  warning  Unexpected console statement  no-console

✖ 1 problem (0 errors, 1 warning)


Module Warning (from ./node_modules/eslint-loader/index.js):

/home/storj/STORJ/storj/web/storagenode/src/app/components/payments/PayoutHistoryTable.vue
  72:13  warning  Unexpected console statement  no-console

✖ 1 problem (0 errors, 1 warning)


Module Warning (from ./node_modules/eslint-loader/index.js):

/home/storj/STORJ/storj/web/storagenode/src/app/components/payments/PayoutPeriodCalendar.vue
  113:17  warning  Unexpected console statement  no-console

✖ 1 problem (0 errors, 1 warning)


Module Warning (from ./node_modules/eslint-loader/index.js):

/home/storj/STORJ/storj/web/storagenode/src/app/views/DashboardArea.vue
  42:13  warning  Unexpected console statement  no-console
  48:13  warning  Unexpected console statement  no-console
  54:13  warning  Unexpected console statement  no-console

✖ 3 problems (0 errors, 3 warnings)


Module Warning (from ./node_modules/eslint-loader/index.js):

/home/storj/STORJ/storj/web/storagenode/src/app/views/NotificationsArea.vue
   98:13  warning  Unexpected console statement  no-console
  109:13  warning  Unexpected console statement  no-console

✖ 2 problems (0 errors, 2 warnings)


Module Warning (from ./node_modules/eslint-loader/index.js):

/home/storj/STORJ/storj/web/storagenode/src/app/views/PayoutArea.vue
   92:13  warning  Unexpected console statement  no-console
   98:13  warning  Unexpected console statement  no-console
  104:13  warning  Unexpected console statement  no-console
  110:13  warning  Unexpected console statement  no-console
  116:13  warning  Unexpected console statement  no-console
  122:13  warning  Unexpected console statement  no-console

✖ 6 problems (0 errors, 6 warnings)


You may use special comments to disable some warnings.
Use // eslint-disable-next-line to ignore the next line.
Use /* eslint-disable */ to ignore all warnings in a file.
 warning  

asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
This can impact web performance.
Assets: 
  fonts/font_regular.b396b059.ttf (251 KiB)
  fonts/font_bold.97decd2b.ttf (254 KiB)
  fonts/font_medium.4030a28e.ttf (254 KiB)
  js/app_30186346287ccbe46c04.js (356 KiB)
  js/vendors_30186346287ccbe46c04.js (599 KiB)

 warning  

entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance.
Entrypoints:
  app (1.05 MiB)
      js/vendors_30186346287ccbe46c04.js
      css/app.4ce344e8.css
      js/app_30186346287ccbe46c04.js


 warning  

webpack performance recommendations: 
You can limit the size of your bundles by using import() or require.ensure to lazy load some parts of your application.
For more info visit https://webpack.js.org/guides/code-splitting/

  File                                       Size                               Gzipped

  dist/js/vendors_30186346287ccbe46c04.js    598.79 KiB                         176.35 KiB
  dist/js/app_30186346287ccbe46c04.js        356.26 KiB                         59.36 KiB
  dist/css/app.4ce344e8.css                  118.06 KiB                         19.39 KiB

  Images and other types of assets omitted.

 DONE  Build complete. The dist directory is ready to be deployed.
 INFO  Check out deployment instructions at https://cli.vuejs.org/guide/deployment.html
storj@storj32:~/STORJ/storj/web/storagenode$ cd -
/home/storj/STORJ/storj
storj@storj32:~/STORJ/storj$ go get github.com/go-bindata/go-bindata/go-bindata
go get: installing executables with 'go get' in module mode is deprecated.
	To adjust and download dependencies of the current module, use 'go get -d'.
	To install using requirements of the current module, use 'go install'.
	To install ignoring the current module, use 'go install' with a version,
	like 'go install example.com/cmd@latest'.
	For more information, see https://golang.org/doc/go-get-install-deprecation
	or run 'go help get' or 'go help install'.
go get: added github.com/go-bindata/go-bindata v3.1.2+incompatible
storj@storj32:~/STORJ/storj$ go-bindata -prefix web/storagenode/ -o storagenode/console/consoleassets/bindata.resource.go -pkg consoleassets web/storagenode/dist/... web/storagenode/static/...
storj@storj32:~/STORJ/storj$ /usr/bin/env echo -e '\nfunc init() { FileSystem = AssetFile() }' >> storagenode/console/consoleassets/bindata.resource.go
storj@storj32:~/STORJ/storj$ gofmt -w -s storagenode/console/consoleassets/bindata.resource.go
storj@storj32:~/STORJ/storj$ go install -v storj.io/storj/cmd/storagenode
storj.io/storj/storagenode/console/consoleassets
# storj.io/storj/storagenode/console/consoleassets
storagenode/console/consoleassets/bindata.resource.go:1827:28: undefined: AssetFile
1 Like

Since I do not have a real i386, I run everything in emulator. And I used -fs, seems it’s mandatory.

docker pull --platform i386 golang:1.17
docker run -it golang:1.17
root@7316882e6a7e:/go# apt update && apt dist-upgrade -y
root@7316882e6a7e:/go# apt install npm -y
root@7316882e6a7e:/go# npm version
{
  npm: '7.5.2',
  node: '12.22.5',
  v8: '7.8.279.23-node.56',
  uv: '1.40.0',
  zlib: '1.2.11',
  brotli: '1.0.9',
  ares: '1.17.1',
  modules: '72',
  nghttp2: '1.43.0',
  napi: '8',
  llhttp: '2.1.3',
  http_parser: '2.9.4',
  openssl: '1.1.1k',
  cldr: '37.0',
  icu: '67.1',
  tz: '2019c',
  unicode: '13.0'
}

root@7316882e6a7e:/go# git clone https://github.com/storj/storj.git && cd storj
root@7316882e6a7e:/go# cd web/storagenode
root@7316882e6a7e:/go/storj/web/storagenode# npm install
...
root@7316882e6a7e:/go/storj/web/storagenode# npm run build
...
root@7316882e6a7e:/go/storj/web/storagenode# cd -
/go/storj
root@7316882e6a7e:/go/storj# go get github.com/go-bindata/go-bindata/go-bindata
root@7316882e6a7e:/go/storj# go-bindata -prefix web/storagenode/ -fs -o storagenode/console/consoleassets/bindata.resource.go -pkg consoleassets web/storagenode/dist/... web/storagenode/static/...
root@7316882e6a7e:/go/storj# /usr/bin/env echo -e '\nfunc init() { FileSystem = AssetFile() }' >> storagenode/console/consoleassets/bindata.resource.go
root@7316882e6a7e:/go/storj# gofmt -w -s storagenode/console/consoleassets/bindata.resource.go
root@7316882e6a7e:/go/storj# go install -v storj.io/storj/cmd/storagenode
...
root@7316882e6a7e:/go/storj# ls -l --si ../bin
total 33M
-rwxr-xr-x 1 root root 2.4M Sep 28 08:29 go-bindata
-rwxr-xr-x 1 root root  30M Sep 28 08:42 storagenode
root@7316882e6a7e:/go/storj# 
root@7316882e6a7e:/go/storj# ldd ../bin/storagenode
        linux-gate.so.1 (0xf7f17000)
        libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7f06000)
        libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7ee4000)
        libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7cfb000)
        /lib/ld-linux.so.2 (0xf7f18000)
1 Like

Can you please let me know which version of go-bindata it runs?

go-binddata -version

ok, I think I have managed to build it. it may be helpful for others:

with the latest go, go get does not work anymore, you need to use go install

The problem I had was that I installed a ubuntu packaged version of go-bindata, which does not support -fs. So first of all I had to install it:

go install github.com/go-bindata/go-bindata/...@latest

Then I followed your instructions and the installation successfully completed. The only difference is that I haven’t found the generated binary in …/bin, but under $HOME/go/bin … it must be a go stuff …

2 Likes

OK, I prepared the 32bit node as per the suggested guide How do I migrate my node to a new device? - Node Operator in order to migrate the node from the current 64bit docker to the 32bit.
For now I mounted the storage directory from the 64bit so that I do not have to physically move the hard disk (but I have tried also moving the disk from one system to the other).

I am getting the error below running storagenode run. I checked the forum but I could find only a thread that seems not related to my case.

Can it be because I compiled from source the master branch instead of the same version I have on the 64bit?

Any help is very welcome.
Stefano


2021-10-03T22:46:44.692+0200	INFO	process/exec_conf.go:284	Configuration loaded	{"Location": "/home/storj/.local/share/storj/storagenode/config.yaml"}
2021-10-03T22:46:44.709+0200	INFO	operator/operator.go:42	Operator email	{"Address": "xxx"}
2021-10-03T22:46:44.709+0200	INFO	operator/operator.go:56	Operator wallet	{"Address": "yyy"}
2021-10-03T22:46:47.336+0200	INFO	process/metrics.go:91	Telemetry enabled	{"instance ID": "1VyMARdwc3trX7JrLc3boT435bRDeGCtfuH3bawddBoZh6CYVF"}
2021-10-03T22:46:48.890+0200	INFO	db.migration	migrate/versions.go:218	Database Version	{"version": 53}
2021-10-03T22:46:50.579+0200	INFO	preflight:localtime	preflight/localtime.go:54	start checking local system clock with trusted satellites' system clock.
2021-10-03T22:46:50.580+0200	ERROR	storagenode/peer.go:847	Failed preflight check.	{"error": "system clock is out of sync: system clock is out of sync with all trusted satellites", "errorVerbose": "system clock is out of sync: system clock is out of sync with all trusted satellites\n\tstorj.io/storj/storagenode/preflight.(*LocalTime).Check:96\n\tstorj.io/storj/storagenode.(*Peer).Run:846\n\tmain.cmdRun:218\n\tstorj.io/private/process.cleanup.func1.4:363\n\tstorj.io/private/process.cleanup.func1:381\n\tgithub.com/spf13/cobra.(*Command).execute:852\n\tgithub.com/spf13/cobra.(*Command).ExecuteC:960\n\tgithub.com/spf13/cobra.(*Command).Execute:897\n\tstorj.io/private/process.ExecWithCustomConfig:88\n\tstorj.io/private/process.ExecCustomDebug:70\n\tmain.main:385\n\truntime.main:255"}
storj.io/storj/storagenode.(*Peer).Run
	/home/storj/STORJ/storj/storagenode/peer.go:847
main.cmdRun
	/home/storj/STORJ/storj/cmd/storagenode/main.go:218
storj.io/private/process.cleanup.func1.4
	/home/storj/go/pkg/mod/storj.io/private@v0.0.0-20210810102517-434aeab3f17d/process/exec_conf.go:363
storj.io/private/process.cleanup.func1
	/home/storj/go/pkg/mod/storj.io/private@v0.0.0-20210810102517-434aeab3f17d/process/exec_conf.go:381
github.com/spf13/cobra.(*Command).execute
	/home/storj/go/pkg/mod/github.com/spf13/cobra@v1.1.3/command.go:852
github.com/spf13/cobra.(*Command).ExecuteC
	/home/storj/go/pkg/mod/github.com/spf13/cobra@v1.1.3/command.go:960
github.com/spf13/cobra.(*Command).Execute
	/home/storj/go/pkg/mod/github.com/spf13/cobra@v1.1.3/command.go:897
storj.io/private/process.ExecWithCustomConfig
	/home/storj/go/pkg/mod/storj.io/private@v0.0.0-20210810102517-434aeab3f17d/process/exec_conf.go:88
storj.io/private/process.ExecCustomDebug
	/home/storj/go/pkg/mod/storj.io/private@v0.0.0-20210810102517-434aeab3f17d/process/exec_conf.go:70
main.main
	/home/storj/STORJ/storj/cmd/storagenode/main.go:385
runtime.main
	/usr/local/go/src/runtime/proc.go:255
2021-10-03T22:46:52.950+0200	FATAL	process/exec_conf.go:400	Unrecoverable error	{"error": "system clock is out of sync: system clock is out of sync with all trusted satellites", "errorVerbose": "system clock is out of sync: system clock is out of sync with all trusted satellites\n\tstorj.io/storj/storagenode/preflight.(*LocalTime).Check:96\n\tstorj.io/storj/storagenode.(*Peer).Run:846\n\tmain.cmdRun:218\n\tstorj.io/private/process.cleanup.func1.4:363\n\tstorj.io/private/process.cleanup.func1:381\n\tgithub.com/spf13/cobra.(*Command).execute:852\n\tgithub.com/spf13/cobra.(*Command).ExecuteC:960\n\tgithub.com/spf13/cobra.(*Command).Execute:897\n\tstorj.io/private/process.ExecWithCustomConfig:88\n\tstorj.io/private/process.ExecCustomDebug:70\n\tmain.main:385\n\truntime.main:255"}
storj.io/private/process.cleanup.func1
	/home/storj/go/pkg/mod/storj.io/private@v0.0.0-20210810102517-434aeab3f17d/process/exec_conf.go:400
github.com/spf13/cobra.(*Command).execute
	/home/storj/go/pkg/mod/github.com/spf13/cobra@v1.1.3/command.go:852
github.com/spf13/cobra.(*Command).ExecuteC
	/home/storj/go/pkg/mod/github.com/spf13/cobra@v1.1.3/command.go:960
github.com/spf13/cobra.(*Command).Execute
	/home/storj/go/pkg/mod/github.com/spf13/cobra@v1.1.3/command.go:897
storj.io/private/process.ExecWithCustomConfig
	/home/storj/go/pkg/mod/storj.io/private@v0.0.0-20210810102517-434aeab3f17d/process/exec_conf.go:88
storj.io/private/process.ExecCustomDebug
	/home/storj/go/pkg/mod/storj.io/private@v0.0.0-20210810102517-434aeab3f17d/process/exec_conf.go:70
main.main
	/home/storj/STORJ/storj/cmd/storagenode/main.go:385
runtime.main
	/usr/local/go/src/runtime/proc.go:255
1 Like

You need to sync your clocks.
Also, how you connected the drive for data? NFS, sshfs and SMB are not supported. Only working network protocol for storage is iSCSI.

1 Like

Sorry, I did not mention that of course both systems have their time synchronized via NTP

storj@storj32:~/STORJ$ timedatectl status
                      Local time: lun 2021-10-04 22:47:51 CEST
                  Universal time: lun 2021-10-04 20:47:51 UTC
                        RTC time: lun 2021-10-04 20:47:51
                       Time zone: Europe/Rome (CEST, +0200)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

Otherwise I guess also the 64bit would not have worked…

That is why I was wondering if it could be the different version of the software… or what else?

The drive is mounted via sshfs, but as mentioned, I tried also attaching it directly with the same result.

1 Like

btw in the meantime I try to create a brand new node from the source to try to understand better where the problem can be

You need to add parameter --storage2.trust.sources=https://www.storj.io/dcs-satellites or specify it in the config.yaml:

storage2.trust.sources: https://www.storj.io/dcs-satellites

To reduce a verbosity I would recommend to use parameters --log.level=info --log.development=false --log.caller=false or options in the config.yaml

Made a Dockerfile:

FROM --platform=i386 golang:1.17-alpine as build
# RUN apt update && apt dist-upgrade -y && apt install npm -y
RUN apk add npm git bash gcc libc-dev
RUN git clone https://github.com/storj/storj.git && cd storj && git checkout v1.39.6
RUN cd storj/web/storagenode && npm install && npm run build && cd ../.. \
    && go get github.com/go-bindata/go-bindata/go-bindata \
    && go-bindata -prefix web/storagenode/ -fs -o storagenode/console/consoleassets/bindata.resource.go -pkg consoleassets web/storagenode/dist/... web/storagenode/static/... \
    && /usr/bin/env echo -e '\nfunc init() { FileSystem = AssetFile() }' >> storagenode/console/consoleassets/bindata.resource.go \
    && gofmt -w -s storagenode/console/consoleassets/bindata.resource.go
RUN cd storj && ./scripts/release.sh install ./cmd/storagenode

FROM --platform=i386 alpine
WORKDIR /app
COPY --from=build /go/bin/storagenode /app/storagenode
COPY --from=build /go/storj/cmd/storagenode/dashboard.sh /app/
COPY --from=build /go/storj/cmd/storagenode/entrypoint /
EXPOSE 28967
EXPOSE 14002
ENTRYPOINT [ "/entrypoint" ]

And docker-compose.yaml:

version: "3.7"
services:
  storagenode6:
    container_name: storagenode6
    restart: always
    stop_grace_period: 300s
    image: storagenode:i386
    build: .
    ports:
      - "28971:28967/tcp"
      - "28971:28967/udp"
      - "14006:14002"
    volumes:
      - type: bind
        source: /mnt/storj/storagenode6/identity/
        target: /app/identity
      - type: bind
        source: /mnt/storj/storagenode6/
        target: /app/config
    environment:
      - WALLET=0x000...
      - EMAIL=email
      - ADDRESS=public.address:28971
      - STORAGE=500GB
    command:
      - "--operator.wallet-features=zksync"
      - "--storage2.trust.sources=https://www.storj.io/dcs-satellites"
      # - "--log.level=info"
      # - "--log.development=false"
      # - "--log.caller=false"

To run:

docker-compose up -d

To shutdown:

docker-compose down
2 Likes

Hey! that made it!

the server started and I see from the logs there is activity.

However it complains a lot about communication that the satellite is not able to ping the node, although time to time I see a download.

For example:

2021-10-07T19:00:04.743+0200 INFO piecestore piecestore/endpoint.go:526 downloaded {Piece ID: GT46DUNTWXEDRTVTORMTLCRRBDA6LOPFDRBKTOIKLWZB2N6UPZMA, Satellite ID: 12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S, Action: GET}
2021-10-07T19:00:05.445+0200 ERROR contact:service contact/service.go:100 ping satellite failed {Satellite ID: 1wFTAgs9DP5RSnCqKV1eLf6N9wtk4EAtmN5DpSxcs8EjT69tGE, attempts: 4, error: ping satellite: check-in ratelimit: node rate limited by id, errorVerbose: ping satellite: check-in ratelimit: node rate limited by id\n\tstorj.io/storj/storagenode/contact.(*Service).pingSatelliteOnce:138\n\tstorj.io/storj/storagenode/contact.(*Service).pingSatellite:95\n\tstorj.io/storj/storagenode/contact.(*Chore).updateCycles.func1:87\n\tstorj.io/common/sync2.(*Cycle).Run:152\n\tstorj.io/common/sync2.(*Cycle).Start.func1:71\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57}

How can it be that a satellite downloads a piece but another one does not ping the node?

I have checked port forwarding of course with Open Port Check Tool - Test Port Forwarding on Your Router

and I can reach the console through http://storj.fornari.net:14002