Answers from AMA with Nebulas lead core developer Roy Shang

During two AMA live sessions, lead core developer Roy Shang shared his time with the community to talk more about Nebulas and to answer the communities questions. Roy will continue the AMA series in the future but in the meantime, below is the list of questions we received along with answers.

When Roy continues the AMA session, we will let our community know and we hope you join us in the future!

If you have not yet watched the AMA sessions, here are the links:

Be sure to subscribe to our YouTube channel where we will be publishing more videos in the future! https://www.youtube.com/nebulasio

If you have additional questions that are not answered here, visit the weekly AMA on reddit here: https://www.reddit.com/r/nebulas/comments/90dzpy/nebulas_weekly_ama_constructive_suggestions_july/

The questions below are in order received. In total, there are 59 questions submitted over the course of two AMA sessions. Some of the questions received were very similar and the answers were duplicated accordingly.

Below are the questions highlighted in bold with the responses following:

“Why make an unfair voting system, giving the opportunity to the supercontributor to win money by voting over their referal ? you can’t be judge and have interest in the ranking.”

Nebulas chose not to discriminate from users and developers. We believed that a developer and user should be treated equally and be allowed to participate in both programs. We do however agree that there needs to be changes in the future. The results from season one will help us look for better solutions for Season 2 and beyond.

“When would Nebulas support a smart contract referencing an existing deployed contract?”

This feature is in the testnet and will be available on the mainnet very soon. Upon release, expect a Twitter notification at twitter.com/nebulasio and on our weekly report at Medium.com/nebulasio.

For a example of contract-to-contract intergration, visit https://github.com/nebulasio/wiki/blob/master/smart_contract.md#call-between-contractssince-110-testnet

“When can we expect the functionality to call contracts from within contracts?”

This feature is in the testnet and will be available on the mainnet very soon. Upon release, expect a Twitter notification at twitter.com/nebulasio and on our weekly report at Medium.com/nebulasio.

For a example of contract-to-contract intergration, visit https://github.com/nebulasio/wiki/blob/master/smart_contract.md#call-between-contractssince-110-testnet

“Currently, there is a contract with over 3 million transactions, but the usage outweighs the entire Nebulas ecosystem, which makes it obviously fabricated, are you concerned or doing anything to prevent spam-like usage?”

Spam usage is a difficult situation to counter. If Nebulas has clear evidence that a user is fabricating results that violate the terms of service for the Nebulas Incentive Program or Super Contributor Program, we will take the proper measure. For the month of June, Nebulas did remove user(s) due to evidence of terms of service violation and made a public announcment of it located at: https://medium.com/nebulasio/junes-monthly-super-contributors-b5ae67489e7f

“The developer incentive program has rewarded “unpolished” dapps that have secured transactions from addresses with a high NAS balance, this system seems easily exploitable, where the rich can easily make themselves richer by voting on their own dapps — are you doing anything to increase fairness for developers that don’t have a large balance, but who are making quality dapps?”

The ranking algorithm looked at much more than account balance for overall results. For more information on the used algorithm, please visit https://nebulas.io/incentive_spec.html. Some of the approved DApps did not have polished products but we still deemed deserving of rewards due to the result of the algorithm and manual review.

Now that season one is complete, we can further review the results and see what we can improve upon. We know it was not close to perfect and we are striving for great improvements during season 2.

“The recent spike in transaction volume has caused many mainnet issues — including server timeouts, 503, 404 errors, long load times, contract execution errors — what you doing to ensure that stability is maintained as usage increases?”

The Nebulas mainnet is constantly being reviewed and maintained by the core developers and stability is of the utmost priority. Since Nebulas is still in its early stages of development, we are aware that there will be issues from time to time and we do our best to make the proper adjustments as quickly as possible.

“A lot of developers are concerned that there is bias and favoritism towards Chinese dapps, is this true? If so, is it your intention to primarily serve the Chinese market?”

It is no secret that the founders have very strong Asian backgrounds previously working for some of the largest companies in the world. They still have a very strong presence in Asia and it makes sense that the majority of DApps developed did come from Asia. Nebulas however did not have any bias and developers around the world were treated with no bias. This question was further explained in a open letter to the Nebulas community located here: https://medium.com/nebulasio/an-open-letter-to-the-nebulas-community-b1c82464f0b3

“The super contributor program is easily exploitable, with judges being incentivized to pick dapps that will reward them, rather than high quality dapps — this is clearly unfair for developers who aren’t well connected, is this a concern to you? Is there anything being done to prevent this?”

Nebulas chose not to discriminate from users and developers. We believed that a developer and user should be treated equally and be allowed to participate in both programs. We do however agree that there needs to be changes in the future. The results from season one will help us look for better solutions for Season 2 and beyond.

“What JavaScript, TS, or other languages bindings and tools are next?”

Tooling is a big factor for development on the Nebulas platform and do plan on releasing Nebulas specific tools in the future. One reason that Nebulas choose Javascript for the first smart contract language was due to its’ popularity and existing infrastructure. Most JavaScript developers found Nebulas to be very welcoming to their existing education. In the future, Nebulas does plan to support smart contracts written in multiple languages.

“Compare nebulas explorer with ethereum explorer, there is no internal transaction in it. As a dapp developer, this is important for debug, will this feature be added in the future?”

If this feature is requested by the community, the Nebulas core developers will review it and look at the feasibility. Nebulas is actively accepting proposals for improvements to the network. To submit yours, please visit https://github.com/nebulasio/NIPs

“How does local storage work compared to Ethereum? Does the code get compiled into bytecode?”

Local storage on the Nebulas blockchain works in a similar manner. At this time, all smart contracts on Nebulas are not compiled into bytecode since they are executed via the JavaScript V8 engine. In the future with LLVM integration and other supported languages, we will compile smart contracts.

“What’s the importance of dapp and how does it help or affect the growth of nebulas project.”

DApps have a major role in the Nebulas ecosystem. At the core of Nebulas, we are developing a platform robust for the future of Decentralized Applications — DApps. We believe for a blockchain ecosystem to thrive, it required utilization by a high volume of users. These users may interact with the blockchain for a multitude of reasons but we believe DApp interaction is the strongest use case.

“How does Nebulas force work? I haven’t seen such a system tried anywhere else, are forks still possible by user choice?”

A full review of Nebulas Force (NF) will be coming in the next few months which will go into greater detail. Essentially, NF will allow the core software that Nebulas runs on to be updated based on developer, community and core developer requests. This update will happen transparently and seamlessly with no user intervention.

There are many different types of “forks” in the blockchain world but we will focus on the most common which are due to the choice of the community wanting something different from the existing platform (ETH vs ETC for example). In this case, yes a fork is possible since the source code and chain data for Nebulas is public information and available for all. It will be upto the new community fork to sustain the newly created project.

“Please tell me what is the best way to debug smart contracts now?”

Nebulas is working on net tools to assist with debugging. Currently, Nebulas does support debugging via printed log from a local running instance of go-nebulas. The logs are located in the ‘log’ folder under go-nebulas. To print a message to the log, you can utilize the console.log feature in your testing smart contract. Using a grep command trailing the log also makes it easier to locate your specific log results.

“Based on developer feedback on Slack, Telegram, and Reddit, some developers seem to think the current sorting algorithm is flawed/unfair. What steps can the team take to be more transparent with developers who are investing time in building NAS dApps and feel discouraged?”

We understand how some developers feel and we are examining how we can be more transparent in the future.

Any quality non-approved DApp should send a email to contact@nebulas.io and include the contract address your full name and the rejection reason. The team will re-evaluate the DApp and give a more precise reason for non-approval. The use algorithm looked at many characteristics such as quality of wallets, how many unique wallets and much more. For more information on the used algorithm, please visit https://nebulas.io/incentive_spec.html.

Now that season one is complete, we can further review the results and see what we can improve upon. We know it was not close to perfect and we are striving for great improvements during season 2.

“How Nebulas will do in generation Blockchain the next step?”

Nebulas will be ready for the next generation of blockchain technology. From the ground up, Nebulas was designed to be a platform for the user and developer as well as being upgradable to the future needs of all.

“智能合约中 会考虑开放secp256k1相关函数么? 比如 secp256k1.verify(msg, sigObj.signature, pubKey) 用户可以自己做公钥验证。可以用来保证数据安全和防刷单

Translated: Will open secp256k1 related functions be considered in smart contracts? For example, secp256k1.verify(msg, sigObj.signature, pubKey) users can do their own public key verification. Can be used to ensure data security and anti-slip”

Nebulas has a crypto library available for smart contracts to interact with. For more information about the crypto library, visit https://github.com/nebulasio/wiki/blob/master/crypto.md

If you need additional features, Nebulas is actively accepting proposals for improvements to the network. To submit yours, please visit https://github.com/nebulasio/NIPs

“How many protocols in the Nebulas?”

If we are talking about consensus algorithm, Nebulas is currently utilizing Delegated Proof of Stake(DPoS) with a migration to Proof of Devotion (PoD) in the future. If this is not the info you are looking for, please leave a message or checkout our development wiki at https://github.com/nebulasio/wiki/

“Hi, I’m interested in developing a social platform on Nebulas. UX isn’t great in blockchain, especially for consumer dApps like social platform. For example, i don’t want my user to pay (gas fee) for typing a comment. Does Nebulas have any solution for this?”

Nebulas understands this issue and knows the entry barrier is a issue. Nebulas does have ideas for this issue and is actively looking at many solutions. More information will be released in the future.

“Hi, I’m interested in developing a social platform on Nebulas. The current bottleneck of blockchain is scalability. Before I choose a platform to develop on, what is Nebulas’ plan for scalability ? (the current 2000 TPS is not enough). I read that DAG was implemented, does it mean scalability is proportional to user/dApps adoption ? And can it scale infinitely?”

DAG is one solution to help throughput but is not a solution for infinite scaling. We do understand that for blockchain to be truly successful, it must be capable of handling a very high volume of transactions per second. We also believe the final solution should not compromise decentralization. At this point, Nebulas is focused on integrating the core features while exploring ways to increase the overall performance. We are confident that a solution will be implemented before TPS is a bottleneck on Nebulas.

“如何去除币圈的泡沫,引导大家落实到底层和应用。”

Translated: How to remove the bubble of the currency circle and guide everyone to implement the bottom layer and application

Time is a big factor to the current position of cryptocurrency and blockchain technology. In the near future, we will likely see the more advanced platforms take a bigger role in the future of this continuously evolving technology.

“請問日後會推出, 能在 NAS nano中直接調用nebPay.simulateCall的功能嗎?”

Translated: Will it be introduced in the future, can you directly call the function of nebPay.simulateCall in NAS nano?

A nebpay request should trigger your mobile wallet.

“I created a dapp — FoodFights, that is an experimental turn-based game, which gathered around 150 transactions, but was rejected by the sorting algo. During the same week, I know of at least two dapps that were low-quality replicas/copies of other dapps, that received 4–20 transactions, and yet were accepted — how is this possible? What incentive do developers have to make good dapps if it seems to be more based on lottery than quality?”

Thank you for making FoodFights! We truly hope the community enjoys your game and you continue to pursuit additional DApps on Nebulas!

Any quality non-approved DApp should send a email to contact@nebulas.io and include the contract address your full name and the rejection reason. The team will re-evaluate the DApp and give a more precise reason for non-approval. The use algorithm looked at many characteristics such as quality of wallets, how many unique wallets and much more.

For more information on the used algorithm, please visit https://nebulas.io/incentive_spec.html.

Now that season one is complete, we can further review the results and see what we can improve upon. We know it was not close to perfect and we are striving for great improvements during season 2.

“What should we deploy Dapp on Nebulas instead of Ethereum?”

Nebulas believes that blockchain rewards should give incentives to ones that make the ecosystem thrive — the users and developers! By the end of this year, Nebulas will release the official Developer Incentive Program (DIP/NI) along with Proof of Devotion(PoD) which will actively reward quality DApp developers and even quality users.

In addition to giving incentives to the developers and users, Nebulas has significantly lowered the entry barrier of DApp development by using JavaScript for smart contracts and other languages will be supported in the future. We recommend exploring what Nebulas believes in and what we have to offer when compared to other blockchain projects and you can make your own educated decision. We will be waiting for you.

“Many Western / English speaking developers feel the incentive program favors Chinese speakers / dapps / natives — is this true?”

It is no secret that the founders have very strong Asian backgrounds previously working for some of the largest companies in the world. They still have a very strong presence in Asia and it makes sense that the majority of DApps developed did come from Asia. Nebulas however did not have any bias and developers around the world were treated with no bias. This question was further explained in a open letter to the Nebulas community located here: https://medium.com/nebulasio/an-open-letter-to-the-nebulas-community-b1c82464f0b3

“When can Nebulas support Oracles and inter-contract call?”

The contract-to-contract feature is on the testnet and will be available on the mainnet very soon. Upon release, expect a Twitter notification at twitter.com/nebulasio and on our weekly report at Medium.com/nebulasio. Oracle support is also in the works and we will announce more information shortly in the future.

“1.星云何时可以开始挖矿?2.如何成为星云的节点?求教程。

Translated: 1. When can the nebula start mining? 2. How to become a node of the nebula? Ask for a tutorial.”

Nebulas is currently running Delegated Proof of Stake(DPoS) for block minting. All minted coins go into the Nebulas Community fund. In the future, Nebulas will move to Proof of Devotion (PoD) which will allow for block minting from users and developers. More details will be announced in the future. When PoD comes online, we will publish a tutorial for node setup.

“I’ve seen dapps win top 3 rewards with only 4 transactions, from only 1 address, but that address had over 10k nas — is that all it takes to win? To have an address with a lot of NAS? Doesn’t that favor the rich, without discovering high quality dapps?”

The ranking algorithm looked at much more than account balance for overall results. It also looked at many characteristics such as quality of wallets, how many unique wallets and much more. For more information on the used algorithm, please visit https://nebulas.io/incentive_spec.html. Some of the approved DApps did not have polished products but we still deemed deserving of rewards due to the result of the algorithm and manual review.

Now that season one is complete, we can further review the results and see what we can improve upon. We know it was not close to perfect and we are striving for great improvements during season 2.

“When would Nebulas support oracle node?”

This feature is very important and is in development. Once it is ready for testing, it will be available on our Testnet and finally the Mainnet. Upon release, expect a Twitter notification at twitter.com/nebulasio and on our weekly report at Medium.com/nebulasio.

“How to upgrade the contract conveniently at current version?”

Currently if you need to use a updated contract, you will need to migrate the data from the old contract to the new one. In the future, we will release more information about contract upgrading without loss of data.

“Has blockchain technology been used in industry’s other than finance?”

Blockchain is making its mark on healthcare, property records, logistics, games and much more. Blockchain is still a emerging technology and all the feasible use-cases have not been fully explored. We anticipate blockchain to power the next generation of the internet, IOT and move humanity forward. We are here for the long haul. Lets see what industry relies purely on blockchain first!

“合约之间的交互,除了跨合约的数据访问,是否支持跨合约函数的调用?

Translated: Does the interaction between contracts, in addition to cross-contract data access, support cross-contract function calls?”

Contract-to-Contract/cross-contract function is in final testing on the testnet and will be available on the mainnet very soon. Upon release, expect a Twitter notification at twitter.com/nebulasio.

For a example of contract-to-contract intergration, visit https://github.com/nebulasio/wiki/blob/master/smart_contract.md#call-between-contractssince-110-testnet

“How to keep the security of transfer data between different contracts?”

Depending on your specific needs, Nebulas does offer functions to be public or private as well as a crypto library available for smart contracts. These features should be sufficient for security. If you think we need additional features for contract-to-contract interaction, you may make a feature proposal at https://github.com/nebulasio/NIPs

“Can you tell about migration from Ethereum to Nebulas blockchain? Is it already available, how to do, etc.”

In the future, Nebulas will support native solidity smart contracts — as well as many other languages. When this is available, you will be able to simply deploy your solidity smart contract on Nebulas and migrate the data over. We hope to offer tools to assist with chain-to-chain data migration in the future.

“什么时候可以用公钥加密信息,对应的人用私钥解密这种与钱包的交互操作

Translated: When can I encrypt the information with the public key, and the corresponding person decrypts the interaction with the wallet with the private key?”

A native messaging service may be added in the future. If you feel this is a important feature that you would like integrated sooner, please submit a proposal at https://github.com/nebulasio/NIPs

“What is the difference between NRC20 and ERC20?”

NRC20 is the native Nebulas token standard that is similar and based on the ERC20. Nebulas uses JavaScript instead of Solidity for smart contract development which leads to the requirement for a different standard.

“How to upgrade smart contract without losing data?”

At this time, you will need to migrate the existing data to the new smart contract. In the future, we will release more information about contract upgrading without loss of data.

“Q2: how to ensure tx neounce is unique in multiple process env which can send transaction to same contract same time?”

The nonce is based on sending addresses rather than receiving address. If you send multiple transactions from one address with the same nonce height, the chain will select either the transaction with a higher gas fee or if they both have the same gas fee, the newer transaction. This leads to only one transaction processed at a time and the chain will process transaction in order chaining the transactions in a row.

“How to update the old smart contracts to use new RNG and inner TX?”

At this time, you will need to migrate the existing data to the new smart contract. In the future, we will release more information about contract upgrading.

“Is that Nas doing any airdrop? someone says join nebulas.io and download wallet and activate wallet than you received 10 nas is that correct?”

Nebulas was doing a airdrop for people who referred new users.

“What’s the different between NAS and EOS?”

It might be easier to explain what is the same. Nebuas and EOS are both public blockchains which are application layers for the next generation of DApps.. After that fact, there is a strong divergence of direction and beliefs. Here are the highlights:

  • Nebulas is currently using DPoS and will transition to PoD. EOS uses DPos.
    This leads to EOS having a small pool of validators vs Nebulas eventually having a large pool of validators
  • Nebulas validator selection will be based on Nebulas Rank. EOS uses a voting system.
    This leads to EOS being tightly controlled by a few vs Nebulas will be more distributed to fairer parties based on their rank.
  • Nebulas currently has 15 second block times. EOS block times are under 1 second.
    This leads to far faster transaction acceptance on EOS. In the future, Nebulas transaction speed will be greatly reduced.
  • Nebulas supports JavaScript smart contract development. EOS supports WebAssembly smart contracts.
    These are both good languages to choose from. JavaScript is much more utilized. Nebulas also plans to support many other languages — including WebAssembly.
  • Nebulas rewards users and developers. EOS rewards the few validators.
    With Nebulas Incentive (NI), Nebulas will reward those who utilize the chain thereby creating a dynamic and evolving ecosystem. EOS will only reward the few block validators. With EOS, this leads to the rich getting richer.

________________

Learn more about Nebulas:

Official website: Nebulas.io
Github: github.com/nebulasio/go-nebulas
Slack: nebulasio.herokuapp.com
Telegram(EN): t.me/nebulasio
Twitter: @nebulasio