CodeZ: just another source code mirror

Three weeks ago Josh published the first ZODL weekly update after the ECC drama. One sentence turned my attention on, at the end of the post.

As a node operator at home, I decided to do my part to contribute to this framework with my own resources. So I set up a Gitea Mirror instance you can now browse at https://codez.ombie.cash/ (it sounds like code zombie cash). I’m mirroring at the moment 392 github repositories from 18 organizations every 4 hours (about 60 GB of storage).

Unfortunately I’m able to mirror and sync only organizations, not single users like ZecHub. I need to find a scalable solution for this issue (suggestions are welcome)… :confused:

Of course, feel free to suggest new repositories, people or organizations to be included! :rocket:

Shields up!

10 Likes

That’s a great initiative! Also allows to see what is active or up to date :100:

2 Likes

If you think it can be useful to mirror also user repositories (ie. ZecHub), put a :+1: on this issue! :folded_hands:

2 Likes

Latest updates of gitea and gitea mirror brought many issues and I was forced to stop both services. I’ll keep you posted when CodeZ will be available again.

Online again! :grinning_face_with_smiling_eyes:

Gitea mirror is not a very reliable and robust piece of software, but I think I finally found a good set of configurations.

I’ll continue to track and harvest other orgs and single repositories (ie. ledger / keystone, zechub, single devs), but I think the goal of this little project can be wider than archiving assets and preserve memory.

If the whole codebase history is in a single place, we can compute metrics about content (code, issues) and people (contributors and their relations). Overall and time-based.

Example: we can build the bipartite graph of contributors and repositories and project it to the social network of contributors (linked by common repos).

Was there any attempt to perform such statistics analysis on zcash community in the past?

Keep mumbling…

3 Likes

CodeZ is back! :partying_face:

I underestimated the impact that modern bots infesting the web can have on a small, exposed service. I had to activate all cloudflare anti-bot features, rate limiting, routes blocking and aggressive caching to protect my gitea instance.

Presenting the Zcash Irondevs contest: [Contest] Presenting Zcash Irondevs, a gift to the heroic Zcash developers.

Reality is often more horrifying than fantasy.

:smirking_face:

Btw, I noticed some pages on CodeZ return “Access denied”. Should we request an access token to use the API?

Unfortunately API endpoints are disabled, malicious bots like them too much! What’s your use case?

A bipartite network visualisation? :eyes:

You don’t need gitea api, you can clone some repo and develop the code, then I will run it locally on full archive (tens of GB). Take a look at the example project

Maybe I’m misunderstanding something, but I don’t see why this would have to involve cloning when all that needs processing is contributor data. If API access is an option, cloning would seem like overkill.

Probably I need to add some more details, thanks for pointing that out.

Right now CodeZ tracks more than 500 repo using 270 GB on disk. Millions of commits (and 60k issues and 370k comments). I can’t serve that amount of data via REST API. Also github has strict limits using personal access token.

Data flow from disk is faster than on network. And you can decouple raw data access from computation. So my idea is simple: participants can develop and test against a little and manageable archive similar to the real one. Then I’ll run the code on the full archive using my own resources.

Did I miss something?

1 Like

Yea, I suppose if you imagine it only running on the same server as the forge, then going through the API would be convoluted.