[spam][crazy][wrong] Decentralised Git Notes Review
let's see if any of those git projects, in priority: 1. use permanent public storage 2. run with relative stability 3. provide for public enumeration of repositories for #2, it's nice to see a decentralised blockchain protocol directly accessed by the client. - if it's not a blockchain or similar shared merkle tree, censorship is much easier, and i've experienced this - if it's not decentralised, similarly censorhsip is much easier, and there is also a major point of failure regarding a project group that has a tendency to expire.
i guess i'll just try mango. it's 0333. - mango uses ethereum so likely publicly pins its tip hashes. this is incredibly helpful. - mango uses ipfs, swarm, etc for storage, so rare content can be lost. mango doesn't have permanent storage of #1. but it would still help with my issue of breaking and corrupting my data. i guess i'll try it for a bit.
The mango smart contracts are accessible in the mango repository at https://github.com/axic/mango.git . Smart contracts are very simple, a c-like language that can be seen as mostly declarative to the end user. They describe the interface for e.g. enumerating mango repositories via an ethereum node. My local nodejs is too old to install the example mango tools =/ It's 0340 and i'm pursuing upgrading nodejs on ubuntu 21,
In ethereum, smart contract functions are serialised into bytes based on their function signature. So, if you know the function signature of a method, you can call it. Here's the mango repository interface: contract MangoRepoInterface { function repoInterfaceVersion() constant returns (uint version); function refCount() constant returns (uint count); function refName(uint index) constant returns (string ref); function getRef(string ref) constant returns (string hash); function setRef(string ref, string hash); function deleteRef(string ref); function snapshotCount() constant returns (uint count); function getSnapshot(uint index) constant returns (string hash); function addSnapshot(string hash); function isObsolete() constant returns (bool); } It doesn't _name_ a repository. I'm guessing the name of the repository is the smart contract address. It does name individual refs. It also appears to enumerates all public pinned hashes on chain, which is great. It looks like it might let the owner change which hashes are publicly pinned, removing some. They appear to be identified via name (likely git branch names) rather than hashes. The history is stored publicly on chain but it is a little more irritating to access. Snapshots, however, appear to be stored immutably by default. Not sure what is meant by a snapshot, but it has a hash.
participants (1)
-
Undiscussed Horrific Abuse, One Victim of Many