berty / go-orbit-db

Go version of P2P Database on IPFS
https://berty.tech
Apache License 2.0
412 stars 56 forks source link

Database not syncing anymore since bump to IPFS 12.2 #106

Closed mrusme closed 2 years ago

mrusme commented 2 years ago

It seems like ever since the upgrade to IPFS 12.2 that came with v1.17.0 the database won't sync with peers anymore. I tested it by setting up two peers on a two different machines and none of them are in sync with each other even though they all access the same database URI. I'm still investigating the issue but so far I couldn't find anything obvious in the logs that would tell what's going on.

jefft0 commented 2 years ago

@mrusme : Thank you for the report. Have you discovered anything new from investigating the issue? Our automated tests use IPFS 12.2 and they are working. May I ask, what version of Go are you using? (1.17? 1.18?)

mrusme commented 2 years ago

@jefft0 thank you for getting back. Unfortunately I haven't found out why sync is not working anymore. I have set up multiple tests on various VPS, as well as on multiple machines locally and I couldn't get the databases to sync anymore. I had other users report the same issue and I ended up instructing them to downgrade to a pre-IPFS 12 release.

The other peers seem to be able to actually open the database (meaning they were able to find the hash, from what I understand) but they simply won't show any content. I will have to dig deeper to understand how OrbitDB stores documentstore entries to better understand what's going on.

I'm using Go 1.18.

jefft0 commented 2 years ago

@mrusme We have not been able to reproduce your problem, the tests are currently running on the CI and we have no synchronizing problem with berty using 1.17.0 and go 1.18. If you can reproduce your problem with a minimalist script, we might be able to help you dig into the problem.

mp-netis commented 2 years ago

@mrusme I also tried to get your app to work, but was not successful ... however, stripping it down to just the go-orbitdb parts worked for me. I think there is some dependency issue with the rest of the code.

mrusme commented 2 years ago

@mp-netis thank you very much, I appreciate the effort. The odd thing is that it was working with the previous IPFS 11-based version of go-orbit-db.

I'll have a second look at the tests here and see if I can spot any differences on how I currently initialize the database. I will re-open this issue if I should find out something that might indeed be an issue with go-orbit-db.