Pages:
Author

Topic: Gocoin - totally different bitcoin client with deterministic cold wallet - page 2. (Read 38500 times)

legendary
Activity: 2053
Merit: 1354
aka tonikt
it's a lot of explaining if you are on such level.
maye you have someone around who could help you with it.
it's pretty straight forward when you know basics about unix shell. or even DOS, for the matter.


I can only guess what's wrong.
Try
Code:
chmod +x wallet

and then
Code:
./wallet -h

make sure to first change dir (cd) to the folder where the wallet file is

but if you don't know what cd is, that's going to be a problem Smiley
newbie
Activity: 7
Merit: 0
So I have tried to run wallet -h in the command line and it says wallet:command not found. Does this mean I have done something incorrectly? Sorry if these questions seem basic I'm quite new to go and just wondering how to open or run the actual wallet. Thanks
legendary
Activity: 2053
Merit: 1354
aka tonikt
It is command line only - you need to run it inside a terminal.
Don't run it from the desktop as you won't see what it prints.

For instructions on how to setup the wallet, read the manual: http://gocoin.pl/gocoin_manual_wallet.html
newbie
Activity: 7
Merit: 0
Thanks for your help with this. I have been able to get an executable file called wallet onto the raspberry pi. How would I initialise this wallet on the device? When I click it it says file is executable and I can click execute, execute in terminal or cancel.Having tried both execute and execute in terminal nothing seems to be happening.

Thanks again for your help and development of this program.
legendary
Activity: 2053
Merit: 1354
aka tonikt
You don't need to build the wallet for your Raspberry Pi on Rasbian.
You can build it on any PC with a working go compiler.

Normally, when you do "go build" inside the wallet/ folder, it makes binary file for the host platform.

In order to build for another platform (Rasbian, in this case), just set the following environment variables:
Code:
GOOS=linux
GOARCH=arm
Then execute again "go build" inside the wallet/ folder - it should make "wallet" file that you can run on raspberry pi.

Simply copy the binary to your raspberry pi file system and it should be ready to go.
Just mind that you may need to do "chmod +x wallet" on it, before running it for the first time.
newbie
Activity: 7
Merit: 0
Someone on r/BitcoinDiscussion (https://www.reddit.com/r/BitcoinDiscussion/comments/83wpxb/raspberry_pi_cold_storage/) suggested I use your tool Gocoin to make a cold storage wallet with my Raspberry Pi Zero. Oddly enough I have been learning Go recently so have a basic understanding of the language (which I assume will help). What are the first steps I need to take to get the relevant files on my Pi Zero? Is all I need Rasbian and a Go compiler? I assume I'll also need to get the wallet Github files on there? What's the best way of doing this? Sorry if these are pretty basic questions just looking for some pointers on getting started.

Thanks for making the tool it looks really useful and Go seems to be a versatile programming language.

Thanks in advance,

Adam
legendary
Activity: 2053
Merit: 1354
aka tonikt
If anyone is interested, the (not yet tagged) version 1.9.4 of gocoin supports native segwit addresses (the ones in bech32 format).

I've used them for a couple of weeks already and they seem to have been working just fine.
Still, make sure to verify your signed transaction before broadcasting it.

Spending from a native segwit address might cut your transaction fee by as much as half - that's when you have your coins already deposited at a native segwit address.

Let me know if you need a help using it.
Basically "Segwit Deposit Addresses" for your existing (traditional) wallet are automatically shown in the Wallet tab of the web interface.
And you can enter bech32 encoded addresses in the MakeTX tab for output addresses.
Use the new version of wallet app to sign the transaction that either spends from or to a new (bech32 encoded) address.

Obviously, the backward compatible P2SH segwit address types are working as well, but that's a very old news (I think 1.9.0)
Still better to use the native segwit addresses (in bech32 format) as they make fairly cheaper transactions.

As for the moment you need the gocoin client to spend from your native segwit addresses.
It's because none of the block explorers used by balio tool supports fetching their balances yet.

Some screenshots:
https://imgur.com/ACWUAh8
https://imgur.com/gqGYXUY

Cheers
full member
Activity: 266
Merit: 100
What's up with xgox? Is the development still alive?....because people are dumping their stash without looking back as if there is a bad news on xgox.

What news is causing all the panic sell?
newbie
Activity: 28
Merit: 0
Thanks for this, really helping me decipher the internals of these technologies.
legendary
Activity: 2053
Merit: 1354
aka tonikt
An important announcement, concerning the possible 2x fork next month.

Unlike the other self proclaimed bitcoin experts, my professional opinion is that miners do rule the bitcoin protocol.
A chain with the most POW is the one to follow - that's how the system has been designed and that's the only way it can work securely.
Whether I like this fact or not is irrelevant.

It is somehow likely that starting from block #494784 the majority of the miners will choose to mine 2x bigger blocks.
That is why the current version of Gocoin (not yet tagged, but see the HEAD) is already made to accept 2x bigger blocks, starting from #494784.

If the fork does happen, the node will use the branch with a bigger POW - without discriminating any of the two consensus choices.
If the fork doesn't happen or in a longer term the 2x branch will not get the mining majority, the code consensus change will eventually get removed from the source code.

If anyone does not like it and want to stick to the old rules, you need to edit the file "lib/chain/chain.go" and comment out (remove) the line with:
[q]ch.Consensus.S2XHeight = 494784[/q]

Now, excuse me, I have to go buy some popcorn Smiley



Edit 11th Nov 2017:
Fork cancelled - consensus changes removed.
legendary
Activity: 2053
Merit: 1354
aka tonikt
Thanks.

You need at least 8 GB of RAM.
I'm unaware of any raspberry pi having that much.

As soon as you have a Linux board with that much ram, there should be no problem to run gocoin there.
It is possible, but I'm not sure if anything like this (cheap arm cpu board with 8+GB of RAM) is available on the market.

As for the storage space requirement, you can purge blocks database regularly,  in which case 16 GB of storage should be enough.

If you want to keep the entire block chain though, you need about 120 GB, as of today.
sr. member
Activity: 288
Merit: 251
Hi Piotr, I saw your presentation at The Future of Bitcoin in Arnhem last week (I'm one of the Arnhem Bitcoincity organisers Smiley) and that was awesome! Very interesting, you're doing great work!

I'd love to set up a new Bitcoin node using Gocoin. Would a Raspberry Pi 3 with Ubuntu be sufficient? I assume it would need to have 16 GB of ram? (is that even possible?) And perhaps a 256 or 512 GB SDcard? Or do you recommend something more powerful, e.g. a barebone miniPC?
legendary
Activity: 2053
Merit: 1354
aka tonikt
How can I unban a peer?
You can start the client with -unban to unban all peers.
legendary
Activity: 1500
Merit: 1021
I advocate the Zeitgeist Movement & Venus Project.
How can I unban a peer?
full member
Activity: 227
Merit: 100
Great presentation at the Future of Bitcoin!
legendary
Activity: 2053
Merit: 1354
aka tonikt
legendary
Activity: 2576
Merit: 1087
Brilliant presentation at Future of Bitcoin. Your client looks really good, hopefully it will get you some more recognition!
legendary
Activity: 2053
Merit: 1354
aka tonikt
I have a new update, but first of all I'd like to know if anyone is actually reading this.
Please let me know if you do and if you'd like to read some updates in this topic, or I won't be wasting my energy on this forum thread.

The 1.9.0 release has some reorgs inside the source code and the architecture in general.
It should perform even better.

Since the UTXO db only gets updated on new blocks, I decided to simply the approach and just keep a snapshot of it on the disk.
It's being flushed to disk after each update (new block), but at a vert low priority so it doesn't take too much system resources.

Now the whole UTXO database is caried by the single UTXO.db file, which is about 2.4 GB big.
When you start the new client, it should convert your old "unspent4" DB to the new format automatically.

Also, if you want to bootstrap a new node, you only need this file and the block headers file (about 60MB).
I can distribute the quick bootstrap files, if anyone is interested.

Which brings me to the point that the recent versions of gocoin node can work with purged blocks database.
If your blocks happen to be taking too much space, just close the client and execute:
Code:
bdb -purgeall
Or:
Code:
bdb -purgeto 
This will either purge all blocks or only up ot the given height.
Follow the instructions on the screen as you need some extra copying/deleting, just to be safe and not delete you blocks DB by accident.

Again: make sure to not have the client node running while using the bdb tool.
legendary
Activity: 2053
Merit: 1354
aka tonikt
Sorry for not updating for so long.

I've been travelling for the last couple of months, so no development, just field testing.
It should last for a couple of more months and then I will be back.

Before I left, I made version 1.8.0 - I've just tagged it, as it's been quite stable.
I have it running on my windows laptop and a linux VPS and it has been working fine for the last couple of months.
Once I had to restart it, as it hanged after over 50 days of uptime - I have some ideas why, will try to fix it, but first would like to see it happening again.
Also it well rejected the invalid block mined recently by BU node, although there was also something I will have to look at, as I found one debug of when it happened weird.

Anyway, the current 1.8.0 has segwit support and a few other cool things, and it's stable.
I got rid of the downloader, as the client is now able to sync the chain just as fast (with some additional command line switches).


As for the future development.

When I come back home, I want to make it possible to bootstrap (and further run) the node with only the block headers and a corresponding UTXO snapshot.
Basically it will be possible to run the full node without downloading and keeping the blockchain on the disk.
It will only keep the headers and the UTXO db. At this moment it's about 3GB of data.
Obviously it will be an optional feature and you will still be able to keep (and serve) all the blocks, if you please.

I've been thinking to establish some industry-wide standard for distributing a secured (first by the community signatures, later ideally by the chain protocol itself) UTXO snapshots, but it's not going to happen any soon, as it seems to be involving shit loads of politicking.
So I will just start with my own little solution and see from there, because I find this feature quite necessary already, as new people are very reluctant to try full nodes since they need so much time to bootstrap. Plus the blocks on my travel laptop have already taken so much space that I had to start removing porn, and that's really disturbing Wink
legendary
Activity: 2053
Merit: 1354
aka tonikt
What would you think about decred.org from the developers of other golang bitcoin client ?

Sorry, I don't have an opinion.

I'm too much involved in my bitcoin stuff and have no time to look into alternative-crypto projects.
I rarely even look in other bitcoin projects - mostly if they have something I might want for myself Smiley
Pages:
Jump to: