@Tyler Boone So some feedback. So the entire project is labeled snowblossom, why put that string on the front of directories? In my opinion we should have src lib
node client miner shackleton
That indent doesn't look right. I mean src with the following directories under it {lib, node, client, miner, shackleton}
A single bazel project with multiple targets is fine
bazel is very good about not rebuilding things when it doesn't need to
I think that makes the dependencies less obvious
And even what all composes a stand-alone "piece"/library
I guess it each library is a folder under src?
lets say component. So we have four binaries that we build, node, miner, client and shackleton
and one shared library that they all will use, which would be Globals, NetworkParams and most of those *Util classes
What makes sense to me is to have node/src, node/test, miner/src, miner/test, etc.
I hate that and I'm not sure why
It might be because want to be able to do "grep something src" and see all uses
that's the standard layout of java projects...
The standard layout of java projects is designed by normal java developers, so I don't put a lot of weight in that
yeah...
but deviations from standards make things more confusing for experienced developers too
sure, I was mostly following a form of the google standard
yeah, it's what you are used to, makes sense
which has java/com/google/etc, basically all source under one tree
and then javatest/com/google/etc
all tests under a separate tree
now that I type that out, I don't know what the advantage of that is
I'm not a huge fan of that, but I don't hate it so long as the folders under test mirror the folders under src
In your scheme, where do I put tests the test multiple components at once?
SpoonTest for example
yeah, they should mirror exactly (which I am aware I haven't been doing)
let me look at spoontest
You'll love it, it is terrible
but probably the most useful
does this simulate running a node and a client and a miner?
It simulates nothing, it does it
there is no mocking
classy
if I were emporer, stuff like this would live in a systems/integration test project
What does project mean?
like "snowblossomlib"
basically "something that compiles to a jar"
bazel does some strange things with tests into binaries but whatever
I get what you are saying
yeah, I use more Eclipse/Visual Studio terminology
I haven't totally internalized Bazel yet
Think of bazel as more like make, it isn't super bossy about how you lay out files
it is just a way to define build rules and dependancies between things
yeah, that's what I gathered from what you had
I'm a fan of enforcing order upon things
let me finish munging the folders tomorrow based on this feedback and lets see what we think of it
sounds good
I appreciate it
I'll go with client/src, client/test, node/src, noce/test, etc
if you don't like it once you see it, it will be easy to switch to src/[node, client], test/[node, client]
cool
I like the first way because it keeps the tests close to the code, and makes these questions obvious 1) what code is being tested by a given test?, and 2) what tests cover this code?
anyways, I was supposed to be going to bed.
Dan won't be impressed if I stay longer...
ttyl
[snowblossomcoin/snowblossom] Issue closed by fireduck64
[snowblossomcoin/snowblossom] Issue closed by fireduck64
So we can do deterministic wallets bip39 style from a seed and HD derivation like other things for EC keys. That is no problem. It would be nice to do it for non-EC keys as well, but the part with the xpub deriving addresses without the need of the private key is EC-only magic. But we don't really need that, we could do derivable non-EC keys with using the seed to feed into a deterministic PRNG and then have that used as the SecureRandom to generate other types of keys. There are problems that probably make this a bad idea: • If the key generation does any sort of floating point or per-platform/environment optimization it could generate different addresses on different machines/platforms/environments. • If the key generation algorithm changes in any ways, we will almost certainly generate different keys. This isn't the sort of thing we can screw around on. Probably a bad idea.
[snowblossomcoin/snowblossom] Issue closed by fireduck64