Skip to content
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

Document the origin of code copied from other projects #20

Open
Giszmo opened this issue Sep 18, 2020 · 4 comments
Open

Document the origin of code copied from other projects #20

Giszmo opened this issue Sep 18, 2020 · 4 comments
Assignees

Comments

@Giszmo
Copy link
Contributor

Giszmo commented Sep 18, 2020

As a project aiming to be used in Bitcoin wallets, quality of code and accountability are of high importance. Projects integrating with fio will ask if the source code is secure and audited. While knowing the origin of source code cannot replace audits, it does help estimate who else has audited the code or if issues are found, it is important to also estimate the broader implications.

This date library looks a lot like coming from this date library but I can't find any documentation of which revision it actually is. It was added July 2019 but even diffs with revisions from back then are massive.

I see several options here:

  • Add date as a submodule.
  • Fork date and maintain a stripped-down version which gets added as submodule.
  • Document well which revision of date is being used.

If no changes are required, I would opt for the first option. Else for the second. Only those two options allow a relatively easy merging of upstream fixes and improvements.

Edit: This looks similar like this and this looks like this.

So the date and the rapidjson classes live in their own folders inside the abieos folder which also should be cleaned up.

@Giszmo
Copy link
Contributor Author

Giszmo commented Nov 30, 2020

I did some digging.

@Giszmo
Copy link
Contributor Author

Giszmo commented Nov 30, 2020

Part of the repo looks like it has its beginning in eosio-java.

@ericbutz
Copy link
Contributor

We will add this to our kotlin readme:

Background

The initial version of the kotlin SDK was a port of the EOS Java SDK from java to kotlin. The kotlin code was
then modified to specifically support the FIO protocol. Included in the port was the The Android Serialization Provider, ABI Provider
and the SoftKey Signature Provider.

The C++ code was also brought over from the EOS Java SDK. The only change to the C++ code was the Class Loader path
information.

The current relevant EOS SDK code base can be found at:

@Giszmo
Copy link
Contributor Author

Giszmo commented Dec 12, 2020

That's how far I got, too. It would really make things easier if you would know the revision you forked from. Then auditors could look into the EOS SDK from there, check what critical fixes came later and check if those were ported over to FIO and also check the diff with that revision to see what FIO added. I don't know EOS but I know EOS has way more eyes on it than FIO, so I would consider their code as more trustworthy than FIO code and I would concentrate on what FIO added.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants