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

Reproducible/Deterministic Builds #60

Closed
leto opened this Issue Oct 24, 2017 · 37 comments

Comments

Projects
None yet
7 participants
@leto
Member

leto commented Oct 24, 2017

Describe the issue

No deterministic builds

Can you reliably reproduce the issue?

Yes

If so, please list the steps to reproduce below:

  1. Compile and observe,
  2. No
  3. Reproducibility

Bounty

500HUSH

Expected behaviour

Since Bitcoin Core and Zcash have reproducible builds, we should as well. It increases the security of our entire ecosystem.

Actual behaviour + errors

We do not have Gitian setup

The version of Hush you were using:

All

Any extra information that might be useful in the debugging process.

I like tuhtles

@leto leto added the bounty label Oct 24, 2017

@csharpee

This comment has been minimized.

Show comment
Hide comment
@csharpee

csharpee Oct 26, 2017

Contributor

@leto, @madbuda, @radix42 and peoples of the world I have been working on some personal projects for Hush. I am not ready to share quite yet. I am excited, but it is simply not ready and takes tedious patience. In the mean time, I felt this should be shared to help others understand more or what not.

I recommend using vagrant and gitian =) Also works nicely with zcash. Zcash also uses Ansible @leto, should we consider using this too? I am not quite sure if it is needed or not.

image

Also -- this image may not be 200% correct, once the entire idea is ready to be reviewed I will let the staff check it out first to make corrections or w/e is best for the team and Hush.

Note: The massive in your face copyright is because this was submitted to public already via the instructor for college individual project and the individual doesn't like me much since I am open source with my approach or 'odd' approach -- I will leave it at that. I don't want history to repeat itself. I put a lot of hard work into this to help me understand better and also share with others to catch up to speed a bit quicker to develop for hush <3.

Note 2: Gitian and git are a bit backwards, but overall this image should help give a good map in our noggin to help catch up to speed. The project and info I share is still in beta so to speak.

Contributor

csharpee commented Oct 26, 2017

@leto, @madbuda, @radix42 and peoples of the world I have been working on some personal projects for Hush. I am not ready to share quite yet. I am excited, but it is simply not ready and takes tedious patience. In the mean time, I felt this should be shared to help others understand more or what not.

I recommend using vagrant and gitian =) Also works nicely with zcash. Zcash also uses Ansible @leto, should we consider using this too? I am not quite sure if it is needed or not.

image

Also -- this image may not be 200% correct, once the entire idea is ready to be reviewed I will let the staff check it out first to make corrections or w/e is best for the team and Hush.

Note: The massive in your face copyright is because this was submitted to public already via the instructor for college individual project and the individual doesn't like me much since I am open source with my approach or 'odd' approach -- I will leave it at that. I don't want history to repeat itself. I put a lot of hard work into this to help me understand better and also share with others to catch up to speed a bit quicker to develop for hush <3.

Note 2: Gitian and git are a bit backwards, but overall this image should help give a good map in our noggin to help catch up to speed. The project and info I share is still in beta so to speak.

@leto

This comment has been minimized.

Show comment
Hide comment
@leto

leto Oct 26, 2017

Member

To be more clear, this bounty is about porting repro builds from BTC/ZEC to Hush, there is prior art to follow: https://github.com/zcash/zcash/blob/4ee9d712b573bccd36e29134d96eaad54182ebab/contrib/gitian-descriptors/README.md

Member

leto commented Oct 26, 2017

To be more clear, this bounty is about porting repro builds from BTC/ZEC to Hush, there is prior art to follow: https://github.com/zcash/zcash/blob/4ee9d712b573bccd36e29134d96eaad54182ebab/contrib/gitian-descriptors/README.md

@kentsommer

This comment has been minimized.

Show comment
Hide comment
@kentsommer

kentsommer Nov 1, 2017

Contributor

@csharpee

Are you currently working on this (setting up reproducible builds)? If you are, I won't work on this. However, if you aren't currently working on this task, I'm willing to work on it.

Contributor

kentsommer commented Nov 1, 2017

@csharpee

Are you currently working on this (setting up reproducible builds)? If you are, I won't work on this. However, if you aren't currently working on this task, I'm willing to work on it.

@csharpee

This comment has been minimized.

Show comment
Hide comment
@csharpee

csharpee Nov 1, 2017

Contributor

Okay - beautiful, yeah I am not working on this at the moment.

Contributor

csharpee commented Nov 1, 2017

Okay - beautiful, yeah I am not working on this at the moment.

@kentsommer

This comment has been minimized.

Show comment
Hide comment
@kentsommer

kentsommer Nov 3, 2017

Contributor

I've got builds up and running! If someone could test with the current configuration (uses my fork of hush) that would be great!

The instructions for how to setup your host can be found in the hush-gitian repo. Follow them exactly and you should be good to go! Once this is tested, I'll go ahead and PR my hush fork and someone else will have to pull in the two other repos.

Main repos:

  1. https://github.com/kentsommer/hush-gitian
  2. https://github.com/kentsommer/hush
  3. https://github.com/kentsommer/gitian.sigs
Contributor

kentsommer commented Nov 3, 2017

I've got builds up and running! If someone could test with the current configuration (uses my fork of hush) that would be great!

The instructions for how to setup your host can be found in the hush-gitian repo. Follow them exactly and you should be good to go! Once this is tested, I'll go ahead and PR my hush fork and someone else will have to pull in the two other repos.

Main repos:

  1. https://github.com/kentsommer/hush-gitian
  2. https://github.com/kentsommer/hush
  3. https://github.com/kentsommer/gitian.sigs
@radix42

This comment has been minimized.

Show comment
Hide comment
@radix42

radix42 Nov 3, 2017

Collaborator
Collaborator

radix42 commented Nov 3, 2017

@csharpee

This comment has been minimized.

Show comment
Hide comment
@csharpee

csharpee Nov 3, 2017

Contributor

I have tested it on Ubuntu 16.04. It built successfully! I started to do this on Amazon EC2 instance and ran into the VT-X error. So I installed via locally on my ol' System76.

vagrant@hush-build:~$ ./gitian-build.sh --verify
v1.0.12-dev
~/hush ~
HEAD is now at 28fb18f... More reference fixes
~
~/gitian-builder ~

Verifying v1.0.12-dev Linux

gpg: Signature made Fri 03 Nov 2017 01:01:22 AM GMT
gpg:                using RSA key #####
gpg: Good signature from "Kent Sommer <#####>"
###6D: OK
~
vagrant@hush-build:~$ 
Contributor

csharpee commented Nov 3, 2017

I have tested it on Ubuntu 16.04. It built successfully! I started to do this on Amazon EC2 instance and ran into the VT-X error. So I installed via locally on my ol' System76.

vagrant@hush-build:~$ ./gitian-build.sh --verify
v1.0.12-dev
~/hush ~
HEAD is now at 28fb18f... More reference fixes
~
~/gitian-builder ~

Verifying v1.0.12-dev Linux

gpg: Signature made Fri 03 Nov 2017 01:01:22 AM GMT
gpg:                using RSA key #####
gpg: Good signature from "Kent Sommer <#####>"
###6D: OK
~
vagrant@hush-build:~$ 
@leto

This comment has been minimized.

Show comment
Hide comment
@leto

leto Nov 3, 2017

Member

This looks really exciting, looking forward to testing it out!

Member

leto commented Nov 3, 2017

This looks really exciting, looking forward to testing it out!

@leto

This comment has been minimized.

Show comment
Hide comment
@leto

leto Nov 5, 2017

Member

@kentsommer I forked the 2 repos into MyHush org

I am currently testing with ansible 2.2.1.0 and vagrant 1.9.1 on OS X and I successfully created the Gitian VM, it's currently building 👍

Member

leto commented Nov 5, 2017

@kentsommer I forked the 2 repos into MyHush org

I am currently testing with ansible 2.2.1.0 and vagrant 1.9.1 on OS X and I successfully created the Gitian VM, it's currently building 👍

@kentsommer

This comment has been minimized.

Show comment
Hide comment
@kentsommer

kentsommer Nov 6, 2017

Contributor

@radix42, @leto

I've submitted #65 with a few notes on final things that need to be changed to get this fully up and running.

Contributor

kentsommer commented Nov 6, 2017

@radix42, @leto

I've submitted #65 with a few notes on final things that need to be changed to get this fully up and running.

@leto

This comment has been minimized.

Show comment
Hide comment
@leto

leto Nov 6, 2017

Member

I got really close:

Generating report
5ad058059f14549aca764b9000f5cd6eba53ed98ab3eeb136c87ddbac7606a81  hush-1.0.12-linux64-debug.tar.gz
b1e4af6d9af4119884214f99cf622d2da802c2ff368c75074282236e34c4d1b2  hush-1.0.12-linux64.tar.gz
e5645066615fd9532797870555638cdddd49dc8fe47bc9b716d7ff66c32d3090  src/hush-1.0.12.tar.gz
8d5dd4418b254a919dc4ddc3a9533fc1992ac9d418802729485d638e3687d861  hush-1.0.12-res.yml
Done.
gpg: skipped "F16219F4C23F91112E9C734A8DFCBF8E5A4D8019": No secret key
gpg: signing failed: No secret key
./bin/gsign:11:in `system!': failed to run gpg2 --detach-sign -u "F16219F4C23F91112E9C734A8DFCBF8E5A4D8019" "../gitian.sigs/v1.0.12-dev/F16219F4C23F91112E9C734A8DFCBF8E5A4D8019/hush-1.0.12-build.assert" (RuntimeError)
	from ./bin/gsign:93:in `<main>'
~

Committing v1.0.12-dev Signatures

~/gitian.sigs ~
[master b862538] Add v1.0.12-dev signatures for F16219F4C23F91112E9C734A8DFCBF8E5A4D8019
 1 file changed, 385 insertions(+)
 create mode 100644 v1.0.12-dev/F16219F4C23F91112E9C734A8DFCBF8E5A4D8019/hush-1.0.12-build.assert
~

I think this is related to the fact that I merely specified my keybase pukey ID, but it could not be found locally, perhaps because I am supposed to import it first? @kentsommer

Member

leto commented Nov 6, 2017

I got really close:

Generating report
5ad058059f14549aca764b9000f5cd6eba53ed98ab3eeb136c87ddbac7606a81  hush-1.0.12-linux64-debug.tar.gz
b1e4af6d9af4119884214f99cf622d2da802c2ff368c75074282236e34c4d1b2  hush-1.0.12-linux64.tar.gz
e5645066615fd9532797870555638cdddd49dc8fe47bc9b716d7ff66c32d3090  src/hush-1.0.12.tar.gz
8d5dd4418b254a919dc4ddc3a9533fc1992ac9d418802729485d638e3687d861  hush-1.0.12-res.yml
Done.
gpg: skipped "F16219F4C23F91112E9C734A8DFCBF8E5A4D8019": No secret key
gpg: signing failed: No secret key
./bin/gsign:11:in `system!': failed to run gpg2 --detach-sign -u "F16219F4C23F91112E9C734A8DFCBF8E5A4D8019" "../gitian.sigs/v1.0.12-dev/F16219F4C23F91112E9C734A8DFCBF8E5A4D8019/hush-1.0.12-build.assert" (RuntimeError)
	from ./bin/gsign:93:in `<main>'
~

Committing v1.0.12-dev Signatures

~/gitian.sigs ~
[master b862538] Add v1.0.12-dev signatures for F16219F4C23F91112E9C734A8DFCBF8E5A4D8019
 1 file changed, 385 insertions(+)
 create mode 100644 v1.0.12-dev/F16219F4C23F91112E9C734A8DFCBF8E5A4D8019/hush-1.0.12-build.assert
~

I think this is related to the fact that I merely specified my keybase pukey ID, but it could not be found locally, perhaps because I am supposed to import it first? @kentsommer

@kentsommer

This comment has been minimized.

Show comment
Hide comment
@kentsommer

kentsommer Nov 6, 2017

Contributor

@leto

If you did not specify the key ID here then you are correct, you would have to manually import your GPG key to the VM.

Contributor

kentsommer commented Nov 6, 2017

@leto

If you did not specify the key ID here then you are correct, you would have to manually import your GPG key to the VM.

@leto

This comment has been minimized.

Show comment
Hide comment
@leto

leto Nov 6, 2017

Member

I ran curl https://keybase.io/dukeleto/key.asc | gpg --import to import the correct key onto the machine that is the host for the hush-build VM, and now things are chugging along again...

Member

leto commented Nov 6, 2017

I ran curl https://keybase.io/dukeleto/key.asc | gpg --import to import the correct key onto the machine that is the host for the hush-build VM, and now things are chugging along again...

@leto

This comment has been minimized.

Show comment
Hide comment
@leto

leto Nov 6, 2017

Member

@kentsommer thanks, I was using the wrong key, gpg_key_name instead of gpg_key_id, I think that will hopefully fix it and then I will push my assert files. Thanks for the help!

Member

leto commented Nov 6, 2017

@kentsommer thanks, I was using the wrong key, gpg_key_name instead of gpg_key_id, I think that will hopefully fix it and then I will push my assert files. Thanks for the help!

@radix42

This comment has been minimized.

Show comment
Hide comment
@radix42

radix42 Nov 6, 2017

Collaborator
Collaborator

radix42 commented Nov 6, 2017

@kentsommer

This comment has been minimized.

Show comment
Hide comment
@kentsommer

kentsommer Nov 6, 2017

Contributor

@radix42

If I understand you correctly, what you are looking for can be found in the readme here: https://github.com/MyHush/hush-gitian

Contributor

kentsommer commented Nov 6, 2017

@radix42

If I understand you correctly, what you are looking for can be found in the readme here: https://github.com/MyHush/hush-gitian

@radix42

This comment has been minimized.

Show comment
Hide comment
@radix42

radix42 Nov 6, 2017

Collaborator
Collaborator

radix42 commented Nov 6, 2017

@radix42

This comment has been minimized.

Show comment
Hide comment
@radix42

radix42 Nov 6, 2017

Collaborator
Collaborator

radix42 commented Nov 6, 2017

@leto

This comment has been minimized.

Show comment
Hide comment
@leto

leto Nov 6, 2017

Member

This could be something related to my host GPG being gpg (GnuPG/MacGPG2) 2.0.14 while the hush-build VM has gpg (GnuPG) 2.0.26. I still get gpg: signing failed: No secret key. I am using gpg_key_id: '5A4D8019' in my gitian.yml

Member

leto commented Nov 6, 2017

This could be something related to my host GPG being gpg (GnuPG/MacGPG2) 2.0.14 while the hush-build VM has gpg (GnuPG) 2.0.26. I still get gpg: signing failed: No secret key. I am using gpg_key_id: '5A4D8019' in my gitian.yml

@radix42

This comment has been minimized.

Show comment
Hide comment
@radix42

radix42 Nov 6, 2017

Collaborator
Collaborator

radix42 commented Nov 6, 2017

@kentsommer

This comment has been minimized.

Show comment
Hide comment
@kentsommer

kentsommer Nov 6, 2017

Contributor

@leto @radix42

Yes I've got importing and signing to work. I doubt it is an issue with GPG version mismatch @leto. Did you rerun the vagrant up --provision hush-build command after adding the gpg_key_id field and verify that Ansible is showing the key was imported correctly?

Unfortunately I don't have an OSX machine available otherwise I would test it for you.

Correct output should be this (you should be prompted for your GPG key passphrase):

 __________________________________________________________
/ TASK [gitian : Import the GPG private key to the Vagrant \
\ user.]                                                   /
 ----------------------------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

ok: [hush-build] => {"censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result"}
 ___________________________________________________
< TASK [gitian : Clean up secret key file in /tmp.] >
 ---------------------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

changed: [hush-build] => {"changed": true, "failed": false, "path": "/tmp/04C73A7FD927976D.sec", "state": "absent"}
Contributor

kentsommer commented Nov 6, 2017

@leto @radix42

Yes I've got importing and signing to work. I doubt it is an issue with GPG version mismatch @leto. Did you rerun the vagrant up --provision hush-build command after adding the gpg_key_id field and verify that Ansible is showing the key was imported correctly?

Unfortunately I don't have an OSX machine available otherwise I would test it for you.

Correct output should be this (you should be prompted for your GPG key passphrase):

 __________________________________________________________
/ TASK [gitian : Import the GPG private key to the Vagrant \
\ user.]                                                   /
 ----------------------------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

ok: [hush-build] => {"censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result"}
 ___________________________________________________
< TASK [gitian : Clean up secret key file in /tmp.] >
 ---------------------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

changed: [hush-build] => {"changed": true, "failed": false, "path": "/tmp/04C73A7FD927976D.sec", "state": "absent"}
@leto

This comment has been minimized.

Show comment
Hide comment
@leto

leto Nov 6, 2017

Member

when I run vagrant up --provision hush-build i finally get:

fatal: [hush-build -> localhost]: FAILED! => {"changed": true, "cmd": ["gpg2", "--list-secret-keys", "|", "grep", "5A4D8019"], "delta": "0:00:00.140504", "end": "2017-11-05 19:53:40.453874", "failed": true, "rc": 2, "start": "2017-11-05 19:53:40.313370", "stderr": "gpg: error reading key: No secret key", "stdout": "", "stdout_lines": [], "warnings": []}
 ____________
< PLAY RECAP >
 ------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

hush-build                 : ok=53   changed=21   unreachable=0    failed=1****

with this gitian.yml:

---
- name: Apply the Hush Gitian builder role.
  become: yes
  hosts: localhost:hush-build
  vars:
    #hush_git_repo_url: https://github.com/MyHush/hush
    hush_git_repo_url: https://github.com/kentsommer/hush
    hush_version: v1.0.12-dev
    gpg_key_name: '5A4D8019'
    #gpg_key_name: 'F16219F4C23F91112E9C734A8DFCBF8E5A4D8019'
    git_name: 'Duke Leto'
    git_email: 'duke@leto.net'
    # optional - auto imports private key necessary for signing
    gpg_key_id: '5A4D8019'
    # optional
    ssh_key_name: ''
  roles:
    - role: common
      tags: common
    - role: gitian
      tags: gitian

It seems that only my public key was imported and it does not even try to prompt for a password, because it can't find the secret key

Member

leto commented Nov 6, 2017

when I run vagrant up --provision hush-build i finally get:

fatal: [hush-build -> localhost]: FAILED! => {"changed": true, "cmd": ["gpg2", "--list-secret-keys", "|", "grep", "5A4D8019"], "delta": "0:00:00.140504", "end": "2017-11-05 19:53:40.453874", "failed": true, "rc": 2, "start": "2017-11-05 19:53:40.313370", "stderr": "gpg: error reading key: No secret key", "stdout": "", "stdout_lines": [], "warnings": []}
 ____________
< PLAY RECAP >
 ------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

hush-build                 : ok=53   changed=21   unreachable=0    failed=1****

with this gitian.yml:

---
- name: Apply the Hush Gitian builder role.
  become: yes
  hosts: localhost:hush-build
  vars:
    #hush_git_repo_url: https://github.com/MyHush/hush
    hush_git_repo_url: https://github.com/kentsommer/hush
    hush_version: v1.0.12-dev
    gpg_key_name: '5A4D8019'
    #gpg_key_name: 'F16219F4C23F91112E9C734A8DFCBF8E5A4D8019'
    git_name: 'Duke Leto'
    git_email: 'duke@leto.net'
    # optional - auto imports private key necessary for signing
    gpg_key_id: '5A4D8019'
    # optional
    ssh_key_name: ''
  roles:
    - role: common
      tags: common
    - role: gitian
      tags: gitian

It seems that only my public key was imported and it does not even try to prompt for a password, because it can't find the secret key

@kentsommer

This comment has been minimized.

Show comment
Hide comment
@kentsommer

kentsommer Nov 6, 2017

Contributor

@leto

Do you have any output when you run gpg2 --list-secret-keys on your host machine?

kent@fenix:~$ gpg2 --list-secret-keys
/home/kent/.gnupg/pubring.gpg
-----------------------------
sec   rsa4096/XXXXXXXX 2017-11-01 [SC]
uid         [ultimate] Kent Sommer <kent.sommer13@gmail.com>
ssb   rsa4096/XXXXXXXX 2017-11-01 [E]

If so, run again with gpg2 --list-secret-keys --keyid-format LONG and copy the ID after the slash on the line starting with sec and use that in the gpg_key_id and gpg_key_name fields in the gitian.yml file.

The entry in gpg_key_id should be of length 16.

If the above works then I will edit the instructions and ansible scripts appropriately.

Contributor

kentsommer commented Nov 6, 2017

@leto

Do you have any output when you run gpg2 --list-secret-keys on your host machine?

kent@fenix:~$ gpg2 --list-secret-keys
/home/kent/.gnupg/pubring.gpg
-----------------------------
sec   rsa4096/XXXXXXXX 2017-11-01 [SC]
uid         [ultimate] Kent Sommer <kent.sommer13@gmail.com>
ssb   rsa4096/XXXXXXXX 2017-11-01 [E]

If so, run again with gpg2 --list-secret-keys --keyid-format LONG and copy the ID after the slash on the line starting with sec and use that in the gpg_key_id and gpg_key_name fields in the gitian.yml file.

The entry in gpg_key_id should be of length 16.

If the above works then I will edit the instructions and ansible scripts appropriately.

@leto

This comment has been minimized.

Show comment
Hide comment
@leto

leto Nov 6, 2017

Member

@kentsommer thanks for your help, I finally got my Keybase secret key imported to my host gpg correctly, my provision was all green and happy, and now I am running a plain ./gitian-build.sh again

Member

leto commented Nov 6, 2017

@kentsommer thanks for your help, I finally got my Keybase secret key imported to my host gpg correctly, my provision was all green and happy, and now I am running a plain ./gitian-build.sh again

@kentsommer

This comment has been minimized.

Show comment
Hide comment
@kentsommer

kentsommer Nov 6, 2017

Contributor

@leto

Awesome! Let me know if there are anymore issues 👍

Contributor

kentsommer commented Nov 6, 2017

@leto

Awesome! Let me know if there are anymore issues 👍

@leto

This comment has been minimized.

Show comment
Hide comment
@leto

leto Nov 6, 2017

Member

@kentsommer please look this over and let me know if it seems OK: MyHush/gitian.sigs@52a1bbe

Thanks again, this is super awesome stuff 💯

Member

leto commented Nov 6, 2017

@kentsommer please look this over and let me know if it seems OK: MyHush/gitian.sigs@52a1bbe

Thanks again, this is super awesome stuff 💯

@kentsommer

This comment has been minimized.

Show comment
Hide comment
@kentsommer

kentsommer Nov 6, 2017

Contributor

@leto

Those hashes match up with mine. Everything else looks good as well!

Contributor

kentsommer commented Nov 6, 2017

@leto

Those hashes match up with mine. Everything else looks good as well!

@radix42

This comment has been minimized.

Show comment
Hide comment
@radix42

radix42 Nov 6, 2017

Collaborator
Collaborator

radix42 commented Nov 6, 2017

@peoples

This comment has been minimized.

Show comment
Hide comment
@peoples

peoples Nov 6, 2017

peoples commented Nov 6, 2017

@lugeb

This comment has been minimized.

Show comment
Hide comment
@lugeb

lugeb Nov 6, 2017

Lol, from @csharpee peoples of the world comment. Someone will remove you.

lugeb commented Nov 6, 2017

Lol, from @csharpee peoples of the world comment. Someone will remove you.

@madbuda

This comment has been minimized.

Show comment
Hide comment
@madbuda

madbuda Nov 6, 2017

Contributor

@peoples github notifications are managed by the users, if you are getting notices then you either subscribed or have been mentioned. You would need to unsubscribe

Contributor

madbuda commented Nov 6, 2017

@peoples github notifications are managed by the users, if you are getting notices then you either subscribed or have been mentioned. You would need to unsubscribe

@leto

This comment has been minimized.

Show comment
Hide comment
@leto

leto Nov 6, 2017

Member

@radix42 my vote is that @kentsommer has earned his 500HUSH, his documentation made it very easy to get things setup locally and he was extremely responsive in helping this newb get stuff working

Member

leto commented Nov 6, 2017

@radix42 my vote is that @kentsommer has earned his 500HUSH, his documentation made it very easy to get things setup locally and he was extremely responsive in helping this newb get stuff working

@radix42

This comment has been minimized.

Show comment
Hide comment
@radix42

radix42 Nov 6, 2017

Collaborator
Collaborator

radix42 commented Nov 6, 2017

@radix42

This comment has been minimized.

Show comment
Hide comment
@radix42

radix42 Nov 6, 2017

Collaborator
Collaborator

radix42 commented Nov 6, 2017

@kentsommer

This comment has been minimized.

Show comment
Hide comment
@kentsommer

kentsommer Nov 6, 2017

Contributor

@radix42

I'm happy to wait for a third set if you would like? My address is here, but feel free to hold off sending until you verify a third set. Would prefer you are confident before sending 👍

hush-addr: t1JjmKWun4jn61JgVSK1fQKifVToqhKsov3

Contributor

kentsommer commented Nov 6, 2017

@radix42

I'm happy to wait for a third set if you would like? My address is here, but feel free to hold off sending until you verify a third set. Would prefer you are confident before sending 👍

hush-addr: t1JjmKWun4jn61JgVSK1fQKifVToqhKsov3

@radix42

This comment has been minimized.

Show comment
Hide comment
@radix42

radix42 Nov 6, 2017

Collaborator
Collaborator

radix42 commented Nov 6, 2017

@radix42

This comment has been minimized.

Show comment
Hide comment

@radix42 radix42 closed this Nov 29, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment