-
Notifications
You must be signed in to change notification settings - Fork 451
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tribler project organization: the home of Trustchain currency #5386
Comments
Switch to Noodle New. We harvested enough experience from all the years of using the current currency code (pun intended) to understand that there is no "one size fits all" in ledger engineering. |
I see a full move to Noodle New as the preferred solution, but it is likely not something that will happen soon. It might also require changes to the payouts/market, and possibly break backwards compatibility. Note that Noodle New is not specifically built for currencies but will support many use-cases as far as I'm aware (e.g., channels).
This will break AnyDex since that module builds on top of IPv8 and expects TrustChain to be part of IPv8. If we do this, I most likely need to add Tribler as a dependency in AnyDex. If this is our preferred solution, I will try to find a solution to make sure that the market still works.
I see this as a viable short-term solution. AnyDex is already part of Tribler and the modules that use TrustChain (payouts) can simply use the AnyDex code.
I agree that TrustChain in IPv8 might feel off, but until Noodle New is ready, integrated and tested, I'm totally fine with keeping the code in IPv8. |
Thanks for the input guys. From your inputs I gathered:
This leads me to a follow-up question: where should Noodle New then be located? |
It is currently located here. I would suggest moving that repository to the Tribler organization somewhere later. |
Ah, it's in its own repository already. I wasn't quite expecting that one. |
Interesting topic. Where goes our token code? (its not a currency, also reputation is not yet implemented). So there is not a concrete problem to solve, but a cosmetic operation and re-factoring towards a cleaner architecture; right? "Token Management" needs a place in our architecture, just like overlay, market, risk, and reputation functions, with careful long-term implication and thoughts?
Difficult. Guess its also a matter of taste, hence something called "Repo style wars". Our current polyrepo policy is more an architectural problem I believe. Please study this scientific article: Monorepos: A Multivocal Literature Review. Our infrastructure and tooling is quite complex. We have dedicated AnyDEX, Noodle, and IPv8 tooling, that creates inefficiencies, maintenance issues, single-person ownership, and hampers re-use. |
A quote from "Why Google stores billions of lines of code in a single repository":
|
Yes, seems to be a divisive issue. Fortunately, our laptop can still contain all our Tribler/IPv8/AnyDEX/... code locally. We're not 86TB repo size of Google yet. I'm also in flavor of this from a project maintenance perspective. With a year of tuning by the new scientific developers, we lose the pointer update mess and get more uniformity. |
The (unpublished arxiv) paper you cites states this about complexity:
This about tooling and testing:
Lastly, this about actually moving to a monorepo:
It just seems like an overal bad fit for us, even according to the literature you posted. |
OK. "however, important configuration files or files including business critical algorithms can be more tightly controlled", Google also does not use a real monorepo. |
Let me end my push-back against the monorepo here: what I would advocate for is using a per-component analysis to divide the codebase, to make it both manageable and workable: the problem of microrepositories is indeed a real one and has its issues, but the single repository is not much better. I believe a carefully balanced division of the codebase is the winning strategy. |
I hate submodules too. These are called "sobmodules" 😿 for a reason. However, the cure seems not much better than the ail... |
Ok, I think we have a clear plan for Trustchain and no more discussion is needed in this particular issue. Regarding the monorepo discussion, we could make another issue to discuss all of Tribler's components and tooling and discuss where they should be housed. Someone would have to make a comprehensive list of all of these components and tools first though (as we have a substantial amount of those). |
Recently in IPv8 we have separated the identity derivative of Trustchain from the currency derivative of Trustchain. This enables the discussion of where the code for the Trustchain currency should be located. We have several options (feel free to contribute your own):
Personally, I believe the Trustchain currency code is not a networking primitive nor a meta-community (either of which would qualify it for inclusion in IPv8) and should be moved to the other currency-related code in Anydex.
I'd like to use this issue for all team members to voice their opinion.
The text was updated successfully, but these errors were encountered: