Skip to content
This repository has been archived by the owner on Jan 9, 2022. It is now read-only.

Initial clients implementation assumptions and milestones #6

Open
biern opened this issue Sep 24, 2017 · 1 comment
Open

Initial clients implementation assumptions and milestones #6

biern opened this issue Sep 24, 2017 · 1 comment

Comments

@biern
Copy link
Member

biern commented Sep 24, 2017

Also I think we won't use web3 in CLI at all. I'd rather use eth_call via EtherScan HTTP API. That's why I specified Bash as a viable solution. All we need to do in the first version is:

  • compute hash of the file (e.g. use sha512sum)
  • send a HTTP requests to EtherScan (eth_call - get signers of computed hash)
  • use curl - send a HTTP requests to domain addresses (e.g. example.com/signhash.txt) - use curl

  • send a HTTP requests to EtherScan (eth_call - get signers of computed hash)

I didn't know that's possible. However, just using web3 with infura http provider by default might be a more future-proof solution. That way any web3 provider can be used, eg. local node or testrpc for testing. Also I'm not aware if signing a binary using just etherscan is possible, I assume not. I imagine that's an essential functionality anyway for a cli, so that's another benefit of starting with web3 right away.

Regarding milestones, my take on that is:
Milestone 1:

  • Get signers of a file
  • Verify signers
  • Return first signer details, with verified / unverified feedback

Milestone 2:

  • Sign a binary using given private key

What do you think? If that's ok let's create issues for that in signhash-cli repo.

@jksf
Copy link

jksf commented Oct 2, 2017

Testing with testrpc is an issue that I did not take into account. Basically, it is the only option for any automated integration testing.

Using Golang for CLI makes sense because we can import web3 code from geth (go-ethereum) repositories. Also, we will make a lot of asynchronous requests so Go channels will be neat.

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

No branches or pull requests

2 participants