Fuserleer,So apparently you'll jump at the arrogance remark without answering any of my questions, this speaks quite loudly. I definitely do have issues with my own arrogance, you're correct in stating that to me; though I tend to see it as not many can debase me, so therfore my mind runs unchecked. I would define arrogance as being unwilling to listen or comprehend new information, which I don't have much an issue with as long as the new information carries weight of the proper truth.
My block tree concept is not the same as yours, more so, an organic structure that grows scale ability as the network requires it, that allows live networks to be merged into one tree; that's where the concept came from. I'm not really aiming to defeat VISA off the bat, VISA's tx/s is mainly all network packets, it takes a few days for the funds to actually transfer, so 5k requests per second isn't a huge overhead in my opinion.
Personally, I've been watching you for some time Fuserleer. I don't necessarily want to be a part of your project, but was more so looking into finding a means of collaboration, or a meeting in the middle. I don't really care for your choice of name, wouldn't really ever want to own something called "Emunie" (just my opinion, don't get offended), nor that you ran an ICO among many other things.
I hope you can maybe see through emotion and understand my statement "your arrogance will be your downfall" is not hostility, consider it an outside opinion. I really don't have any issues with you, I actually have seen many similarities in our pursuits; hence why I have been attempting to commence contact with you. Not here to spit on your ideas (though you seem to be quite the one upper), I was asking constructive questions to possibly help you think differently. So, would you mind answering some of my questions? If you choose to ignore me again, that's perfectly okay; I'll just consider that a sign that there is no collaboration that could be had between us.
1. If you've been programming for 25+ years, why would you use Java? It over simplifies programming in my opinion, and has slower runtime (even if you argue 95%)
2. Why would you use a MySQL database? Curious as to why you chose that route, was it for ease of development or any other performance oriented choices?
3. I'll quote one of my initial questions:
Second thing I see here, is that many are concentrating on "confirmed tx/s", but rather banks leave transactions as pending for days until the funds finally reach their destination. The initiation of the transaction is purely just protocol aka memory pool, and the confirmation in reference to digital currencies can be see as "gotten on a block ". You use account channels from what I understand of your implementation, how do you arrive at consensus if lets say I send merchant A coins, and also send myself coins from a node across the world at the exact same timestamp. How will the consensus be reached as to which is the valid transaction? How will the distributed network recover from lets say the trans atlantic cables being out of service cutting europe from the usa for an hour even, which at 2k transactions per second would be 7.2M transactions. And let's say 3.1M happen in US that directly conflict with 3.1M in europe, how will the network reorganize and reach a consensus once again?
I'll finally repeat my statement about your "arrogance" or my opinion of it, to clarify it is in the context of thinking you are more capable by yourself, rather than collaborating with other people. But you reinforced my initial thought:
Bottom line though, I'm 2 years ahead of you with innovation, so while I certainly am not the most brilliant, I'm more brilliant than yourself.
This statement seems a bit presumptuous and conceited to me... From what I see, and take this lightly no need to "get aggressive", that you want to prove one person can do it, that you are so super intelligent that you can do it all alone. Yes, this can be true within an infinite time span, so this leads me to my last question:
4. Why do you choose to not collaborate? Isn't the spirit of crypto "working together"?
Trust me, I've been in the same boat, "I need to prove it can be done by one person", had my source closed for quite some time, didn't let anyone help me, until humility kicked in and I realized it's not about being the "next best coin", it's about contributing to the betterment of the industry as a whole, not one particular community. It took me a bit of time and the right people to challenge me for this lesson to penetrate my mind.
I personally believe in
Cooperation, not Competition.Hope you let yourself see it,Viz. When you've had every man and his dog make all kinds of unfounded statements over the past who knows how long, it gets a bit old, so yeah if the mood takes me I'm going to speak on it. It's not arrogance you see in me at all, I just don't take any shit from anyone, period.
I'm not trying to prove one person can do it either, I just don't see any point in having more chefs in the kitchen before the basic recipe is nailed down than is needed. That just gives cause for everyone to get under everyone elses feet and no one has a clue what the final product should look like. I have a number of people I converse with everyday, they pitch ideas to me, I pitch ideas to them and between us we take the best course of action. Some of these individuals are techies, some are what would be regular users, but that allows me to have a broad spectrum of ideas, opinions and suggestions on what direction to take.
To me that is hardly going down the "do it on my own route", and if I was as arrogant as you seem to suggest, I wouldn't even have these people as my council, let alone listen them. Further than this close circle, I listen to every suggestion that is made to me in our community, no ones opinion is excluded or ignored, you don't have to be in the "counsel group" to get heard.
Some of these aforementioned individuals have been to my house and worked next to me on a number of occasions. One of which spent an entire week here during which time we covered a large number of technical topics, reviewed the channeled ledger design, possible system pitfalls, potential solutions and more.
Bearing all that in mind I can see why from the outside it may look like that is my goal, but its all for the sake of efficiency and nothing more. I'm the main developer, purely because its more efficient that way until the ideas are nailed down and there is a recipe for other developers to work off. The people I've chosen to counsel me are stable individuals whose opinion I can trust and do not let ego get in the way, which again is more efficient. I'm also the main benefactor to the project (we haven't had an public ICO yet actually, just a small private fundraiser where about 50 or so people took part) and I don't have a never ending supply of resources, thus I have to consider that in everything I too, the less efficient I am, the longer those resources have to last.
Most importantly is time, we all have a finite amount of it and personally I don't like to waste any of mine. Collaboration in a public environment, such as on a public forum is just a utter waste of such a precious commodity. Everyone's "right" and their opinion should be the one that is taken into account, no one backs down (sometimes even when they are wrong) and it all ends up being a time soak. I've seen many threads on here run on for pages and pages of arguments regarding something trivial with no resolution at all. Frankly I can't be bothered with that, my time is mine to do with what I want, and I'd rather spend it behind a closed door if needed doing something constructive than squabbling on a forum.
Does it still seem like I'm trying to do it all on my own? Or am I just being smart with my resource management?
Really if you had wanted to connect and get into a discussion, you would of been better served by doing it privately and not in public. Your choice of language didn't help your cause either, because to me it just looks like you were on the attack and attempting to peacock in front of everyone else. If that wasn't the intention, well, maybe in future try to connect privately first. I call a spade a spade, and it looked like a spade to me.
Honestly though, I don't really couldn't care less if everyone see me as an arrogant prick, it serves as a damn good filter to keep all the people that would distract me and take up precious resources well out of my way.
Anyway, I'll answer your questions for the sake of professionalism:
1. There are a number of benefits, but portability being one of the main reasons. I considered C and made a careful decision between the two. In areas where I need ultimate speed I can drop down through JNI to a native lib. In reality the only time that level of speed is required is when performing lots of BigInt math (signatures and encryption), the rest of the time the CPU is hardly doing anything or is bottle necked by IO.
2. Purely ease of development. The DB subsystem is developed so that the DB controller can be swapped out easily and replaced with something else. Its all abstracted and uses interfaces/adapters heavily. I did a few experiments to investigate how long it would take to remove the MySQL DB controller and replace it with a Berkeley NoSQL one instead on a few of the modules. Took a few hours per module. Infact the plan is to convert all of the SQL to use NoSQL database backends after a period of time.
3. If you study the link that was posted to the consensus primer, it should be evident how a mass partition event such as that is handled if you apply some thought. If its not then perhaps wait for the revised consensus doc that will make it a bit clearer and cover that fail-case in a bit more detail.
4. This takes us back to the start of this post, which I believe I answered there.