Tech AMA — Dec 17
On Wednesday we had our first Telegram live AMA with Ory Band — one of our backend engineers. This post follows the previous post answering frequent tech questions. Close to 50 people actively participated in the AMA more than an hour and a half long, asking interesting questions and discussing the challenges ahead.
We’re using this opportunity to thank everyone who took the time to ask a question and went through the effort of joining our community channels.
We bring the questions (and answers) as they were asked and answered, without editing or filtering.
We will have more of these coming up in the near future, not revolving only around tech but also economy, product and more.
We encourage you to join us on Telegram and Reddit, ask your questions, and tell us what you’re interested in (links are below).
Blockchain related questions
Q: For How long will kin run on Stellar?
A: I have to stress that we’re not 100% moving to Stellar yet. We are still evaluating this technology, and have to verify it fits our needs. This will take time, I guess about a month, maybe a bit more. Assuming this stage goes well, integration with Stellar and the migration will of course take time, I guess a few months. We will of course keep you guys updated as we move along this path and try to explain how the process will go. We will also keep assessing the performance and costs for running over Stellar. I don’t have an exact answer on how long this will be, since this entire industry is moving forward very fast. We’ll have to see.
Q: What do you plan to do with the forked version of go-ethereum once you switch to Stellar? Why did you add cookie support to go-ethereum (it looks like it just holds the cookie, doesn’t do anything with it)?
A: We wrapped go-ethereum in our mobile SDKs so developers will have an easier time to create valuable services and integrate them with Kin. Once we move to a new blockchain we’ll update those SDKs so they’ll work on the new blockchain, hopefully without any friction for 3rd-party developers.
Regarding cookies:
TLDR: it’s a workaround for taking into account pending transactions when calculating a user’s balance.
our users expects transactions to be instantaneous. Since currently on Ethereum they’re not (around ~20s when the network is healthy, a lot longer when it’s not), we had to also take into account pending transactions when calculating the user balance (which haven’t be processed and mined yet). go-ethereum doesn’t support HTTP cookies and this caused problems when requesting information about pending transactions from the same node you submitted a transaction to just before. With cookies the node will remember the previous requests (i.e. state).
Q: Are you aware of the purpose of ‘anchors’ in the Stellar network? Doesn’t this seem counter to the point of decentralisation?
A: I’m aware, yes. Stellar has a different consensus model than Ethereum and Bitcoin. We are still looking at the anchor topic and will post an update on this later on. Stellar has pros and cons compared to Ethereum, but the big advantage is that it allows for super-fast transaction processing. This is very important when designing a product for the mass market, which doesn’t have any idea about the costs of working with cryptocurrencies. The crypto industry is still in the early stages and we might have to compromise on some features in favor of others. Remember, in the end, this is just a means to an end — which is to bring crypto to real world users.
Q: Are you considering building your own blockchain to avoid requiring another token (ETH or lumens) to facilitate transactions?
A: Good question! This is also one of the alternatives we are looking at.
Kik and Kin are focusing most of its resources on the product. Developing an entire new blockchain is a HUGE deal and resource hungry task, and it’s not healthy (or responsible) business-wise to be working on too many things at once. This is why we’re working with other companies’ blockchains (Stellar, Ethereum, etc.) atm.
We’ll keep you posted as we go. Currently focused on Stellar as our option. As mentioned still in testing and evaluation stage, not final, etc. etc.
Q: My understanding of Stellar is that it too is not scalable to millions of transactions per second so wouldn’t you face same problem of scalability in stellar as in ethereum?
A: Actual it does scale a lot compared to Ethereum. I don’t have the exact number here. We are still evaluating whether these claims are correct. We will not be migrating to a platform before responsibly verifying it stands up to our standards of course.
Q: How do you think EOS which was said can handle 1 million t per second. Although not proved yet.
A: Not mature enough to risk our business on this. See my previous answers about Ethereum and it’s upcoming features.
We will see as we go and examine all options according to our requirements.
Migration related questions
Q: Do we need to keep our kins on Myetherwallet or to move somewhere else?
A: We will release a series of posts and guides and explain everything before we migrate. Don’t worry, you will get all the information you need beforehand.
Q: With the new timeframe of Q2/Q3 2018, do you still not believe that the Eth network will be a good host blockchain by then?
A: In short, it won’t matter if it was available starting today. This technology is still immature to risk the entire business on it. However, we’re keeping an eye on this and also other alternatives.
Q: Besides Stellar, any other partners you’re considering to test with? Is Stellar still looking like your number 1 currently, or are there others that you’re looking at with the same attn?
A: Stellar is not the only option out there that might answer our requirements. We were and are looking at all alternatives (and will also write about this in the future). However, Stellar currently looks as the best option for us. Yes, it will always be arguable which solution is the best one out there. Remember this industry is changing at lightning speed (mind the pun) so this answer may change in the future.
Q: So back when it was decided to start on Ethereum it was assumed transactions are instant?
A: No. We knew Ethereum couldn’t handle our transaction scale currently. This is discussed in the whitepaper. Ethereum was our best option at the time in terms of ease of development. It’s a good platform for launching an initial product. However, as we need to move forward with our product, we have to find a better solution in terms of scale. Same thing I said above — the blockchain tech, although very interesting from an engineering point of view — is just a means to an end. The end is launching a product and bringing crypto to the masses.
Q: And I can’t help but think that the “oops, this doesn’t actually scale to millions of users” could have been known -before- doing an ICO for hundreds of millions just as well. And that it would have been part of writing a technical paper. Ok thanks for answering me while I typed this. So you actually knew it wouldn’t scale. Fair enough!
A: Yeah. We still chose Ethereum because it had advantages that still made it worth our time for the initial product we are launching now. The crypto industry is in “early-alpha” in its entirety. This is a good compromise we had to make. This is why we are first releasing to a “limited” 10,000 users and not millions.
General questions
Q: How long do you think it will take to get kin open to the public on kik and what kind of age restriction can we expect?
A: We are planning to launch and initial integration in the following weeks (AKA “IPL v2”). This was discussed thoroughly here and on Reddit. It will be a blast to a “limited” amount of users. It’s still 10,000 users so it’s quite a lot. We’ll slowly increase the users with access to it. This depends on how well Ethereum could handle this and how fast we can move with the migration.
Q: Did you do surveys to understand what Kik users are expecting and need? How did you decide on the product specifications?
A: We are a consumer app company with 9 years of experience in the mobile and messaging industries. We know our numbers. We know very well what young consumers expect, and have dedicated and experienced product teams that know how to execute. Specifically, yes — surveys are a small part and we’re doing this as well.
This is why people participated in the token sale, right? Because unlike most companies in the crypto field, we know consumers, have plenty of market experience, and have a large user base.
Q: If you use high gas fees to ensure quick confirmations for 10,000 users, won’t you end up spending very large amounts of ETH? Will IPLv2 have some kind of behind-the-scenes gas price estimator to minimise these costs?
A: I don’t think we’re using high fees. We are supporting pending transactions instead for calculating a user balance. This is one of the reasons why we contributed code back into go-ethereum (geth).
You guys can be satisfied that with your contribution to the project indirectly helped go-ethereum development.
Oh yeah and I almost forgot! We had a post explaining about this entire process: https://medium.com/kinfoundation/go-ethereum-pending-wait-for-it-balance-936a9fb1c6e2
Q: I don’t see one thing about kins tech to even criticize lol. And I’m deeply tech savvy. I don’t see where other even pull some of these questions out of ..I’m thinking some are intentionally made up just due to having nothing better to do with there time but to make things more difficult
A: Since the crypto field is so young and moving so fast, nothing is certain. Most technical decisions we make have pros and cons. Hopefully you’re seeing we are navigating these rough seas responsibly. Our top goal that is driving our decision is to bring mass users into the crypto space via a good product with real-world user experience. Sometimes people focus on other things as higher priority, I can understand.
Q: I invested into an ERC-20 token for a reason. I wanted to stay in the ETH world. Now I learn my tokens might become worthless because a new Blockchain. It’s worrying for early investors honestly.
A: Well, this is not really a technical question but I’ll try to answer. We never mentioned we would stay on Ethereum for eternity, while also mentioning that it won’t keep up with our expected scale. This is a good example of what I wrote above — our top priority is to deliver a good product. The blockchain question is a lower priority, understandably. Unfortunately as of today the performance of Ethereum will not unable us to do so. What will devalue the currency more — us moving to a more fitting blockchain thus enabling a good user experience, or keeping on the current one with bad user experience just because “it’s Ethereum”?
I’m sorry if this didn’t meet your expectations, but if you wanted to support Ethereum you can do it directly instead of doing it through Kin.
Q: Can we expect real time trades that will track when we jump in or out during a jam do to over capable numbers. So we don’t get stuck with two hour later prices
A: Since we plan to go on-chain right in the nearby alpha release, we have to rely on Ethereum processing times. There’s no way around that. We are supporting pending transactions so users won’t feel this straight away in order to allow for a great user experience from the start. But this is just a workaround to be able to work on Ethereum.
As you can see we are quickly reaching the stage where we have to find a better solution for this problem *ahem ahem* alternative blockchain *ahem*
Q: Will you be making any other repos on your Github public soon?
A: Of course! We’ll keep’em coming. I hope people are seeing we are trying to be as open and transparent as we said we would. Check back with our medium blog and reddit for updates.
Q: Related to the gas price question: In the event of a spike in pending transactions on the eth network, will the IPLv2 app automatically resubmit txs with higher gas prices and the same nonce to ensure user’s txs don’t get “stuck” on pending?
A: In the initial version we are not re-submitting transactions if they are still pending. This is a design choice we made after considering all options. It might change in the future — will monitor the performance and reconsider as we go.
Also, resubmitting has the risk of accidentally executing two transactions instead of one.
Q: So until stellar or other in q3 we will stay with iplv2?
A: No. We will continuously iterate and release more versions as we go. Always adding new features and learning as we move forward. App updates will keep on coming.
Q: Great you’re contributing back upstream! But still some work to do on the gas calculations I think:
https://github.com/kinfoundation/kin-sdk-python/blob/master/kin/sdk.py#L544
On that, how do you balance confirmation times with transaction fees for your users (or Kik itself if you are reimbursing them)? What’s your strategy when the network gets busy?
A: That’s a very good question. Unfortunately when Ethereum network is clogged there is not much that you can do beside wait. Even paying huge fees might not work (which we are not planning on doing, very expensive with millions of users). For the alpha version we are submitting a transaction once and let it propagate until it’s processed and mined. In the spirit of “fail-fast” development methodology, we try to keep it simple and will update this into a more complicated model only if it’ll be necessary. No reason to invest developer resources on a problem before we first experience it. Better to use this time on more urgent tasks.
Q: Can u in some detail tell us what all products we can expect. Stickers etc.give us the tech side of it I not so worried about exchange it will be on sev.
A: IPL v2 information will be released soon. Regarding things that’ll come afterwards — I’m not a product or partnership person so I don’t have too much information for you right now. However we have dedicated product and partnership teams. The best minds are forces are working on it as we speak (literally in the next room where I’m currently sitting and across the globe).
Q: Ory, how many supperiors do you have in the company
A: Good question! I’m one of the backend engineers working on Kin here in Tel Aviv. The backend team is only one of several teams, along with Android, iOS, product, project, QA, Marketing, HR, and also technical research (which is partially a backend team if you think of it). I have a team leader and a VP R&D above him who’s responsible for engineering in TLV.
We are slowly introducing our developers through our blog (plenty of developers have written there already and more to come) and are also uploading some videos here on telegram to introduce others. You’ll get to know more as we go.
Q: Is advertising going to be a way to earn kin on a personal kik stand point?
A: Advertising might be a way to earn Kin e.g. watch an ad for kin. However our goal is to allow for other monetization channels other than ads e.g. a VIP room with Britney Spears, only 20 users allowed, and do an auction in KIN for a one hour Q&A with this celebrity. Just a concept exploration.
Thank you Ory and thanks to everyone who participated in this AMA. Please join our community on Reddit and Telegram.