City of Zion (CoZ) developer Sérgio Flores, better known as Relfos on Github and the NEO Discord, is the creator and maintainer of the neo-debugger-tools project. He’s also the creator of the upcoming NEO-based blockchain game, Nachomen, and co-founder of Phantasma Chain, a content distribution and data storage blockchain.
Sérgio originates from a game development background, where he worked on game engines for simulators used in multiple industries, including for education and military purposes. Sérgio also creates games for the public under his own game company, Lunar Labs. Lunar Labs has multiple game releases including Minimon, a monster hunting RPG released on both Steam and mobile devices, with over 2 million players since launch.
Introduction to Blockchain & NEO
Despite being a highly regarded blockchain developer today, Sérgio’s first glimpse of blockchain didn’t really grab his attention: “I was introduced to the blockchain a long time ago, when it was only used for currency. At that time I did not pay much attention to it, but some years later I heard about Ethereum and smart contracts. As a programmer the whole thing seemed to have tons of potential, so I started learning all I could about it.”
Ethereum’s popularity as the go-to smart contract platform was apparent, but the requirement to code in Solidity was less than ideal. Sergio noted: “At that time I was checking different projects and found out about NEO, which promised to be a competitor to Ethereum. One of the things they had were smart contracts written in ‘normal’ programming languages like C#, Java, Python.”
CoZ dApp Competition Winner
Swayed by the accessibility offered by the NEO compilers, Sérgio took the same first step as many others in his position: “I liked the idea, so I read a bit more, found out about City of Zion and got in contact to ask some questions.”
Only a short week after reaching out to CoZ, they launched their first dApp competition. This provided the motivation for Sérgio to work on a previous concept of his, which turned out to be the starting point for Phantasma. The dApp aimed to provide users with a way to securely distribute their data, whether it was emails, games or other files, and went on to be one of the competition prize winners.
Sérgio comments: “During that initial prototype I toyed around with IPFS, but since it lacks some kind of incentivization mechanism it would not work in long term.”
Coupled with NeoFS being pushed back on NEO’s official roadmap and the cost limitations of storing data on chain, Sérgio moved to provide his own, incentivized solution: “I decided to expand Phantasma to combine distribution of content with storage, and to allow other NEO projects that also need to store things to use it.”
NEO Debugger Tools
It was during the development of Phantasma that the NEO Debugger came into existence. Sérgio commented: “I soon understood that the development tools for NEO were still quite primitive at that time, and I was faced with lots of weird issues while trying to make my smart contracts. I decided to create the NEO Debugger to help with that. Later I showed some .gifs of it working to CoZ, and they liked it so much that I was invited to join CoZ.”
The NEO Debugger allows developers to load their newly compiled .avm smart contracts, which can then be run through the debugger to detect issues. Since the debugger is checking a compiled .avm file, it can be used with smart contracts developed in any of NEO’s supported languages. They must only be run through the appropriate compiler first.
One key feature designed by Sérgio was an optional mode that uses a modified version of the official NEO C# compiler, which generates some additional annotations as a .neomap file alongside the .avm file. These annotations should prove very useful to developers, as Sérgio explains: “They allow the debugger to show developers the original source code of the contract, because otherwise they will have to debug directly with NeoVM opcodes, which is not very user friendly.”
Sérgio also submitted patches to the neo-boa compiler, adding the same functionality for Python smart contracts. Although he expressed a desire for other NEO compilers to be modified to create .neomap files for use in the debugger, Sérgio mentioned his biggest priority is a complete rewrite from scratch.
The rewrite aims to remove the dependency on Windows in addition to other refinements. Sérgio also plans to add an interesting new tool: “Sometimes I want to debug contracts using real data instead of isolated data in the debugger, so the ability of attaching the debugger to external programs is a feature coming in the new version.”
With Sérgio busy working on the debugger rewrite, there is a great opportunity for any developers to contribute by patching other NEO compilers to produce .neomap files. Guidelines for this process can be found here. Sérgio wants to encourage any smart contract developers that use the debugger to submit any improvements that they feel would be useful to others, based on their own experience.
Sérgio also noted some of the struggles encountered by less experienced developers on NEO in general, and how the community could help: “I think one thing that could really benefit the community as a whole is having contributions not only for the code, but for documentation.”
He continued: “While there are some tutorials in the official NEO site, along with some documentation, many new developers still struggle in part because there are lots of concepts that a person needs to grasp before diving into NEO development.”
When asked for any closing thoughts, Sérgio decided to offer some advice to any budding developers amongst NEO News Today readers: “I would just like to remind the readers that anyone that wants to join the community of developers can, even if they don’t have any idea of how they can help yet.
It’s just a matter of joining the official NEO discord, everyone hangs out there, then search one of the many channels and start asking questions. The community is very active, there’s always someone answering questions, and there’s always new tasks to be made, new projects appearing etc.”
More information on the NEO Debugger can be found at this link.
More information about Sérgio’s turn-based Luchador battle game Nachomen can be found here. Nachomen uses non-fungible tokens on the NEO blockchain to allow players to collect, train and battle their Luchadors, and is due to enter public beta in the near future.
More information on City of Zion can be found at the links below.