add in a default file hash and cleaned up init function a bit


i see. we may know better, but we can't rely on our individual knowledge. developers who import our library and instantiate nodes programmatically may have other plans. the system needs to speak for itself.


perhaps we should communicate this through the function signature:

`node, cancel, err := core.Node(...)`

where the implementation does the following:

```
ctx, cancel := ...

... create ...

return node, cancel, nil
```