-
Notifications
You must be signed in to change notification settings - Fork 163
IPFS_PATH Folder Compatibility #88
Comments
I'll get the ball rolling with my initial thoughts, which are: The following feel like they're easy to make compatible, so we should:
The following probably doesnt need to be compatible:
Special considerations:
|
That sounds right. Definitely keep
Also note, if you're planning on majorly breaking repo compatibility, I'd store your repo in a different directory (i.e., not |
Alternatively, make sure it's possible to re-implement your changes in other languages. E.g., if you're going to change how something is encoded/formatted, call it a different thing so another IPFS implementation doesn't get confused. |
@Stebalien Thank you for this insight! Super helpful and validating to know that we're mostly on the right track here. When you say "call it a different thing" do you mean internally or at the public API level e.g. Maybe it's more case by case... |
It depends. If you change how private keys are encoded in the config, call it something else (or, even better, don't store them in the config). If you decide to use toml/cbor to encode the config, call it |
Makes sense to me |
Started looking at json compatible config in #95 which can be made to work, but I currently have no clue on how to get the openssl working on all platforms. The Collecting the files from above under
There is also consideration if the we mostly aim to provide a library to be used, could the configuration be provided all in rust and keep the "sort of compatible" stuff under "http". Even if going mostly-rust configuration, the |
making the stores compatible seems like more effort than it's worth, and I don't see that it's within the grant scope as the grant is about http api compatibility if I understand correctly. |
@dvc94ch You are correct. @Stebalien and @koivunej I've updated the issue description based on the consensus in this thread. |
The updated description looks ok except for the This deliberation is valid currently only in the scope of
|
Good point @koivunej. Moving that to "Does not need to be compatble" I do think having a way to report the datastore version may come in handy if other applications are doing reads on what's inside the IPFS_PATH folder. It doesn't need to match what Go or JS uses, it can be whatever and could may likely include |
Closing this as I believe we have a good understanding here. Feel free to re-open if there are new thoughts, or open a new specific issue. |
No cause to reopen but to document:
|
Indeed! |
Inside my go-ipfs generated
~/.ipfs
folder, which is conected to a private IPFS network, I have the following item. I'd like to make sure we go through these one at a time with @vmx and/or @Stebalien's guidance and determine which files or folders need to be compatible with js <-> go <-> rust.Should be compatible:
Note: asterisks signify "as compatible as possible, with different nomenclature denoting any departure from spec"
Does not need to be compatible
Out of grant scope
We should consider storing the repo in a different directory
~/.rs-ipfs
or~/.rust-ipfs
to avoid confusion / mismanagement errors.The text was updated successfully, but these errors were encountered: