Why nobody implemented a proper Blockchain using WebAssembly or Javascript?

I am a software engineer mostly focusing on Cyber Security / AI and Web. I believe that implementing a good Blockchain using WASM or JS is possible. Such a project can also take advantage of the Browser’s Communication stack for real-time communication to other nodes.

My question is why such a system hasn’t been designed. We all know running an amazing system like Blockchain as a web application is truly valuable but I am completely clueless about it.

Am I missing something ?

I believe EOS uses WebAssembly and Lisk uses Javascript.

1 Like

Do you know if their node can be run inside a browser or not ? or they are using those languages purely for programming the smart contracts ?

0x uses Typescript: https://github.com/0xProject/0x.js

I don’t really know too much beyond that unfortunately.

If Cardano manages to run the entire runtime inside a browser. This will allow everyone to build useful software on web that uses Cardano to communicate and store data. Solving this problem must be the number one priority for Cardano’s team. I think Cardano will live forever if she manages to run itself in a browsers (either in form of WebAssembly or Javascript). If Cardano doesn’t do it. Someone else will and this will be the end of most Blockchain systems. I care about Cardano that is why I am communicating this to everyone on this Forum.

Cardano by far has the best community that I have seen. I know a couple of software engineers who would even help to make this happen but we need Cardano’s support. The best scenario would be if we get an official slot on the Cardano’s roadmap for this feature.

Cheers

The Cardano SL does have an API: https://cardanodocs.com/technical/wallet/api/

Can’t developers just build web apps that communicate with the settlement layer over API? That’s what I am planning to do.

1 Like

@nsticco
Yes that is for sure one way to do it however the main problem with this method is that the system will be still centralized because the CSL will have to be hosted somewhere whereas if the CSL run as a web application on a browser the browser itself will become a node and part of the network and eliminates the need of a central hosted version of CSL.
I played around with CSL for two months. I managed to build it but unfortunately I couldn’t compile it to JS. The way application structured right now making it way too difficult to convert to other languages and runtimes. In order to do this properly we will need Cardano’s help.
Haskell is a great programming language and I have tone of respect for it but the main issue with Haskell is that the community is much smaller and therefore tooling much weaker. I have no doubt that Haskell programmers are among smartest devs out there but still for us to do this at scale we need a larger developer pool.
This could only be achieved if we add transcompilation from Haskell to other programming languages/runtimes. For example JVM, CLR (.Net), WebAssembly or JS.

Not sure if this answers your question but something on that topic from one of Charles’ talks in this video here:

Watch from about the 27 minute mark.

@Donnybaseball CH is talking there about smart contract languages.

Thank you guys,
but like @RobJF said he is talking about smart contracts. I feel the reason why JS is so successful is because the language itself is married with Browsers and hence internet.

For block-chain based systems to be truly successful they need to run on browsers. I hope someone or group of people will eventually figure it out.

On the other hand mobile platforms are now bigger than most web platforms and therefore we can’t ignore them and I think creating a platform that will also run on a mobile system would be super beneficial. Look at what Telegram is trying to do with their recent ICOs…

I really can’t emphasize how important these paradigms are. I still think that the Cardano team will have to really put some R&D effort into this. Maybe ask a PHD student to look into this.

The wallet is written in Javascript (made as an app using Electron). It’s only the node itself that is not web-compatible.

1 Like

It’s already happening: Metamask

So there is no way for me to generate a payment from within the browser, without the private password being sent to a centralized server for processing?
I am developing a Chrome extension that currently has no backend processing.