Bitcoin Forum

Bitcoin => Project Development => Topic started by: cayesd on March 22, 2019, 06:39:53 PM



Title: Blockchain Development
Post by: cayesd on March 22, 2019, 06:39:53 PM
Hey everyone, I'm doing a research project about blockchain development, I was wondering what the biggest pain points with current blockchain SDK's that you have?


Title: Re: Blockchain Development
Post by: Patatas on March 22, 2019, 07:28:23 PM
Hey everyone, I'm doing a research project about blockchain development, I was wondering what the biggest pain points with current blockchain SDK's that you have?
It's a project or you are just writing your master's thesis? As far as I know, you don't really have to code a concept if you're not planning to publish your paper. It would be better if you share what exactly is your idea if you have selected any. The problem with the current blockchain SDK's is that they aren't many. The one's they exist aren't novice friendly. Like one needs to have a solid grasp of Cloud Computing and object-oriented in general. Maybe you can expose an API that interacts with this object-oriented code and forms a simple interface for a newbie to interact with the blockchain? Having said that, blockchain is complex in general and it has a steep learning curve for a newbie to start writing code.


Title: Re: Blockchain Development
Post by: legendster on March 23, 2019, 06:04:46 AM
Hey everyone, I'm doing a research project about blockchain development, I was wondering what the biggest pain points with current blockchain SDK's that you have?

You will have to be more specific about which blockchain you are talking about.

And don't pay attention to this:
Hey everyone, I'm doing a research project about blockchain development, I was wondering what the biggest pain points with current blockchain SDK's that you have?

..problem with the current blockchain SDK's is that they aren't many. The one's they exist aren't novice friendly. Like one needs to have a solid grasp of Cloud Computing and object-oriented in general.

He clearly has no idea how many sdks actually exist, or what they are - else he wouldn't have said that - no offense.


Anyways,

Take a look at this :

https://www.programmableweb.com/category/blockchain/sdks

A comprehensive list of 242 blockchain sdk's currently live.

Asking what's the most common problem with most of them is like asking which fish tastes the worst - hundreds of cultures, thousands of fish species - how can anyone say which is the worst tasting?

If you get that analogy then you'll get my point.

If you asked me, immutability is a real issue. Most devs not used to working with blockchains find it annoying that they can't alter a block after its hashed.

But if you asked most traditional business people or older devs they'd tell you the biggest issue with most blockchain is maintenance - to constantly update the codebase over a decentralized network takes a lot of time & resources.


Title: Re: Blockchain Development
Post by: joniboini on March 23, 2019, 09:01:39 AM
Limiting your scope of research should be necessary before you can proceed writing about your paper, unless you want to spend years of doing this research, validating your data or drawing conclusions.

My hypothesis is that for each blockchain you have different problems so asking "which is the most annoying thing you face when you use blockchain SDK" will result with a list of different answers. Limiting your scope or being more specific should help you to be more detail and focused on your paper.


Title: Re: Blockchain Development
Post by: Patatas on March 23, 2019, 04:21:38 PM

He clearly has no idea how many sdks actually exist, or what they are - else he wouldn't have said that
Oh okay you wee cunt. Tell me I don’t have any idea what coding is and I have never written a single line of code in my life? Ya fuckin Pajeet, did you even get what I’m saying? You literally googled and posted your list here lol I’m writing my thesis on something similar and about to publish a paper for IFAC and your ignirent ass wouldn’t have any idea what all this is so shut the fuck up. Your entire post is as meaningless as the mention of immutability. Like don’t use fancy words if you don’t know what it is. I’d detail why I said there aren’t many and what are the problems in a deeper perspective but you’re too much of a gobshite for me to give a fuck about.


Title: Re: Blockchain Development
Post by: cayesd on March 27, 2019, 04:26:57 PM

He clearly has no idea how many sdks actually exist, or what they are - else he wouldn't have said that
Oh okay you wee cunt. Tell me I don’t have any idea what coding is and I have never written a single line of code in my life? Ya fuckin Pajeet, did you even get what I’m saying? You literally googled and posted your list here lol I’m writing my thesis on something similar and about to publish a paper for IFAC and your ignirent ass wouldn’t have any idea what all this is so shut the fuck up. Your entire post is as meaningless as the mention of immutability. Like don’t use fancy words if you don’t know what it is. I’d detail why I said there aren’t many and what are the problems in a deeper perspective but you’re too much of a gobshite for me to give a fuck about.

Hey Patatas,

Thanks for the original post as well as this one. To answer your question it's for an entrepreneurship class I'm taking and I wanted to cover the current issues (if any) that devs had with SDKs they've experienced. To follow up with your last point since you are researching something similar but I too was under the impression there were a quite a few (more than 50) of SDKs available. I would like to know why did you say there aren't many and that deep perspective unless I too am a gobshite for you to give a fuck about  ;) lol. But in all seriousness, if you would care to touch on that point I would greatly appreciate it.


Title: Re: Blockchain Development
Post by: cayesd on March 27, 2019, 04:38:36 PM
Hey everyone, I'm doing a research project about blockchain development, I was wondering what the biggest pain points with current blockchain SDK's that you have?

You will have to be more specific about which blockchain you are talking about.

And don't pay attention to this:
Hey everyone, I'm doing a research project about blockchain development, I was wondering what the biggest pain points with current blockchain SDK's that you have?

..problem with the current blockchain SDK's is that they aren't many. The one's they exist aren't novice friendly. Like one needs to have a solid grasp of Cloud Computing and object-oriented in general.

He clearly has no idea how many sdks actually exist, or what they are - else he wouldn't have said that - no offense.


Anyways,

Take a look at this :

https://www.programmableweb.com/category/blockchain/sdks

A comprehensive list of 242 blockchain sdk's currently live.

Asking what's the most common problem with most of them is like asking which fish tastes the worst - hundreds of cultures, thousands of fish species - how can anyone say which is the worst tasting?

If you get that analogy then you'll get my point.

If you asked me, immutability is a real issue. Most devs not used to working with blockchains find it annoying that they can't alter a block after its hashed.

But if you asked most traditional business people or older devs they'd tell you the biggest issue with most blockchain is maintenance - to constantly update the codebase over a decentralized network takes a lot of time & resources.

Thanks I appreciate it legendster


Title: Re: Blockchain Development
Post by: cayesd on March 27, 2019, 04:47:05 PM
Limiting your scope of research should be necessary before you can proceed writing about your paper unless you want to spend years of doing this research, validating your data or drawing conclusions.

My hypothesis is that for each blockchain you have different problems so asking "which is the most annoying thing you face when you use blockchain SDK" will result with a list of different answers. Limiting your scope or being more specific should help you to be more detail and focused on your paper.


Thanks for the suggestion. So in your opinion, being there are so many blockchains how should I limit the scope, for instance, should I focus on one blockchain or just EVM based chains?


Title: Re: Blockchain Development
Post by: 1337ip on March 27, 2019, 05:16:05 PM
Well current blockchain SDKs is a little broad. That encompasses everything from really just a bunch of api's like the list linked:
https://www.programmableweb.com/category/blockchain/sdks

To do you mean actually working with say the direct blockchain's internal api. e.g: bitcoind bitcoin-cli ( for all the coins too )

Looking more at the api side of websites that do checks on the chain of a coin for you then make it an api I have had quite a few interesting problems on my little projects:
https://bitcointalk.org/index.php?topic=5090189.0

You can actually see in my thread someone talk about how I didn't have bech32 working and the site they initially proposed to me didn't work because my entire project is built in javascript so that I don't ever see anyone's data. This requires me to make every request out to these third party blockchain apis through javascript which don't always really make their api for javascript requests. (my problem with a few was cross site origin requests which if they don't provide the correct headers in their response then your browser deny the request) They think everyone is doing it from a server first then delivering / looking at data. Which would have killed the entire point of paper wallet checker.

The other thing many do is force you into api keys which also would kill my idea because then either I get throttled if a bunch of people are checking addresses or I simply can't use them. ( I didn't use ones with an api key ) Again the point being not having data collected on the end user as well as I wanted the request to not have to be linked to anything beyond the basic request for the balance of an address mainly.

If I earned any money there is a guy in the Bitcoin SV community that actually came up with a pretty brilliant way of running a node with a mongo database which would allow even more complex queries to a node that are quite a pain to do in vanilla node api calls. ( bitcoind bitcoin-cli / JSON-rpc for example ) Being even faster in being able to reply meaning that not only is your node faster to respond but that means it uses less cpu resources to respond. I would take this and modify it to work on bitcoin and other coins to run a node for all the coins I check so that I could make the api I wanted with no api keys and keep the promise of not looking at user data in any way.

So from a working with nodes that then turn them into an api there are many problems :)

Now if you are talking about from a working with the straight node software then there are plenty for every coin. One of which being how hard it is to getting into it and figuring out what the hell is going on first. This takes a huge amount of time and it isn't always well documented. Even one that is (Bitcoin). Like this free book: https://github.com/bitcoinbook/bitcoinbook
You get into chapter 3 and finally start messing around with the node software and Andreas tells you essentially you should run a full node if you want to be a bitcoin developer. This is all fine and dandy and he is right at some point however if you are in an area with terrible internet you can't at home while trying to learn do this, it is simply impossible, while later on after learning if you have a server hosting your node somewhere it can be. However he doesn't mention anything about --regtest mode which essentially allows you to just create a personal fake blockchain locally that you can do all these operations against without needing a real node of any kind but it acts the exact same way. This mode is also really used to test blockchain applications before even trying them on a testnet.

None of what I talked about even starts with decentralized app development which as others have stated immutability is a big thing because if you push a mistake live ( especially with dapps ) you are essentially screwed. ( DAO, Parity, countless other examples....) The only thing you can do is in fact start an entirely new dapp but if funds are caught up in the old one you are up a shit creek without a paddle.

Also just the technical side of how addresses are created / transactions / cryptography / networking / network game theory. All of these things need to be known at least to an extent to do anything ( depending at what level you are at, a dapp doesn't need to know a lot of these things but they have countless other things to deal with )

So yea there are lots of things, so many that I think you are a little broad. Unless the paper is meant to be broad in which case there is countless numbers of things you can talk about.  

Cheers

PS
I think SDK / API are poorly defined really. Most things we call an SDK can really be also called an API. I typically think of an SDK with an IDE ( integrated development environment) for example android studio for android phone development is an sdk ( it has a code editor / phone emulators / ect ). As opposed to API ( application programmable interface ) which I personally think is what people really are talking about most of the time. Maybe there is an SDK for some dapp chain out there but really everyone is just working with internal APIs in my opinion. SDK ( software development kit ) usually a bundled piece of software that aids in development.


Title: Re: Blockchain Development
Post by: cayesd on March 27, 2019, 05:27:35 PM
Well current blockchain SDKs is a little broad. That encompasses everything from really just a bunch of api's like the list linked:
https://www.programmableweb.com/category/blockchain/sdks

To do you mean actually working with say the direct blockchain's internal api. e.g: bitcoind bitcoin-cli ( for all the coins too )

Looking more at the api side of websites that do checks on the chain of a coin for you then make it an api I have had quite a few interesting problems on my little projects:
https://bitcointalk.org/index.php?topic=5090189.0

You can actually see in my thread someone talk about how I didn't have bech32 working and the site they initially proposed to me didn't work because my entire project is built in javascript so that I don't ever see anyone's data. This requires me to make every request out to these third party blockchain apis through javascript which don't always really make their api for javascript requests. (my problem with a few was cross site origin requests which if they don't provide the correct headers in their response then your browser deny the request) They think everyone is doing it from a server first then delivering / looking at data. Which would have killed the entire point of paper wallet checker.

The other thing many do is force you into api keys which also would kill my idea because then either I get throttled if a bunch of people are checking addresses or I simply can't use them. ( I didn't use ones with an api key ) Again the point being not having data collected on the end user as well as I wanted the request to not have to be linked to anything beyond the basic request for the balance of an address mainly.

If I earned any money there is a guy in the Bitcoin SV community that actually came up with a pretty brilliant way of running a node with a mongo database which would allow even more complex queries to a node that are quite a pain to do in vanilla node api calls. ( bitcoind bitcoin-cli / JSON-rpc for example ) Being even faster in being able to reply meaning that not only is your node faster to respond but that means it uses less cpu resources to respond. I would take this and modify it to work on bitcoin and other coins to run a node for all the coins I check so that I could make the api I wanted with no api keys and keep the promise of not looking at user data in any way.

So from a working with nodes that then turn them into an api there are many problems :)

Now if you are talking about from a working with the straight node software then there are plenty for every coin. One of which being how hard it is to getting into it and figuring out what the hell is going on first. This takes a huge amount of time and it isn't always well documented. Even one that is (Bitcoin). Like this free book: https://github.com/bitcoinbook/bitcoinbook
You get into chapter 3 and finally start messing around with the node software and Andreas tells you essentially you should run a full node if you want to be a bitcoin developer. This is all fine and dandy and he is right at some point however if you are in an area with terrible internet you can't at home while trying to learn do this, it is simply impossible, while later on after learning if you have a server hosting your node somewhere it can be. However he doesn't mention anything about --regtest mode which essentially allows you to just create a personal fake blockchain locally that you can do all these operations against without needing a real node of any kind but it acts the exact same way. This mode is also really used to test blockchain applications before even trying them on a testnet.

None of what I talked about even starts with decentralized app development which as others have stated immutability is a big thing because if you push a mistake live ( especially with dapps ) you are essentially screwed. ( DAO, Parity, countless other examples....) The only thing you can do is in fact start an entirely new dapp but if funds are caught up in the old one you are up a shit creek without a paddle.

Also just the technical side of how addresses are created / transactions / cryptography / networking / network game theory. All of these things need to be known at least to an extent to do anything ( depending at what level you are at, a dapp doesn't need to know a lot of these things but they have countless other things to deal with )

So yea there are lots of things, so many that I think you are a little broad. Unless the paper is meant to be broad in which case there is countless numbers of things you can talk about.  

Cheers


Great feedback 1337ip. So from hearing the feedback from others (including this thread), I want to narrow it down to APIs and decentralized app development and the problems devs have experienced


Title: Re: Blockchain Development
Post by: 1337ip on March 27, 2019, 05:33:29 PM
Then I have given some of my experience on internal APIs as well as essentially website to node APIs. Hope it helped a little lol


Title: Re: Blockchain Development
Post by: cayesd on March 27, 2019, 05:34:38 PM
Then I have given some of my experience on internal APIs as well as essentially website to node APIs. Hope it helped a little lol

Yes, you've provided great insight thank you again.