Dev Team Meeting Notes

Follow the progress and current focus of æternity’s development team.

All meeting notes are stored in GitHub and shared by the dedicated Twitter account of æternity’s CTO, Joel Reymont. The collection of notes below is an overview and will be updated once a week.

Project Board 
Project Milestone


Meeting Notes 20–09–2017

Summary

  1. Put the final touches on this week’s dumb blockchain deliverable.
  2. Have CTO pick up more project management tasks to free up the team lead for coding.
  3. Raise the bar and pull up to it! Add multi-asset blockchain capabilities (tokens and ICOs!), as well as Ethereum smart contracts.
  4. Put Rust on the backburner, focus on delivering more with Erlang.
  5. Switch to weekly project updates on Friday with the first entry going out at the end of this week.
  6. Update the whitepaper next week. Call it Aeternity Reimagined.

Meeting Notes 19–09–2017

Summary

  1. Added a heavyweight Erlang developer to the team. Negotiating with two more. Can be much more ambitious now!
  2. Focus all efforts on hitting the Friday goal of releasing the dumb blockchain.

Meeting Notes 18–09–2017

Summary

  1. Try to hire 2 more Erlang developers this week. We have awesome candidates!
  2. Focus on the Friday deliverable. Finish on Wednesday and set Thursday and Friday aside for testing.
  3. Make the Cuckoo Cycle PoW testing deterministic.

Meeting Notes 15–09–2017

Summary

  1. Hash the 42-integer solution to the Cuckoo Cycle PoW and use it as the measure of difficulty.
  2. Hire Rust and Erlang programmers.
  3. Focus on a small win with every spring. Chain these wins into a big Q1 2018 win, and on from there.

Meeting Notes 14–09–2017

Summary

  1. Ignore order of insertion into the Merkle tree, root should not change.
  2. Plan to use either Ethereum-style Merkle Patricia trees or Authenticated Dynamic Dictionaries.
  3. Get in touch with John Tromp about properly adjusting Cuckoo Cycle PoW difficulty.

Meeting Notes 13–09–2017

Summary

1. Settle on the proof of account balance.

2. Use websockets for the local communications with the node. The node-to-node API will use HTTP.

3. Update the design section of the wiki.

Meeting Notes 12–09–2017

Summary

1. Include proofs of account balance modifications in the block to avoid processing the blockchain since genesis to build the account tree.

Meeting Notes 11–09–2017

Summary

  1. Discard SHA256 PoW.
  2. Start the Dumb blockchain sprint. The goal is to have a fully functional blockchain with limited functionality, i.e. just block mining. We’ll make it release 0.1 and put it out there for people to play with.

Meeting Notes 08–09–2017

Summary

  1. Treat Cuckoo Cycle access as a limited resource.
  2. Build a finished product every sprint. Epoch will be a blockchain in progress but fully working at the end of each sprint, always gaining new features. Users will be able to download the software and run it, confirming that it meets the goals defined for the sprint.
  3. Start the Dumb blockchain sprint next Monday.

Meeting Notes 08–09–2017

Summary

  1. We have a new member of the team.
  2. Cuckoo Cycle PoW is done and waiting to be merged.
  3. We are still clarifying the state of the world.
  4. Start new milestone next Monday.
  5. Label closed tickets in this sprint according to how long it took to finish them.

Meeting Notes 07–09–2017

Summary

  1. We have a new member of the team.
  2. Cuckoo Cycle PoW is done and waiting to be merged.
  3. We are still clarifying the state of the world.
  4. Start new milestone next Monday.
  5. Label closed tickets in this sprint according to how long it took to finish them.

Meeting Notes 06–09–2017

Summary

  1. Added unit tests to Cuckoo cycle, they are working. Verification is taking too long.
  2. Use extranonce when nonce overflows.
  3. Add new transactions while mining a block.
  4. Implement service to hold blocks and headers in memory.
  5. Build state of the world by processing the blockchain since inception.
  6. Update state of the world when receiving blocks.

Meeting Notes 05–09–2017

Summary

  1. Finished in-memory merkle trees.
  2. Compile the Cuckoo Cycle and test today. Use NIFs to integrate with Erlang.
  3. Proceed with block implementation. Track time and difficulty.
  4. Backlog local caching of state of full nodes, no persistence between restarts for now.
  5. Light nodes will ask full nodes for proof of balance.
  6. Put block design on the wiki.

Meeting Notes 05–09–2017

Summary

  1. Extend sprint 1 by another week.
  2. Estimate tickets when assigning them at the standup. Need a few more sprints to make it happen.
  3. Clarify assumptions more frequently.
  4. Use John Tromp’s C/C++ library for the Cuckoo Cycle PoW. Integrate it with Erlang.
  5. We need Ethereum-like state trees but do we need a proof of absence? Discuss.

Meeting Notes 31–08–2017

Summary

  1. Discard peering design as too complex. Keep it simple!
  2. Be bold, don’t be afraid to make mistakes! Challenge authority but have good arguments ready.
  3. Daily standup meetings are obligatory. Excuses accepted.
  4. Settle on a good Merkle trees approach. No persistence needed as trees will be serialized with blocks.
  5. Serialize blocks in a format easily parsable by Javascript clients.
  6. Persist blocks in RocksDB.
  7. Investigate storing proofs with transactions.
  8. Understand Merkle Patricia trees and their use in Ethereum.

Meeting Notes 30–08–2017

Summary

  1. Follow a PR checklist. Make sure commits are squashed, message is good, tests, docs, etc. are present.
  2. Reuse existing Cuckoo Cycle PoW code rather than write our own from scratch.
  3. Add RocksDB to the project skeleton and start on Merkle trees.
  4. Implement SHA256 mining.
  5. Collectively review and poke holes in the peer and sync design.
  6. Interview 2 more Erlang developers.

Meeting Notes 29–08–2017

Summary

  1. We are on track but haven’t reached cruising speed of development yet.
  2. Avoid estimate labels for the first few sprints and until we settle into a steady rhythm.
  3. No over-engineering. We are short on time so we want to do things right but not strive to make them perfect.
  4. PRs should come with unit and/or integration tests. Assign new tickets and add them to the current sprint as PRs are merged.
  5. Hold technical discussions in Github tickets.

Meeting Notes 28–08–2017

Summary

  1. Use the Monday standup for sprint planning and the Friday one for a recap of that week.
  2. Revisit the sprint throughout the week, adding or removing tasks.
  3. Give it a few weeks to calculate our average development speed then try to estimate the project.
  4. Some tickets may be too general and will serve as a tracking umbrella for others.

Meeting Notes 25–08–2017

Summary

  1. Use Github for project management: Label tasks as small, and Medium or large Group tasks into sprints/milestones.
  2. Create tickets/issues for known tasks.
  3. Figure out the project timeline.
  4. Investigate using LevelDB for data storage.

Meeting Notes 25–08–2017

Summary

  1. Deliver on the vision in the original whitepaper, i.e. implement payment channels, oracles and smart contracts.
  2. Revise the original whitepaper to focus on the above. Remove non-essential stuff like betting markets implemented over channels.
  3. Question all assumptions, e.g. whether nodes should communicate over HTTP, what the API should be, whether users need to pay to maintain accounts, etc.
  4. Do it better and faster than before.
  5. Develop in the open, after taking the old repo private to avoid confusing users.
  6. Ensure token distribution in the genesis block.
  7. Ensure voting on code upgrades (governance).

Interested in æternity? Get in touch:

GitHub | Reddit | Telegram | Twitter | Facebook | Mail


Leave a Reply

Your email address will not be published. Required fields are marked *