Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Smart Contract Sidechain based Upon Wren? #308

Closed
bytemaster opened this issue Aug 19, 2016 · 5 comments
Closed

Smart Contract Sidechain based Upon Wren? #308

bytemaster opened this issue Aug 19, 2016 · 5 comments

Comments

@bytemaster
Copy link
Contributor

image

@TheDarkLightX
Copy link

Implemented as a side chain, why not? As long as it's not the only smart contract sidechain option, this way developers get to choose better languages in the future. WREN has good specs in terms of speed, but speed may not be an issue depending on what kind of smart contract you want to write.

@theoreticalbts
Copy link
Contributor

Remember the software development aphorism: "Plan to throw one away; you will anyway."

For the first sidechain(s), we'll probably have lots of issues and need to be able to iterate quickly. Then we'll end up with an ugly, un-extensible mess because we changed our minds four times about how it should be designed. Then we'll decide to rewrite it cleanly, using a sane, coherent architecture, now that we fully understand all the issues involved.

This means that, for the initial pass, developer productivity will be much more important than runtime performance, since it will be rewritten from scratch anyway. So instead of some new unfamiliar language, we should use Python (first choice), C++ (second choice) or JS (third choice).

I think I would go so far as to say that we don't even have a good enough idea of the requirements of a blockchain scripting language to be able to state with any certainty whether Wren is an appropriate choice.

Also, I question this performance benchmark -- it seems this only includes CPython. Pypy will be much much faster.

Finally, Wren is not widely used -- I certainly haven't heard of it. That means we may have to deal with:

  • Library deficiencies (we need X, but no implementation is readily available)
  • Support deficiencies (any Python problem can usually be solved with a Stack Overflow search, but this is much less likely for obscure languages)
  • Network effect deficiencies (anyone looking to build a sidechain will first have to learn a new scripting language, increases barrier to entry)

@liondani
Copy link
Contributor

@talerecursion
Copy link

talerecursion commented Aug 25, 2016

This means that, for the initial pass, developer productivity will be much more important than runtime performance, since it will be rewritten from scratch anyway. So instead of some new unfamiliar language, we should use Python (first choice), C++ (second choice) or JS (third choice).

Or we could simply integrate the EVM and be done with it in no time. Many advantages in addition to shorter time to market: a lot of reuse from existing Ethereum smart contracts, many developers familiar with the architecture, attractive to Ethereum community users so likely to make converts, compatible with ETH, ETC, Rootstock, Counterparty and other future projects using the EVM, compatible with Ethereum oracles, many tools available and actively developed...

By the time the EVM is live, developers will have more experience with developing side chains, so next attempt can be more ambitious.

@talerecursion
Copy link

Something that would make Steem + Smart contracts rather unique would be to allow Steem posts to communicate with smart contracts in the same way as client side webpages communicate with server side scripts in Php, Ruby etc. This would allow to have sever-less dynamic blog posts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants