Technical Concerns About ICON Going Into 2021

Hi everyone, I wanted to share two of my concerns about ICON from a technical standpoint going into 2021. These two concerns are based on my personal experience working in various technology companies, as well as feedback from developers who I introduced to ICON – but have since moved on to other more developer-friendly projects.

#1 – Technical Representation on the ICON Team

This one is mostly my personal opinion, though others in the community have discussed this with me as well. ICON desperately needs a public-facing technical contact that can discuss technical concepts at both a high level and low level. In many other projects (e.g. Tezos, Cardano, Chainlink, Cosmos, Compound, etc.), the founders have a technical background, which means they are able to discuss technical concepts in depth without relying on analogies or simplification.

Going in 2021, with the transition to ICON 2.0, I think having technical representation on the official ICON team is very important. Right now, we have Min, Ricky, and Scott as the public facing members of the ICON team who communicate with the public on a consistent basis. If there are others, I am unaware. Min and Ricky are especially adept at the business side of things, and this is very apparent and one of the reasons for ICON’s success in SK. Scott, on the other hand, is very good with the token economics, game theory, etc. side of things. What is missing, however, is someone in a “developer relations” role who can talk at length about the technology.

My question is whether ICON has any plans to hire someone in a “developer relations” role. I genuinely don’t think this responsibility can be relegated to a community member for so many reasons. To name a few, the community does not have full access to source code, no access to internal ICON vision, no access to ICON developers, etc. My recommendation is for ICON to spend the $120,000-$150,000/year on a technical lead or developer relations role with the responsibilities below.

  1. Build sample projects on ICON to reduce friction for new devs. Something like Cloudflare’s Workers sample projects would be incredible.
  2. Get super familiar with how ICON works, and act as the main point of contact for developers. The ICON Dev Telegram Channel is a nice casual environment for talking about development, but often it’s filled with various community devs trying to piece things together. This SHOULD NOT be what’s happening for a project pitching itself as an enterprise solution. “Enterprise” should mean something real. In this case, having someone who is knowledgeable and can work with everyone from businesses to community members building on ICON would be a huge improvement.
  3. Write tutorials and record videos on how to develop on ICON. This content can sort of abstract away “building on ICON”. Instead, maybe he/she can do a series on “blockchain development on Python” or “blockchain development with JavaScript”, and use ICON as the underlying blockchain in the video. This kind of strategy can attract developers who are not familiar with blockchain, but are skilled in one of ICON’s SDK languages.

#2 – Access to a Stable Testnet

In development, it’s normal to have a few different environments.

  1. Local
  2. Development
  3. Staging
  4. Production

Right now, we have “Local”, “Development”, and “Production”. I recently learned that ICON uses the Yeouido testnet to test new node software that is different from main net. The problem is Yeouido is also what community developers use to test their smart contracts and projects.

My recommendation is the following.

Create a testnet that reflects mainnet as much as possible. Whether this is Yeouido or something else, it doesn’t matter. The most important part is that it needs to reflect mainnet software at all times, and it has to be stable. In blockchain, there are two kinds of testnets. One for testing core software, one for testing smart contracts and the things.

These two should not be the same!

Right now, these two are the same on ICON and the result is we see downtime almost every week. This was a huge frustration to the developers I introduced to ICON, and they ended up moving to build on other projects. Again, we can’t keep on referring to ICON as an enterprise-level solution if there isn’t even a stable infrastructure stack in place with purpose-built testnets (one for testing core software, one for testing smart contract deployments).

Can ICON commit to building out a testnet for each purpose, and provide an SLA for the smart contract testnet? I can’t imagine developers outside the ICON vacuum taking ICON seriously for building critical services otherwise.

21 Likes

I think Brian has 2 very good points here!
A technical lead would be very useful for both the existing community and for new developers that want to build on icon.
Maybe the foundation already have someone in-house that can commit to this and engage more with developers and the community in a more public setting?

A technical lead would also help with the second question that Brian brings up, he/she would take suggestions like this and bring it to the foundation.
It doesn’t make sense that we don’t have a TESTnet that is not reflecting the main net. It creates a lot of issues for developers and it shouldn’t be that difficult to get such a testnet online?

1 Like

I think these are great suggestions too. We’re growing faster and faster every month.

A hire like that would certainly help smooth out any future growing pains.

3 Likes

Yes, I also agree with the suggestions above.

We also had issues developing on Testnet and we had to set up a local instance just to be able to test our SCORE, which is not ideal…

3 Likes

From what I understand, the majority of the developers working on ICON are from ICONLOOP. I think Korean is the primary language for most of the devs, so that would be an issue.

This is why I think it would be great to hire a dedicated person who’s familiar with developer relations to help turn ICON into a truly developer-friendly platform.

I have so many potential project ideas in mind to share with a person like this, I really hope ICON makes something happen.

1 Like

Hi Brian, thank you for your opinion. Overall I understood and got your point.

In terms of #2, currently, our strategy on testnet release is updating the Euljiro and Pagoda testnets first, and the Yeouido testnet later once we finish full testing. I know the community’s concern and am thinking of the stability of Yeouido as a top priority as well. So we are not updating something on the Yeouido network without full testing.

As you know, we are having a hard time since there is no smart contract audit in Yeouido. Yeouido is in a dilemma of maintaining the same environment as the mainnet and not having an audit process at the same time.

So I think the root solution for this is having a new testnet based on ICON 2.0. Once we release the ICON 2.0, we can provide a fully stabilized testnet that reflects the same mainnet configuration and purpose-built testnets for smart contract testing and such (Currently Gangnam testnet is the network for this)

2 Likes

I know the community’s concern and am thinking of the stability of Yeouido as a top priority as well. So we are not updating something on the Yeouido network without full testing.

I think this is a good start, thank you for this information. The stability is very important for sure. From what I can see, the testnet goes down once a week or so, so anything that can be done to stabilize that to mainnet levels is very much needed.

So I think the root solution for this is having a new testnet based on ICON 2.0. Once we release the ICON 2.0, we can provide a fully stabilized testnet that reflects the same mainnet configuration and purpose-built testnets for smart contract testing and such (Currently Gangnam testnet is the network for this).

With that said, I am a little disappointed to hear that we may not have a proper testnet until ICON 2.0. With the recent price action in crypto, it’s possible that more developers may get interested in blockchain. Since ICON 2.0 is still 4-6 months away with no unforeseen delays, that’s a lot of time to risk without an environment that makes things super easy for developers.

3 Likes

I see your point. It doesn’t mean that we will do nothing until ICON 2.0. Until then, we continue to find a way to make it more stable but technically the best solution is to have ICON 2.0 testnet. Currently, we plan to release a new update on the Yeouido and mainnet and it will happen in a month. This update would be really helpful to ensure the stability of the network. Many cases will be addressed with this update. Also, we’ll continue to put our effort to make the testnet the best environment.

1 Like

Thank you for the feedback! I’m glad to hear it.

Hopefully some other Foundation members will address the points in #1.

Thanks again!

2 Likes

Hey Brian - overall I agree with both of your points. Can’t really argue with wanting a technical leader and can’t argue with wanting a stable test net. ICON has been taking action to get a technical lead for quite some time actually, but it’s not an easy task as I’m sure you would agree. The effort will continue (looking within the community and externally) and I appreciate the professionalism in which you approached these two topics.

11 Likes

Thanks for the response, @BennyOptions_LL! It’s great to hear that ICON is actively seeking a technical lead. Yes, I do agree that finding the right person is not easy, as it’s a very specialized role.

5 Likes

Thank you Scott (and ICON team) for the update, that’s really nice to hear.

1 Like

Agreed and I’d echo Scott’s comments. It’s a very high priority, and something we’ve been pushing for a long time.

8 Likes

Great suggestions! A technical lead would be very useful for bringing in new developers