Development meeting held @ 3PM UTC in grin/Dev channel on Gitter, full chat transcript here. Meeting lasted ~ 90 min.
Notes are truncated, and conversations sorted based on topic and not always chronological. Quotes are edited for brevity and clarity, and not always exact.
Community attendance:
- antiochp
- bladedoyle
- davidburkett
- garyyu
- hashmap
- jaspervdm
- noble_block_twitter
- quentinlesceller
- rentenmark
- tromp
- yeastplume
(apologies if I missed someone - submit a PR or contact @lehnberg to add)
- @yeastplume: Covering for Igno this week. Marching on as usual. For my own part I've been working on getting the wallet split out, which I think is done now, and moving on to the last points that need addressing for a windows release. Other than that chain is ticking along and had its one month birthday without any explosions, which I guess is something to celebrate. Others?
- antiochp:
- adding a global file lock (so we don't corrupt the data with multiple grin servers)
- getting back up to speed on Dandelion++
- mapping peers by ip (and not by port)
- reviewing various PRs
- hashmap: Fixed 4 peers issue (for nat’d nodes), stratum issue with partial read, some rest api refactoring.
- tromp: I've been discussing miner improvements with photon and lolliedieb. and am working on cuckatoo32 support.
Proposed agenda accepted, added "Error management" as an additional point on @hashmap's request.
- yeastplume: Done.
- yeastplume: The next point release is 1.0.2. I've been working more or less exclusively on 1.1.0 changes. Not sure what our plans are for when we do a 1.0.2 release and what will be in it. I guess this is the time to discuss.
- antiochp: Milestone: https://github.com/mimblewimble/grin/milestone/10
- there's some cleanup and maybe a couple of bugfixes in 1.0.2
- davidburkett: Hashmap's peer fixes are a must. And I would argue should be done soon. Many (most?) users are behind NAT, and can’t maintain any peers, resulting in their nodes falling behind.
- yeastplume: Looks as if a 1.0.2 could be done at any time, really. there are a couple of things that would be good to get in, and then a release seems timely. Whatever is in roughly around this time makes it.
Target for a release sometime next week.
- yeastplume: wallet being split off into a separate repo (which is done now but needs review), and Windows support (which is getting there). As far as timing, I'd say it's still a few weeks off, given we need to merge all changes back into the 1.0.x and perform a decent round of testing on it. Everyone please update whatever issues to reflect the milestone.
- antiochp: Dandelion++ also a candidate there.
- hashmap: New stratum needs proper testing, it’s tagged already (pr only). My 2 main issues are high cpu usage (which could be improved by increasing sleep time in some places, but a proper fix is to rewite p2p io whch opens a can of worms), and pmmr persistence durability. Now 1 peer consumes ~ 1% cpu.
- tromp: Wallet is still defaulting to height locked kernels where it should use plain kernels. Fee is the same, but it's wasting bandidth and should be changed.
- antiochp: The bandwidth bit is a trivial change, the backend storage is far from trivial, as there is no code in place to handle different MMR element sizes.
- yeastplume: As far as the 1.1.0 item, update issues and we can review where we are more definitively at the next dev meeting. That sounds good?
- yeastplume: I had thought we'd had this discussion a while ago, and we were starting to use ErrorKind enums as the best solution. It's in a few crates, but not consistent.
- hashmap: Yeah, a year ago. We have too many error wrappers. Even though we uniform them it’s still pain. Like dozen
keychain::Error
. - yeastplume: Yeah, each crate is wrapping every error from all other crates. I guess having a single crate for all errors is a possibility. But then we're going to end up with a huge ErrorKind enum. From a usage perspective, I don't see that as a huge issue, so long as the error crate doesn't itself have any dependencies on grin crates.
- quentinlesceller: Any examples?
- davidburkett: So, everything in keychain would throw a
keychain::Error
, but they would all unwrap to aErrorKind::keychain
? - antiochp: I'm actually not opposed to having each crate wrap errors from dependent crates - its part of the api. I was just looking at something sort of related to this - https://doc.rust-lang.org/std/io/enum.ErrorKind.html. There's an
Other
ErrorKind in there (for std::io) that can wrap anything. - hashmap: I could volunter to summarize different approaches and suggest couple for the next meeting.
- hashmap: Yeah, a year ago. We have too many error wrappers. Even though we uniform them it’s still pain. Like dozen
meeting agreed.
- garyyu: With wallet separated from node, how will we handle different versions of wallet and node running on the same system?
- yeastplume: Wallet lib relies on mostly core, keychain, store and util from core. We might want to ensure the grin node reports its version properly, so the wallet can fail gracefully.
- garyyuu: With multuple projcts, I think we need a release page on our website, to hold 3 binaries for one release: server, wallet, miner, instead of on each github project.
- yeastplume: sure, makes sense.
- davidburkett: The user should still be able to install an old wallet, with a new node. Correct?
- yeastplume: Not sure we can guarantee that for perpetuity, but we can ensure we handle needed updates gracefully and prompt user to upgrade if necessary.
- hashmap: We might drop some apis in the future.
Meeting adjourned.