Trying to build on ARM

Looking right now at another one but trying to refrain myself … I still have an unused raspberry 3 B+ in its box, and 2 other ones running as music players … It’s an invasion … :slight_smile:

Hello,

I have one question… by mistake I 've sent Zclassic coins to my Zcash addres of my ledger nano s wallet in chrom app.

Did i lost my coins permamently ?

Thank you in advance for the feedback

Your kind support will be appreciated
Best regards

T̶h̶i̶s̶ ̶i̶s̶ ̶a̶ ̶b̶i̶t̶ ̶o̶f̶f̶ ̶t̶o̶p̶i̶c̶ ̶@̶M̶i̶c̶h̶a̶e̶l̶1̶9̶8̶5̶,̶ ̶b̶u̶t̶ ̶y̶e̶s̶,̶ ̶y̶o̶u̶r̶ ̶f̶u̶n̶d̶s̶ ̶a̶r̶e̶ ̶l̶i̶k̶e̶l̶y̶ ̶l̶o̶s̶t̶ ̶s̶i̶n̶c̶e̶ ̶y̶o̶u̶ ̶d̶o̶n̶’̶t̶ ̶c̶o̶n̶t̶r̶o̶l̶ ̶t̶h̶e̶ ̶p̶r̶i̶v̶a̶t̶e̶ ̶k̶e̶y̶s̶ ̶t̶o̶ ̶t̶h̶a̶t̶ ̶a̶d̶d̶r̶e̶s̶s̶ ̶o̶n̶ ̶t̶h̶e̶ ̶Z̶c̶a̶s̶h̶ ̶B̶l̶o̶c̶k̶c̶h̶a̶i̶n̶.̶

EDIT: this is not accurate info, see the below comments.

Dear Shawn,

Sorry for the confusion with the topic.

One more thing… so even when I use ledger nano s for zclassic and zcash then I’m still not able to get access to the coins ?

Thank you in advance for the feedback

I don’t see how it would be possible, but I may be wrong.

Since Zclassic is a Zcash fork the addresses are easy to mix up. So the Zclassic wallet the funds were sent from saw the public address you provided and sent them there (on the Zclassic chain)

The problem is you only control the private keys to that address on the Zcash chain, not the Zclassic chain.

Cryptography don’t care about chains. If it was possible to send to a Zcash address in the Zclassic network (because they neglected to alter the address prefix bytes), then you should be able to use the Zcash ECDSA private key for that address to sign a Zclassic transaction. The problem is more that the Ledger won’t let you do this, because by default it will generate different key trees for Zcash and Zclassic. But you could extract the derived private key and use it manually. This is a risky operation however, because it would involve exporting private key material from the hardware wallet (not necessarily the seed), and as the BIP 44 derivation process uses IIRC non-hardened derivation for addresses within an account, learning the private key to one address within an account can enable learning every other private key within the same account. So claiming the Zclassic without being careful would put any Zcash in the account at risk.

3 Likes

See, that’s why you’re the cryptographer and I am not :wink:

I’ve helped someone go the other way who sent their ZEC to a ZCL address and was able to recover them.

You should heed the advice above that this can be a risky proposition. If there are a lot of funds at stake you could move them to a second Ledger before doing this.

It should be as simple as following the instructions here FAQ - ZecWallet Docs to export the private key for the Zcash address you sent them to. Then, just import this private key into a Zclassic wallet and you should be good to go.

3 Likes

I ended getting an Odroid N2 :laughing: The specs of this are great and inline with the ROCKPro64 that @Shawn had success with above. I used the 18.04.2 Ubuntu minimal images from the Odroid wiki.

For something a bit different as it’s already been shown you can do the sync on a much less powered Odroid C2, I synced up testnet and also a lightwalletd node (GitHub - zcash/lightwalletd: Lightwalletd is a backend service that provides a bandwidth-efficient interface to the Zcash blockchain). lightwalletd is built in go so simply downloading the ARMv8 version of go Downloads - The Go Programming Language works really well.

I also tried the Parity node implementation which as is written in Rust also works on ARM GitHub - paritytech/parity-zcash: Rust implementation of Zcash protocol. I’m not sure what the status is of this project, as it doesn’t seem complete, but as far as syncing goes it worked very well on the Odroid C2 and is at the current mainnet block height.

$ curl -H 'content-type: application/json' --data-binary '{"jsonrpc": "2.0", "method": "getblockcount", "params": [], "id":1 }' localhost:8332
{"jsonrpc":"2.0","result":529266,"id":1}
2 Likes

Did you get the Odroid working @garethtdavies?

I have to say the Rockpro64 has been running flawlessly for almost 2 months now: Screenshot_2019-05-19-20-09-54-01

I couldn’t be happier with it.

Now the only issue is I will need to re-compile before next month due to depreciation :neutral_face: . Wish there was some sort of auto-update for full nodes.

4 Likes

Yeh, the Odroid N2 has been running zcashd and lightwalletd since I set it up with zero issues. I think that board or the RockPro64 are both perfect choices. I want to get my hands on that Nvidia one too but they were out of stock pretty much everywhere.

I’ve got a couple of Pi nodes that also had no issues for a couple of months and are still chugging along. Trouble there though as detailed above is the sync issue, although that issue is shared with Bitcoin (I guess on Bitcoin you can do it it just takes an eternity).

Good reminder about end of service halt albeit it’s now simpler as this has been merged into master. Assuming 2.0.5 drops tomorrow that’ll be a good opportunity.

2 Likes

Just updated my node to latest version after a fresh reinstall of armbian on the Odroid C2. Since the blockchain was saved on an external drive, it synced pretty fast and no need to add extra ram beside the default setup: 2gm ram + 1gb zram). So far so good (a few hours).

:slight_smile:

I wonder if it could handle a z2z transaction … Will try later with zboard …

Assuming it’s a Sapling one then yes it’ll work. Even the Pi doesn’t have any issues. You can also benchmark the device without performing any actual spends as detailed here: Zcash Shielded Transactions on the Raspberry Pi | Gareth Davies — Technical writer and (former) full stack dev. That’d actually be a nice table to make of all the potential ARM devices to see the various proof generation times.

1 Like

http://www.z-board.net/?id=5316b559670a30193c2ee860d1482b9d8987e987c86eacc8c5041fdc0c1a6140

It worked indeed :slight_smile:

Benchmark results:

zcash-cli zcbenchmark createsaplingspend 5
[
{
“runningtime”: 12.277216
},
{
“runningtime”: 12.290283
},
{
“runningtime”: 12.226117
},
{
“runningtime”: 12.240367
},
{
“runningtime”: 12.226278
}
]

zcash-cli zcbenchmark createsaplingoutput 5
[
{
“runningtime”: 1.840792
},
{
“runningtime”: 1.770122
},
{
“runningtime”: 1.783241
},
{
“runningtime”: 1.779474
},
{
“runningtime”: 1.781837
}
]

2 Likes
ARM Board Sapling Spend Sapling Output
Odroid C2 12.25 1.79
Raspberry Pi 3B 15.64 2.29
Raspberry Pi 3B+ 14.71 1.99
Odroid N2 6.46 0.98
Nvidia Jetson Nano ? ?
Pine64 RockPro64 (4GB) 7.93 1.13

Edit - added RockPro64 from @Shawn

1 Like

I could, though currently it’s on mainnet with zero funds :confused:

It’s just a benchmark. No funds are needed/used. Run zcash-cli zcbenchmark createsaplingspend 5 for the first metric and zcash-cli zcbenchmark createsaplingoutput 5 for the other one. 5 is the number of runs that you can average out so the more the merrier but I got pretty consistent results.

1 Like

2 Likes

So now that ARM support is in 2.0.5-2 what steps are needed to update? Just build like normal or do we still have to compile/transfer?

You need to cross-compile still it’s just now you don’t have to checkout a different repo/branch but can do directly from the Zcash repo and master branch.

Alternatively I hosted the 2.0.5-2 binaries on Keybase if you just want to download them directly via wget/curl etc… https://keybase.pub/garethtdavies/zcash-armv8-2.0.5-2/

4 Likes