Here are the most important Q&As from the Reddit AMA session with æternity’s lead engineer.
Team & Role
What does the CTO role mean to you: roles and responsibilities? How do you plan to direct development; what tools and metrics will you leverage and what personal growth areas do you see? What are the biggest challenges facing development? Successes?
My responsibility right now is to make sure that we get a »well rounded« blockchain system, i.e. mostly conceptual/design work. But I wouldn’t be able to do this without Michal and Erik, who are far more experienced engineers than I am — and the rest of the team, of course.
I’m not sure if I can think of any specific tools. As far as I am concerned, the tools don’t matter much if the team is right. The best metric will be adoption, seeing as we aim to be a platform for trust-less applications. If we can manage to bootstrap a handful of interesting applications on the testnet and have them ready(-ish) by mainnet launch, then I’d consider that a success.
Personal growth areas? That’s one thing that initially got me interested in bitcoin; there are so many different angles from which you can approach blockchains: distributed systems, economics, politics, cryptography to name some of the obvious ones. All of these are areas I can learn a lot about.
The biggest challenges any software project faces. We’re no different, unfortunately. Getting caught up on details or delays for all sorts of other reasons.
How will you structure the team? Do you have experience as a CTO/lead engineer? What obstacles do you see for rolling out the testnet?
The core team has been working quite well in its current configuration so I don’t think there is going to be any (major) restructuring. If the testnet is stable then we’re most likely going to divide the team into working groups for the different feature but that should be it.
I have experience as a lead architect and have Erik and Michal on my side who are incredibly experienced. They are actually the more experienced engineers but I have more experience when it comes to blockchains.
We had a code freeze for the testnet and are finalizing the release notes. So unless any major instabilities are discovered it should be launched very soon.
How do you feel on a human level with the management? In other words, do you foresee a long term relationship with the project?
So far I feel like I’ve been able to get along with all of the members of the team I have met. That is the plan, yes!
Are you and Yanislav on the same page when it comes to where æternity is headed?
Yanislav and myself are more or less on the same page, and from our past conversations I can say that I get the feeling that he generally trusts my decisions if I can provide the proper arguments.
What is the biggest challenge and what is the biggest opportunity building/designing a “third generation blockchain” like æternity (compared to Ethereum for example)? Which are the highly inspirational open source blockchain projects for you right now?
Opportunity: Being able to learn from the mistakes others have made and improving upon them.
Challenge: Convincing people that the solution you are offering is actually a viable one.
I’m not sure if those are the biggest but they’re the ones that came to mind first.
Highly inspirational? There are bits and pieces I like from many projects: Zcash, dfinity, Ethereum, IOTA, Tendermint/Cosmos, 0x to name a few.
Core Technology, Community & æpps
How confident do you feel that you can meet the Q2 “deadline” for releasing the main net?
I’m confident that we can do it, given no major disruptions.
Do you keep working on the whitepaper “æternity — reimagined” which improved/updated the original one?
Yes, I definitely want to produce an updated whitepaper.
What about state channels and smart contracts? Can smart contracts be linked to or run within state channels facing scalability issues (and still be turing complete)?
We want to have smart contracts in state channels, yes. But keep in mind that, while everybody is praising channels as the scalability salvation, we have yet to see them deployed at scale to observe the actual scaling benefits. They are definitely going to be useful in some cases but they’re no silver bullet.
Do you think Erlang is the right language to build the blockchain on?
It definitely is for now. And even if it turns out that Erlang is not ideal, I believe having multiple implementations is beneficial, i.e. Erlang will be the reference implementation and we could have other implementations in all sort of languages (see for example the diversity in the Ethereum world).
What about smartphone-usage and smartphone-mining? Joel mentioned in the Telegram channel of his new project that Erlang cannot run on smartphones.
There’s no need for the Erlang version to run on a smartphone. If you plan on running a miner on your phone then your phone will also be able to connect to a remote node to receive work from and submit shares/blocks to.
In the whitepaper Joel mentioned that æternity will implement Omniledger technology to solve the scaling problem in the near future. When will æternity implement Omniledger technology?
I don’t agree with Joels assessment that Omniledger, at least not as it is described in the paper, is the best option going forward.
Do you have plans for developer community engagement? Attendance at conferences etc?
Definitely! But before we can engage with the developer community on any meaningful level, we’re going to have to give them some means to actually use our blockchain.
What new ideas are you bringing to the table, both from a core æternity perspective and a third-party perspective? Are you involved in outreach to tech teams that might want to build upon æternity?
I was introduced to æternity via one of those teams but I’m not (yet) involved in any further efforts other than having discussed them while in Malta. I would say that what I bring to the table is the experience of having interacted with many blockchains from a developer perspective and engaged with a great deal of the blockchain research that is out there.
In what ways do you intend on leveraging the community with æternity’s development? What would you like to see from us? How could we better engage?
In the end there’s no æternity without the community but I think that we’re not yet at a point where we can expect too many developers to come onboard, because we still owe them some tools to be able to work with our blockchain.
We have plans to engage more developers but I’m not sure if I can talk about them just yet.
The most important thing everyone can do is to foster an open, welcoming and healthy community. (I’m a fan of the Rust Code of Conduct)
Is there a plan and/or person(s) chosen to make resources, docs or other learning material for the development of æpps easier and in one place? For now, the resources on learning how to interface and implement æpps is unclear overall and scattered in articles.
I totally agree that the developers experience is sub-optimal right now and changing that is very high on my list.
As for documentation: totally! Just keep on insisting on better documentation and annoy us as much as possible. Writing and maintaining good documentation is essential but unfortunately also really time consuming, especially for a young project that is still very much in flux. We’re just going to have to make this a habit.
I’m definitely going to keep on pushing for this, though, as I’ve had my fair share of experiences with bad documentation.
What do you recommend people who want to prepare for the launch study so that they can make the most of it once it does (i.e. making æpps and working with the platform)? Erlang? Solidity? Great job on the æternity team so far, thank you all so much for all of your individual efforts, please keep going, we are all very æxcited for æternity in 2018!
Thank you, that’s great to hear!
Is æternity going to have a SDK for making and building æpps?
That is the plan is to have something similar to web3 maybe even some higher level libraries for æpps.
Will the æpps only exist as webapps or do you plan to provide native apps for iOS and Android. And do you plan them to be ready when mainnet is released?
No, the plan is to have them native. I can’t yet say if those are going to be ready for the mainnet launch, though.
Will it be possible to run a masternode on æternity? If yes, how many tokens would we need?
At this point there are no plans to have masternodes.
Will we ever see atomic swap technology built on top of æternity?
I certainly hope so.
For a smart contract to be active and execute 24/7 on a state channel does the state channel have to be online and open 24/7? Thinking on the lines of etherdelta.
At least one of the participating parties would have to be online. I could imagine that, in the case of an exchange, if the user goes offline, then the channel could be kept open if the exchange can prove to the user that they did compute all the new states faithfully since the last time the user was online.
What’s your view on child tokens and their usage in æpps?
Native child tokens have lost a bit of their importance — that’s my current impression at least. With the ability to run general purpose smart contracts I don’t necessarily see the need for native child tokens but I have to say that I have not spent too much time thinking about them and their benefit over the ERC20 kind, just yet anyway. Plus, there’s nothing stopping you from creating an ERC20 token which can be minted/has inflation. If Ethereum has taught us anything, it’s that people want these tokens — for a multitude of reasons.
Can æternity implement anything like IOTA with a zero fee transaction in some cases?
That’s a tough one. I, personally, would love to be able to remove transaction fees from the system but I think that there are multiple forces at play here which require a delicate balance. I’m definitely going to give it a try.
I’m certain it’s not going to happen for mainnet launch, though.
Do the development team know exactly how the oracles are going to work? How is the incentives system going to work for participants too?
We have a draft for an initial version of oracles but seeing as oracles are still not widely used/deployed I would posit that anyone has yet to figure them out properly.
Want to get in touch? Connect with us at these channels: