Git Product home page Git Product logo

Comments (8)

cpacia avatar cpacia commented on May 30, 2024

but little effort was done to find and understand the bugs that are subtle, hard-to-reproduce, take time to trigger, affect only some platforms, etc.

Of course, that isn't true. I spent hours upon hours staring at the code trying to track down memory and cpu issues. You need to consider as well that it was basically just me writing/debugging that code on strict time deadlines, while also working on this code base at the same time.

Thankfully, I'm not the only person working on it anymore. If you include the ipfs team, we have four or five full time developers working on the codebase. So it should be much improved.

Please feel free to contribute resources as well if you want to build on top of it.

I do agree with #2 though and have voiced my opinion on that.

from openbazaar-go.

JustinDrake avatar JustinDrake commented on May 30, 2024

I spent hours upon hours staring at the code trying to track down memory and cpu issues.

@cpacia Ok, understood. My suggestion for OB2.0 is to invest time in a stress testing framework. It will make it much easier to find bugs than staring at the code. I'm happy to contribute to that. It can be something easy like "instantiate n nodes and make them send a random message to x% of the nodes every m seconds". My guess is that bugs will start manifesting themselves in minutes, bypassing hours of staring.

from openbazaar-go.

hoffmabc avatar hoffmabc commented on May 30, 2024

This is something that came up in one of our team meetings the other day. Do you have any scripts already that we can use as a baseline or process recommendations here? I was thinking about a few tools I've used in the past but hadn't started to run with this yet.

from openbazaar-go.

JustinDrake avatar JustinDrake commented on May 30, 2024

@hoffmabc Ideally we want to test 100+ nodes communicating with each other at high speed, submitting listings, etc. More likely than not, we're going to need a cluster of machines for that. I believe the most professional way of doing that is with Docker Swarm and Docker Machine (see here. My preference would be to load up DigitalOcean droplets.

Here's a possible roadmap:

  1. Figure out how to instantiate a single IPFS node (I'm still at this stage!)
  2. Get two IPFS nodes on a single machine to talk to each other. Write a few stress tests between these two nodes.
  3. Understand the max number of test IPFS nodes that can fit in a droplet (say n) and build a docker container for that.
  4. Get two droplets (each with n nodes from the container) to talk to each other and write more stress tests
  5. Automate the provision of droplets with Docker Machine and Docker Swarm to get to 100+ nodes in 3 different continents
  6. Use the above infrastructure as a basis for a public testnet?

from openbazaar-go.

hoffmabc avatar hoffmabc commented on May 30, 2024

@cpacia have we gotten #2 to work yet?

from openbazaar-go.

cpacia avatar cpacia commented on May 30, 2024

Should just be a matter of using two different repo directories.

from openbazaar-go.

cpacia avatar cpacia commented on May 30, 2024

btw here's for tracking ipfs test coverage ipfs/kubo#3053

from openbazaar-go.

cpacia avatar cpacia commented on May 30, 2024

I created the qa package to build out integration tests.

from openbazaar-go.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.