Elastos Bi-Weekly Update – 16 August 2019 | | The last two weeks have seen several important events in the Elastos community. As reported, a technical issue in our DPoS consensus mechanism resulted in a temporary pause in our blockchain. The Elastos core development teams responded to and resolved this issue promptly. Part 1 of 3 of an analysis of this event can be found in this weekly with a full analysis coming after our engineers finish their assessment. We also saw the DX Team launch Elastos Academy, a clear and user friendly developer portal for all things Elastos. This launch coincided with ETH Sidechain's deployment to our mainnet for whitelisted developers. If you would like to be whitelisted, please send an email to support@elastos.org. Let's recap. | | Trinity - Fix Trinity Wallet related issues - Transfer of ELA is now working properly - QR code scanning function implemented - Access to transaction details - Optimized UI display - Added a new DApp - Blockchain Browser - Completed the iOS/Android version of the Hive plugin while supporting and verifying the IPFS backend - Added Hive IPFS Client creation and testing in Hive Demo - Verified Trinity using native plugin - In addition to File and Media, other plugins can now use native plugin directly - Optimized the Launcher's display, replaced the App icon and launch page, and removed the unneeded Demo - Currently upgrading the SPV SDK used by the Wallet plugin - Implemented the trinity-cli tool to simplify DApp framework generation Hive Hive Java SDK: - Modified and improved the Java API documentation - Fixed an issue with handling CompletableFuture objects and calling user Callback while file object Read/Write - Bugfix for File Read/Write APIs - Solved the problem that the related interface cannot be called through the root handle - Implemented remote cloud file browser application - Released v-0.5.0 version and released to jcenter maven repository platform Hive Swift SDK: - Improved the validation of return attribute values and scene validation of refresh tokens in test cases - Unified the call processing of the user Callback and the order of the resolve processing of the Promise object - Resolved an issue where the value of the info property of the Client object has not been processed and updated - Added CommitData API with Callback parameter - Optimization of API document generation scripts - Other code optimization - Implemented remote cloud file browser application Hive Native SDK: - New test case for verifying the refresh token scene - Started to use the Fuse file system to implement a remote cloud disk virtual file system application. Currently, only the Linux host platform is supported. DID - The basic test case set of the unit test of the Java SDK is passed, and the coverage of the use case has been improved - Native SDK is under development Carrier - Continued to observe and verify the functional stability of offline messages by running test cases - Simultaneously modified the message from the interface in the Carrier Android/iOS SDK, modified the return value to determine whether the message sent (and received) is online (directly through the Carrier network) or offline (via the Hive IPFS network), while adding simple Demo application for verification - Optimized the initialization of the IPFS key/value storage module that is dependent on offline messaging. By simplifying the initialization and selecting the available Hive IPFS node process (which originally required classification), a new version of Native/Android/Swift 5.3 has been released. - Based on the Message interface modification (by parameter or return value to detect whether the sent/received message is an offline message or an online message), started the CI verification. Product Group - Auxiliary ETH sidechain node Mainnet deployment - ETH sidechain browser UI design and optimization, will start promoting ETH sidechain browser deployment soon - Completed the design of the blockchain browser and the fidelity model of the blockchain browser part of the page - Plan v1.0.2 SPV wallet version and test follow up - Advanced v1.0.2 SPV wallet testing and DPoS candidate list load balancing server - Optimized and improved CR proposal business design - Optimized ELA Wallet functional design, related design drawings have been modified and uploaded to Blue Lake - Completed Trinity icon and splash screen design - CR business process adjustment and optimization - Discuss ela-cli support for main sidechain feasibility, ela-cli is an important part of dev-website, need to speed up the development of sidechain functions, and provide multi-platform compiled version, follow-up will add package manager - Positioning ELA-testnet to stop the block - Sorted out the problems left by Trinity's current version and develop a finishing plan for this milestone - Tracked Mainnet ELA stop block reason and prepared ELA node emergency maintenance plan, DPoS node v0.3.6 upgrade script - Rollback of Testnet ELA/Arbiter/DID/Token/NEO data Main Chain - Fixed the main chain without blocking problems and upgrade, discussed subsequent improvements - CR second stage needs analysis, fourth sprint user story writing - Added the main chain node startup parameters to use files to store the book data, leveldb index in order to optimize the database - Developed a new version of the DID function, 90% completed - Completed partial persistent data access optimization work to determine UTXO cache pool solution - Automated test frame design ETH Sidechain - Go online on the main network, enter the trial phase of the main network, and support community developers to access Elastos Wallet Core Module - Fixed frequent crashes on Android 6.0 - Refactoring P2P reconnection processing mechanism - Developed CR voting function - Fixed the problem of reconnection due to the incorrect balance caused by removing irrelevant output and misjudging the high error rate of bloomfilter - iOS version of the new version of the wallet submission test, mainly to improve the synchronization speed - Android and iOS plus a pull-down refresh triggers immediate sync Test group - Elastos Wallet test for Android version iOS (load slow, flashback, main line business regression test) - Write node autostart, mining, trading, producer registration, producer voting shell script and debugging - Elastos Wallet for iOS to connect to the private chain test synchronization function, reproduce the flashback problem caused by multi-output revenue transactions - Completed wallet batch configuration, single wallet automated transfer script, completed CR registration batch, single automatic registration script - Completed CR voting bulk voting, single voting scripting - Completed CR registration and voting normal path test, currently testing CR voting abnormal test | | Elastos Academy (https://elastos.academy/) launched, offering a one-stop resource for all things educational and developmental for the Elastos Ecosystem. This site covers the entire ecosystem and provides articles, videos, and the links to connect developers to the tools they need to begin learning about and building with Elastos' suite of technologies. This site will continue to evolve with the development of the project and is an excellent starting place for devs and non-devs alike to learn about the extensive building blocks of the SmartWeb. Follow @ElastosAcademy on Twitter and sign up for updates on the site. | | Read the latest Cyber Republic Weekly Report here: https://blog.cyberrepublic.org/2019/08/12/biweekly-update-aug-12th-2019/ After one year, Cyber Republic now enters its Transition Stage with the announcement of two major developments, including the addition of the newest Interim CRC member. Read here for detailed information: https://news.elastos.org/cyber-republic-enters-transition-stage/ Participate in the Cyber Republic forums at https://forum.cyberrepublic.org. All logins are linked to your Cyber Republic login, including the forums and, in the future, your Elastos DIDs. | | -As the Elastos blockchain is now fully functional, we would like to begin sharing our analysis of the event in a timely manner. To best do this, our analysis will be presented in three parts: the first will focus on the actual event, while parts two and three will focus on the temporary and long term solutions. Once the analysis is completed, we will publish a full analysis of all parts in one article on our blog. At approximately 12:13pm EDT, August 7th, 2019, at block height 439,672, the Elastos blockchain experienced a prolonged pause caused by the way DPoS consensus handles large transaction output. While our consensus' PoW mechanism was completely functional, DPoS Supernodes experienced an error that paused the validation and signing of blocks. This pause was designed to prevent forking, and the integrity of our main chain remained intact as our developers swiftly addressed the issue. During this time, no one lost their ELA and no balances were affected. However, individuals could not access their wallets to send or receive ELA. At approximately 1:37pm EDT, August 8th, at block height 439,673, blockchain function resumed, as PoW and DPoS nodes returned to producing and validating blocks respectively. Because most of the supernodes took some time to upgrade their node to the latest release, the subsequent block 439,674 was produced and validated at 9:10pm EDT, August 8th. Soon after, the blockchain was halted again because of inconsistencies concerning lingering invalid transactions and rendered nodes unable to synchronize. Hence, another update was released on the morning of August 9th in order to resolve this issue. As of block 439,680 at approximately 9:37am EDT, the network has been fully functional. The prolonged pause in the Elastos blockchain was not caused by the dysfunction of PoW nodes; rather, it was DPoS Supernodes that stopped validating and confirming new blocks. Due to the unusually large amount of input transactions in some blocks, DPoS Supernodes were unable to properly process blocks within their designated 5-second timeframes, thus triggering the arbitrator view switching and rotation mechanism. After several iterations of view switching and rotation, some Supernodes determined that the previous block had been successfully produced, while others determined that arbitrator switching should continue. At this stage, consensus was not achievable amongst DPoS Supernodes, and the Elastos main chain experienced a prolonged pause. Of course, it is without exception that a prolonged pause is disruptive to the function of our ecosystem. By the same measure, we acknowledge that as we develop the underlying protocol for the Elastos ecosystem, we are in a developmental stage, and have been diligent to use this recent pause to make the necessary adjustments promptly and resolutely, and to pass on the benefits of our learning to the community as transparently as possible. | | Feng Han attended the Nakamoto Finance Series Lecture and presented his first lecture on, "The Blockchain Wealth Code – Quantum Ontology Reconstructs the Future Financial World." The theme of this lecture was the digital wealth era. The major points are as follows: 1. What is the nature of wealth? 2. How has human wealth evolved? 3. Why does "privatized data" generate wealth more effectively than "publicized data"? 4. Why will personal data become wealth usher in the digital wealth era? | | Feng Han attended the Nakamoto Finance Series Lecture and presented his second lecture on "The Blockchain Wealth Code – Quantum Ontology Reconstructs the Future Financial World." The theme of this lecture was how wealth is generated. The major points are as follows: 1. Scarce resources become wealth 2. The mass production of the industrial revolution creates wealth 3. Wall Street Financial Markets create wealth 4. Data will create wealth | | Clarence Liu, VP of Development, spent several days in Kuala Lumpur, Malaysia, discussing Elastos technologies with the ride sharing and solar energy industries. He was also a guest panelist at Bloconomic (https://bloconomic.com/) on the panel for Creating Blockchain Talent for IR4.0. He spoke about Elastos' CR Regions project to create regional teams and spread blockchain education while forging partnerships around the world. The Malaysia CR Region team also ran a booth and presented on the ETH Sidechain and the strides that Elastos mainchain has made in hashrate, making it now roughly 3x more expensive to attack than Ethereum. | | Singapore – September 11 – 12 | | Elastos will be sponsoring and exhibiting with a booth at Invest Asia 2019. "Invest: Asia is an exploration of the people and topics driving this market. CoinDesk is thrilled to be returning as a partner to TechXLR8 Asia by co-locating Invest: Asia with 5G Asia, IoT World Asia, NV&SDN, the AI Summit and Project Kairos Asia September 11-12, 2019 at the Marina Bay Sands Convention Center. With a dynamic expo floor, a special Asia edition of CoinDesk Live and plentiful networking opportunities, Invest: Asia will further explore how Asian crypto markets function and impact the world at large." For more information: https://www.coindesk.com/events/asia-2019 | | Elastos will be exhibiting with a booth at the Malta A.I. and Blockchain Summit in November. "The Malta A.I. and Blockchain Summit has secured its place on the global tech calendar as the premier platform for companies to exhibit, network and engage in debate. More than 14,000 exhibitors, investors, suppliers, and thought leaders have come together, forged new partnerships, and sealed lucrative business deals. The third edition of the summit takes place on 7 to 8 Nov 2019, offering more networking, more high quality content, and more business opportunities. The AIBC Summit offers additional opportunities through a number of global satellite events and networking dinners, as well as producing a bi-annual publication and news site packed full of in-depth interviews and articles, bringing brand exposure and visibility to companies looking for a place to show the world what they do best. The variety of content offerings also provide a launch-pad for thought leaders keen to be a part of the conversation in this fast-paced industry." For more information: https://maltablockchainsummit.com/ | | Rong Chen recently shared some insights with the community on Telegram. A version of those insights have been reproduced here. For the past two decades, the guiding principle of operating system design -at least for Elastos - has been simple: computation is orthogonal to communication - that is, it is independent of communication Yet I am really amazed --or shall I say frustrated -- by how few people really understand this essential concept. In a computer architecture, CPU handles the computation and hard disk handles the storage (memory is merely an optimization layer of the storage). Whereas the communication, called Bus in CS jargon, is very much hidden from programmers. For example, a computer task (called Process in CS jargon) accesses C: drive, D: drive, etc. without knowing whether C: or D: drive is using IDE, USB or TCP/IP communication protocols. If we believe that the Elastos Smartweb is a network computer, then how we apply the principle of "computation is orthogonal to communication" is critical. When you see, http://, https://, ftp://, p2p://, do you realize that there is something fundamentally flawed with the current Web? When someone brags about being Turing complete, they are referring to computation. When someone claims to build apps or dApps, they are still talking about computation. In our context, computation has not much to do with network protocols. Many people say that a blockchain is a network protocol, yet they try to build dApps on top of blockchains. There is an obvious contradiction here. ~~~ Twenty five years ago, Netscape founder Marc Andreessen said on CNN that the browser is the new OS and that Windows is a bunch of not fully debugged device drivers. A quarter century later, could we say that Elastos Browser is the new Internet (virtual machine) OS, whereas Linux and Windows are two bunches of almost fully debugged device drivers? Elastos Carrier consists of two things: an abstraction API layer which separates runtimes from communications, and an implementation of P2P protocols. People might only see the BitTorrent-, eDonkey-equivalent aspects of Elastos P2P. Similarly, Elastos Hive consists of two parts: an abstraction API layer of decentralized storage, and an implementation of IPFS. In the real world, telco carriers prevent consumers from knowing their phone calls are being routed through satellite or undersea fibers. Data encryption algorithms or surveillance technologies are all agnostic to different brands of smartphones (in Elastos' case, different virtual runtime distributions). Now you could tell the rest of the stories about Ethereum and NEO sidechains. What's my point? There is an old Chinese wisdom: "He who does not compete is above all competitions." Companies build products to compete with one another. Elastos is an open source platform and a Cyber Republic community. The term, "Organic Ecosystem," means the circle of life, where new replaces old, and life replaces death. Different products meet the needs of different market segments. The products that the Elastos core team builds are merely boilerplates or reference designs for others to improve upon or even to replace. In retrospect, the death of Netscape was one of the greatest things that happened to the World Wide Web. Finally, let's see the destinies of Elastos and Blockstack. Does the Elastos community worry much about the end of the Elastos Foundation in two years? Could we say the same to the Blockstack company which is backed by multiple reputable venture capitalists? There is only one Web on Earth. What about Web3.0? I hope we could at least agree on one thing: this is not a technical question after all. | | | |