Currently, most development on the Steem blockchain is done by Steemit Inc. in their steemit/steem repository. This makes it hard for outside developers to produce patches, as continuous integration is disabled and Steemit Inc. developers don't always have time to look at every pull request. And if the developer wants to submit their changes to Utopian, they are out of luck.
So for the last days, I was busy creating a community repository for the Steem blockchain code, complete with continuous integration, tests, and documentation.
Test coverage is automatically reported and creating additional tests for the blockchain is encouraged.
Many checks are performed to ensure that code quality is up to par.
The plan for this new repository is to be a hub for all developers to contribute to. They get immediate automated feedback and later reviews from their peers. Accepted pull requests can be sent upstream to steemit/steem. This way, the community repo also serves as a buffer to reduce the noise for dedicated blockchain devs.
There are no goals to fork Steem into two different versions, but rather Steemit Inc. changes can be merged back and reviewed by the community, same as all other contributions, allowing for more eyes on every change in Steem blockchain code.
My hope is that many will participate in this effort to further the development of the Steem blockchain itself. This allows more people, especially witnesses and developers, to learn how to code for the blockchain itself and teach each other best practices.
Later goals could be:
- A community testnet with the latest changes.
- Expanded documentation on how to create a hard fork with additional tooling for it.
- Bounties for community-requested features.
How to contribute
Please comment here with your github username if you want to be added as a reviewer in the organization. Everyone is free to fork it and create pull requests, the continuous integration system is set up to build all pull requests. All ideas and suggestions are welcome!
If you need chat support, ping me in the SteemDevs discord: https://discord.gg/a8RQkaw
This is a great project, and one I feel is definitely needed. The post itself is well written and illustrated.
I would have liked to see more of it, however. I would like to hear more both about the current situation and your plans for the future. In Utopian Blog category posts, we strive to make the content accessible to as wide an audience as possible. That means folks who may encounter this post without significant knowledge or experience of Steem and/or Steemit inc.
This is, potentially, a very important post. As such, it may have a greater reach than you anticipate. It is always good for the text to be welcoming to new readers with a bit of background.
Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.
To view those questions and the relevant answers related to your post, click here.
Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.
Thank you @didic!
I wanted to write more but felt most of it was getting redundant pretty quick, so I am hoping that people will ask questions so I get a better feel over what information is needed by them.
I hope that I find ideas for followup posts and putting it into bigger context from an outside perspective is one such great idea :)
One aspect you didn't cover, which is always good to have in Blog category posts, is yourself. Why did you feel this was needed? What made you want to do it? The personal aspect is one people often shy away from, but I find it always makes for a more compelling blogpost. To me, that's a big differentiator between Blog and, say, Dev category posts.
That probably comes from me being a developer and not a natural writer :) I want to develop for steem and so far disliked the process and thought "maybe others are as discouraged as I am? Let's fix it!" and so I spend a few days to improve things and get this organization going.
Thank you for your review, @didic!
So far this week you've reviewed 11 contributions. Keep up the good work!
I am not a techie guy but this is great. Thank you for doing this.
We need the decentralization and this is one way to do it. Put more of the core development upon the community and depend less on Steemit. That is what we need.
I hope to inspire more community developers to contribute.
You were already on my list of articles as a witness.
I am not putting this project on the list to try and get some more recognition for you.
It is a wonderful idea. Look for them over the next few days.
Is there a communication channel between the community version and the one maintained by Steemit Inc.? Are the contributions going to follow issue tracker from the upstream so that the merged codes have higher chances to get merged in the upstream?
Anyway, the idea looks amazing, and I feel that recently we can see more effort from the community. Looking forward to seeing if it becomes successful in its goal.
Communication channels are definitely a great idea! I first want to gain some traction and get things to show for before I open up direct communication. But the SteemDevs Discord has Steemit Inc. people on it and I would enjoy if that place can become one of such channels.
I follow the issue tracker and I hope that others who do get on board. By being a quality gate and feedback hub alone, it should help in delivering coherent pull requests, as per the contributing.md
I plan to add many other highly reputable people to the organization and get them all to work together. Wish me luck ;)
Great initiative. Been meaning to read up on the codebase and maybe look at parts of the codebase from a security perspective. Just looked at part of the code for the first time ever, so I might be a bit off on some of my remarks here, but at first glance, it looks like adding a few compiler flags to the code quality checks you discussed might not hurt the code. I was unable to check this thoroughly, as I didn't (don't) get a working commandline compile working on seperate cpp files due to an include of hardfork.hpp that I don't know where to get from.
The thing that jumped out at me most were some things that to me looked like code quality issues that the -Weffc++ compiler flag of the GNU compiler should be able to catch. Two other code quality checking flags I suspect could yield usefull improvement hits would be -Wshadow and -Wold-style-cast. Each of these three flags, I know from experience could potentially end up exposing bugs with security implications. As said, I couldn't really check because of the hardfork.hpp include.
Think I'll try to get acquainted with the codebase a bit over the coming weeks to see if I can get its structure and coding philosophy internalized.
Awesome stuff! The compile flags are set inside the makefiles that I didn't touch so far. But I noticed that a linter found a few hundred potential issues. I plnned to play around with the internals over the coming weeks.
If you have compile issues, talk to me on discord, I can help.
And if you give me your github username, I add you to the project as a potential reviewer.
Give me a few weeks to get better acquainted with the code base. Want to first figure out if I'dd rather be proposing or reviewing.
Great initiative, this is much needed!
Count me in! GitHub : stoodkev
Nice! You got an invite :)
I am obviously no tech guy and don't understand most of the stuff of this post. However, if I understand correctly, this will lead to more people being able to check for mistakes/bugs/possible errors - And especially after the last weeks, this is something one can't appreciate too much. So, thank you :)
Exactly! One of the goals is to peer review all code that is done when it is done and not when hard fork time happens to be. This could help in finding bugs. And it definitely helps in educating new developers.
I'm really excited to see you announce this! Being able to follow along with others who have a handle on blockchain base code and those who are just learning is a great way for each of us to get better~
This is exciting and overdue! Whoot, thank you very much.
This is a great initiative, thank you for your work :)
This is really a great idea. I’m so glad you’re one of our witnesses.
Your innovations, ideas and witnesship is so splendid, you're one of my favourite witness buddy.
Steemit is really evolving and your contributions to make it usable and worthwhile is totally outstanding. Thank you
I wouldn't comment my username because I feel I'm not up to standards to contribute but my coding mentor is a Steem witness, I'll have to relate this post to him.
I'm always a big fan of any initiative that is open source and I must say that I love this idea and creativity!
Posted using Partiko Android
I think this is a great idea although I would hope you eventually take it a step farther. The community edition should be what the witnesses run and steemit inc should submit their code to it. We currently have a single organization making all the calls and it really shouldn't be that way. SMTs are a great idea but a perfect example of steemit inc telling the rest of us what the chain will be.
This might or might not happen in the future. But that depends on all of the witnesses and needs active developers outside of steemit inc. So regardless of what the main repo is, engaging more devs is the first goal in my opinion
Agreed. You can add me as a potential reviewer if you want. My github username is voorash.
In line with other commenters, I have to state that I have no clue about the technical details here. But from what I get, this is a great initiative that could really bring the community of devs here into the boat of developing the blockchain itself. Great stuff, and much appreciated, especially after the HF20 chaos.
This is an excellent initiative, and I commend you for taking it. One of the gripes I had about HF20 adoption was the lack of rigorous testing. While that's not directly addressed here, something like this community hub is going to go a long way to working out issues that would otherwise arise if new features are folded into a future hardfork. The testing will already have been done on the back end and integration will already be addressed.
Excellent job, man. Keep up the great work!
Thanks for doing this @reggaemuffin! This is yet another great step in the direction we need to take
Excellent idea! GitHub: gadrian78
Thanks for Resteeming my dear friend!! Otherwise I would not have seen this :)
A resteem is very little for the benefit this project could mean to the development of the blockchain, from the community part, if it gets enough traction and devs involved.
Every little thing can add value
For me Resteem like word of mouth 👄
Thank you, I hope that gets more people to contribute to steem over time. :))
Brilliant work as usual @reggaemuffin :)
Count me in - Github username is ausbitbank
Awesome! You got mail :)
Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!
Get higher incentives and support Utopian.io!
Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).
Want to chat? Join us on Discord https://discord.gg/h52nFrV.
Vote for Utopian Witness!
Great page. Super glad i found you. Very informative you are.
Thank you for your contributionCongratulations on your first contribution to Utopian!
Upvote chronicled's comment to Support![Disclaimer: This is not official info from utopian , If you feel something need to improve please comment here]
Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
Feel free to join our @steem-ua Discord server
This covers code testing?
But not end 2 end, functionality, etc. , I guess?
For that there should also be a test area, as those where the critical red ones in hf20.
This is a first step, testing already existed and I automated that process.Adding new tests would now be the task of everyone who wants to dive into the steem code :)
Sounds fun, count me it.
Man this is awesome. I am not a git hub guy but definitely a STEEM guy.
I just voted you for witness and everyone else here should as well.....in my minnow opinion.
so an open sourced version of steemit huh? sounds interesting
Yes! I love it when people take matters in their own hands. A thriving developer community is much needed and I appreciate your attribution towards this goal.
This is a much needed thing. Thanks!! Hopefully this will also impact documentation, which is sorely lacking...
I think it is a good idea but as usual, steemit inc will decide to run/merge which PR
Nice! First time I look at Steem main repo, I'm shocked that there is many stalled branch and have been wondering how they keep maintaining the project 🤔. Glad that there is an initiative to make friendly forked repo on it.
Ah yes, is there Pull_Request_Template for it to welcome new contributor (or just to help it separating into multiple categories)?
Also for the issues board, do you plan to disable and encourage the new contributor to look/discuss at original issues board? Or want to keep it enabled but make a strict rule to always link original issues?
One of the first things I did in the new fork was cleaning up 150 stalles branches 🤷♂️ we can always get them upstream if we need but the fork is much cleaner.
I plan on improving contribution documentation but the more we change, the more annoying it might be to get things merged upstream as we have to cherry-pick things. But generally I plan for this fork to have as much help for contributors as possible.
Regarding issue boards, I enabled it so that the fork issues can reflect what developers work on and so we can asdign things, post bounties etc. And referencing issues from upstream is encouraged but by no means required.
But that is just my take. I hope many who join are vocal about tgeir opinion on how it should be run and we do great things together. Discussion openly happening on chain is in any case encouraged.
good stuff @reggaemuffin
github handle : bobinson
So far the repository is cleaned up from stalles git things and ci is enabled, adding extra unit tests would probably be one of the first contributions to do.
ok. IMHO if we can priorities the areas for which tests are not existing that will be the best thing to do. @inertia has given some feedback / pointers here : https://steemit.com/witness-category/@bobinson/transaction-generation-on-the-steem-testnet-step1-root-cause-analysis#@inertia/re-bobinson-transaction-generation-on-the-steem-testnet-step1-root-cause-analysis-20181006t180941432z
@yuriks2000 has completed setting up condensor etc and connected to the latest master (not the v0.20.5)
Excellent! Github: propertunist
In terms of organising testing of the code (human testing) - I think it would be good to have some kind of a hub that can be used to track the process so that testing isn't duplicated and that we have an overview of what is being done and what needs to be done. I think this site called testquality.com looks interesting for this and they have free accounts for public repos on github.
Love the idea.
hey fantastic idea, my github is jonigirl