Haskell to Ethereum VM ?
Hi cafe, Does anyone know about the code generator from Haskell's syntax to Ethereum VM language (bytecode)? That is, what corresponds to Solidity in Haskell. Although Solidity is interesting, it's difficult for me to achieve quality and safety. Does such a project already exist? Regards, Takenobu
Hello Takenobu, while theres definitely a lot of haskell code out there that deals with ethereum (or implementing it!), i'm not aware of anything targeting the evm isa from haskell or any other mature functional programming language On Fri, Jan 26, 2018 at 8:09 AM, Takenobu Tani <takenobu.hs@gmail.com> wrote:
Hi cafe,
Does anyone know about the code generator from Haskell's syntax to Ethereum VM language (bytecode)? That is, what corresponds to Solidity in Haskell.
Although Solidity is interesting, it's difficult for me to achieve quality and safety. Does such a project already exist?
Regards, Takenobu
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
The Quorum[1] team has been dreaming about such a Haskell-beginner-friendly bytecode-generating DSL for a very long time. The user experience of writing applications in a language where pitfalls are so non-obvious is one of the biggest pain points of Ethereum in general. We would warmly welcome something like this, and would definitely look to use it in Quorum. (Our EVM is the same as public Ethereum.) [1]: A permissioned/non-PoW version of Ethereum with high throughput and privacy - https://github.com/jpmorganchase/quorum/ On 1/26/2018 11:43 AM, Carter Schonwald wrote:
Hello Takenobu, while theres definitely a lot of haskell code out there that deals with ethereum (or implementing it!), i'm not aware of anything targeting the evm isa from haskell or any other mature functional programming language
On Fri, Jan 26, 2018 at 8:09 AM, Takenobu Tani <takenobu.hs@gmail.com <mailto:takenobu.hs@gmail.com>> wrote:
Hi cafe,
Does anyone know about the code generator from Haskell's syntax to Ethereum VM language (bytecode)? That is, what corresponds to Solidity in Haskell.
Although Solidity is interesting, it's difficult for me to achieve quality and safety. Does such a project already exist?
Regards, Takenobu
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe <http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe> Only members subscribed via the mailman list are allowed to post.
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
Hi Carter, Patrick, Thank you for reply. Quorum is interesting! It would be very nice to be able to describe Ethereum's contract with Haskell DSL. The characteristics about immutable and type will fit DApps. Thank you very much, Takenobu 2018-01-27 2:55 GMT+09:00 Patrick Mylund Nielsen <haskell@patrickmn.com>:
The Quorum[1] team has been dreaming about such a Haskell-beginner-friendly bytecode-generating DSL for a very long time. The user experience of writing applications in a language where pitfalls are so non-obvious is one of the biggest pain points of Ethereum in general.
We would warmly welcome something like this, and would definitely look to use it in Quorum. (Our EVM is the same as public Ethereum.)
[1]: A permissioned/non-PoW version of Ethereum with high throughput and privacy - https://github.com/jpmorganchase/quorum/
On 1/26/2018 11:43 AM, Carter Schonwald wrote:
Hello Takenobu, while theres definitely a lot of haskell code out there that deals with ethereum (or implementing it!), i'm not aware of anything targeting the evm isa from haskell or any other mature functional programming language
On Fri, Jan 26, 2018 at 8:09 AM, Takenobu Tani <takenobu.hs@gmail.com <mailto:takenobu.hs@gmail.com>> wrote:
Hi cafe,
Does anyone know about the code generator from Haskell's syntax to Ethereum VM language (bytecode)? That is, what corresponds to Solidity in Haskell.
Although Solidity is interesting, it's difficult for me to achieve quality and safety. Does such a project already exist?
Regards, Takenobu
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe <http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe> Only members subscribed via the mailman list are allowed to post.
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
Probably you are aware of Cardano (https://www.cardanohub.org/en/home/), a new generation blockchain platform which uses languages inspired from Haskell. From the whitepaper at https://whycardano.com/: "Systems such as Bitcoin provide an extremely inflexible and draconian scripting language that is difficult to program bespoke transactions in, and to read and understand. Yet the general programmability of languages such as Solidity introduce an extraordinary amount of complexity into the system and are useful to only a much smaller set of actors. Therefore, we have chosen to design a new language called Simon6 <https://whycardano.com/#footnote6> in honor of its creator Simon Thompson and the creator of the concepts that inspired it, Simon Peyton Jones. Simon is a domain-specific language that is based upon Composing contracts: <https://www.lexifi.com/files/resources/MLFiPaper.pdf> an adventure in financial engineering. The principal idea is that financial transactions are generally composed from a collection of foundational elements7 <https://whycardano.com/#footnote7> . If one assembles a financial periodic table of elements, then one can provide support for an arbitrarily large set of compound transactions that will cover most, if not all, common transaction types without requiring general programmability. The primary advantage is that security and execution can be extremely well understood. Proofs can be written to show correctness of templates and exhaust the execution space of problematic transaction events, such as the creation of new money out of thin <https://en.bitcoin.it/wiki/Value_overflow_incident> air or transaction <https://en.bitcoin.it/wiki/Transaction_Malleability> malleability. Second, one can leave in extensions to add more elements by way of soft forks if new functionality is required. That said, there will always be a need to connect CSL to overlay protocols, legacy financial systems, and special purpose servers. Thus we have developed Plutus <https://github.com/input-output-hk/plutus-prototype> as both a general purpose smart contract language and also a special purpose DSL for interoperability. Plutus is a typed functional language based on concepts from Haskell, which can be used to write custom transaction scripts. For CSL, it will be used for complex transactions required to add support for other layers we need to connect, such as our sidechains scheme." _____ From: Haskell-Cafe [mailto:haskell-cafe-bounces@haskell.org] On Behalf Of Takenobu Tani Sent: Friday, January 26, 2018 8:05 PM To: Patrick Mylund Nielsen Cc: haskell-cafe Subject: Re: [Haskell-cafe] Haskell to Ethereum VM ? Hi Carter, Patrick, Thank you for reply. Quorum is interesting! It would be very nice to be able to describe Ethereum's contract with Haskell DSL. The characteristics about immutable and type will fit DApps. Thank you very much, Takenobu 2018-01-27 2:55 GMT+09:00 Patrick Mylund Nielsen <haskell@patrickmn.com>: The Quorum[1] team has been dreaming about such a Haskell-beginner-friendly bytecode-generating DSL for a very long time. The user experience of writing applications in a language where pitfalls are so non-obvious is one of the biggest pain points of Ethereum in general. We would warmly welcome something like this, and would definitely look to use it in Quorum. (Our EVM is the same as public Ethereum.) [1]: A permissioned/non-PoW version of Ethereum with high throughput and privacy - https://github.com/ <https://github.com/jpmorganchase/quorum/> jpmorganchase/quorum/ On 1/26/2018 11:43 AM, Carter Schonwald wrote:
Hello Takenobu, while theres definitely a lot of haskell code out there that deals with ethereum (or implementing it!), i'm not aware of anything targeting the evm isa from haskell or any other mature functional programming language
On Fri, Jan 26, 2018 at 8:09 AM, Takenobu Tani <takenobu.hs@gmail.com
<mailto:takenobu.hs@gmail.com>> wrote:
Hi cafe,
Does anyone know about the code generator from Haskell's syntax to Ethereum VM language (bytecode)? That is, what corresponds to Solidity in Haskell.
Although Solidity is interesting, it's difficult for me to achieve quality and safety. Does such a project already exist?
Regards, Takenobu
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi- <http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe> bin/mailman/listinfo/haskell-cafe <http://mail.haskell.org/cgi- <http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe> bin/mailman/listinfo/haskell-cafe> Only members subscribed via the mailman list are allowed to post.
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi- <http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe> bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
Hi Gregory, Thank you for much information. I have heard Cardano, but I did not know the details. It's amazing! Although Ethereum VM is stack based virtual machine, Cardano's IELE(VM) is register based VM!, it's powerfull and beautiful! In addition, it is protected by semantics. Umm, High-level safety abstructed language (Haskell based) + register based VM (IELE) ! It's amazing. Thank you for telling me details. I will explore this. Thank you very much, Takenobu 2018-01-27 10:22 GMT+09:00 Gregory Popovitch <greg7mdp@gmail.com>:
Probably you are aware of Cardano (https://www.cardanohub.org/en/home/), a new generation blockchain platform which uses languages inspired from Haskell. From the whitepaper at https://whycardano.com/:
"Systems such as Bitcoin provide an extremely inflexible and draconian scripting language that is difficult to program bespoke transactions in, and to read and understand. Yet the general programmability of languages such as Solidity introduce an extraordinary amount of complexity into the system and are useful to only a much smaller set of actors.
Therefore, we have chosen to design a new language called Simon6 <https://whycardano.com/#footnote6> in honor of its creator Simon Thompson and the creator of the concepts that inspired it, Simon Peyton Jones. Simon is a domain-specific language that is based upon *Composing contracts: an adventure in financial engineering <https://www.lexifi.com/files/resources/MLFiPaper.pdf>*.
The principal idea is that financial transactions are generally composed from a collection of foundational elements7 <https://whycardano.com/#footnote7>. If one assembles a financial periodic table of elements, then one can provide support for an arbitrarily large set of compound transactions that will cover most, if not all, common transaction types without requiring general programmability.
The primary advantage is that security and execution can be extremely well understood. Proofs can be written to show correctness of templates and exhaust the execution space of problematic transaction events, such as the creation of new money out of thin air <https://en.bitcoin.it/wiki/Value_overflow_incident> or transaction malleability <https://en.bitcoin.it/wiki/Transaction_Malleability>. Second, one can leave in extensions to add more elements by way of soft forks if new functionality is required.
That said, there will always be a need to connect CSL to overlay protocols, legacy financial systems, and special purpose servers. Thus we have developed Plutus <https://github.com/input-output-hk/plutus-prototype> as both a general purpose smart contract language and also a special purpose DSL for interoperability.
Plutus is a typed functional language based on concepts from Haskell, which can be used to write custom transaction scripts. For CSL, it will be used for complex transactions required to add support for other layers we need to connect, such as our sidechains scheme."
------------------------------ *From:* Haskell-Cafe [mailto:haskell-cafe-bounces@haskell.org] *On Behalf Of *Takenobu Tani *Sent:* Friday, January 26, 2018 8:05 PM *To:* Patrick Mylund Nielsen *Cc:* haskell-cafe *Subject:* Re: [Haskell-cafe] Haskell to Ethereum VM ?
Hi Carter, Patrick,
Thank you for reply. Quorum is interesting! It would be very nice to be able to describe Ethereum's contract with Haskell DSL. The characteristics about immutable and type will fit DApps.
Thank you very much, Takenobu
2018-01-27 2:55 GMT+09:00 Patrick Mylund Nielsen <haskell@patrickmn.com>:
The Quorum[1] team has been dreaming about such a Haskell-beginner-friendly bytecode-generating DSL for a very long time. The user experience of writing applications in a language where pitfalls are so non-obvious is one of the biggest pain points of Ethereum in general.
We would warmly welcome something like this, and would definitely look to use it in Quorum. (Our EVM is the same as public Ethereum.)
[1]: A permissioned/non-PoW version of Ethereum with high throughput and privacy - https://github.com/jpmorganchase/quorum/
On 1/26/2018 11:43 AM, Carter Schonwald wrote:
Hello Takenobu, while theres definitely a lot of haskell code out there that deals with ethereum (or implementing it!), i'm not aware of anything targeting the evm isa from haskell or any other mature functional programming language
On Fri, Jan 26, 2018 at 8:09 AM, Takenobu Tani <takenobu.hs@gmail.com <mailto:takenobu.hs@gmail.com>> wrote:
Hi cafe,
Does anyone know about the code generator from Haskell's syntax to Ethereum VM language (bytecode)? That is, what corresponds to Solidity in Haskell.
Although Solidity is interesting, it's difficult for me to achieve quality and safety. Does such a project already exist?
Regards, Takenobu
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe <http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe> Only members subscribed via the mailman list are allowed to post.
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
Hi Takenobu, You are very welcome. Indeed I think that Cardano made all the right technical choices, and looks extremely promising. I am not the only one feeling that way, and Cardono, even before being released, has now the 5th highest market cap of all crypto currencies. The repeated issues with Solidity, which was designed for ease of use instead of correctness, make a lot of people feel that Cardano and its Haskell inspired scripting languages would be a much better choice for writing reliable and correct smart contracts. Good luck in your exploration. I'd like to learn more about it as well. Thanks, gregory _____ From: Takenobu Tani [mailto:takenobu.hs@gmail.com] Sent: Friday, January 26, 2018 9:28 PM To: Gregory Popovitch Cc: haskell-cafe Subject: Re: [Haskell-cafe] Haskell to Ethereum VM ? Hi Gregory, Thank you for much information. I have heard Cardano, but I did not know the details. It's amazing! Although Ethereum VM is stack based virtual machine, Cardano's IELE(VM) is register based VM!, it's powerfull and beautiful! In addition, it is protected by semantics. Umm, High-level safety abstructed language (Haskell based) + register based VM (IELE) ! It's amazing. Thank you for telling me details. I will explore this. Thank you very much, Takenobu 2018-01-27 10:22 GMT+09:00 Gregory Popovitch <greg7mdp@gmail.com>: Probably you are aware of Cardano (https://www.cardanohub.org/ <https://www.cardanohub.org/en/home/> en/home/), a new generation blockchain platform which uses languages inspired from Haskell. From the whitepaper at https://whycardano.com/: "Systems such as Bitcoin provide an extremely inflexible and draconian scripting language that is difficult to program bespoke transactions in, and to read and understand. Yet the general programmability of languages such as Solidity introduce an extraordinary amount of complexity into the system and are useful to only a much smaller set of actors. Therefore, we have chosen to design a new language called Simon6 <https://whycardano.com/#footnote6> in honor of its creator Simon Thompson and the creator of the concepts that inspired it, Simon Peyton Jones. Simon is a domain-specific language that is based upon Composing contracts: an adventure in financial <https://www.lexifi.com/files/resources/MLFiPaper.pdf> engineering. The principal idea is that financial transactions are generally composed from a collection of foundational elements7 <https://whycardano.com/#footnote7> . If one assembles a financial periodic table of elements, then one can provide support for an arbitrarily large set of compound transactions that will cover most, if not all, common transaction types without requiring general programmability. The primary advantage is that security and execution can be extremely well understood. Proofs can be written to show correctness of templates and exhaust the execution space of problematic transaction events, such as the creation of new <https://en.bitcoin.it/wiki/Value_overflow_incident> money out of thin air or transaction malleability <https://en.bitcoin.it/wiki/Transaction_Malleability> . Second, one can leave in extensions to add more elements by way of soft forks if new functionality is required. That said, there will always be a need to connect CSL to overlay protocols, legacy financial systems, and special purpose servers. Thus we have developed Plutus <https://github.com/input-output-hk/plutus-prototype> as both a general purpose smart contract language and also a special purpose DSL for interoperability. Plutus is a typed functional language based on concepts from Haskell, which can be used to write custom transaction scripts. For CSL, it will be used for complex transactions required to add support for other layers we need to connect, such as our sidechains scheme." _____ From: Haskell-Cafe [mailto:haskell-cafe-bounces@ <mailto:haskell-cafe-bounces@haskell.org> haskell.org] On Behalf Of Takenobu Tani Sent: Friday, January 26, 2018 8:05 PM To: Patrick Mylund Nielsen Cc: haskell-cafe Subject: Re: [Haskell-cafe] Haskell to Ethereum VM ? Hi Carter, Patrick, Thank you for reply. Quorum is interesting! It would be very nice to be able to describe Ethereum's contract with Haskell DSL. The characteristics about immutable and type will fit DApps. Thank you very much, Takenobu 2018-01-27 2:55 GMT+09:00 Patrick Mylund Nielsen <haskell@patrickmn.com>: The Quorum[1] team has been dreaming about such a Haskell-beginner-friendly bytecode-generating DSL for a very long time. The user experience of writing applications in a language where pitfalls are so non-obvious is one of the biggest pain points of Ethereum in general. We would warmly welcome something like this, and would definitely look to use it in Quorum. (Our EVM is the same as public Ethereum.) [1]: A permissioned/non-PoW version of Ethereum with high throughput and privacy - https://github.com/jpmorgancha <https://github.com/jpmorganchase/quorum/> se/quorum/ On 1/26/2018 11:43 AM, Carter Schonwald wrote:
Hello Takenobu, while theres definitely a lot of haskell code out there that deals with ethereum (or implementing it!), i'm not aware of anything targeting the evm isa from haskell or any other mature functional programming language
On Fri, Jan 26, 2018 at 8:09 AM, Takenobu Tani <takenobu.hs@gmail.com
<mailto:takenobu.hs@gmail.com>> wrote:
Hi cafe,
Does anyone know about the code generator from Haskell's syntax to Ethereum VM language (bytecode)? That is, what corresponds to Solidity in Haskell.
Although Solidity is interesting, it's difficult for me to achieve quality and safety. Does such a project already exist?
Regards, Takenobu
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-b <http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe> in/mailman/listinfo/haskell-cafe <http://mail.haskell.org/cgi- <http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe> bin/mailman/listinfo/haskell-cafe> Only members subscribed via the mailman list are allowed to post.
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bi <http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe> n/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
Hi, Before exploring Cardano's virtual machine, I explored Ethereum virtual machine (EVM). I'm sharing some figures I wrote for my self-study. Ethereum EVM illustrated http://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf https://github.com/takenobu-hs/ethereum-evm-illustrated Haskell fits very well to DApps/Smart contracts :) Regards, Takenobu 2018-01-27 11:27 GMT+09:00 Takenobu Tani <takenobu.hs@gmail.com>:
Hi Gregory,
Thank you for much information. I have heard Cardano, but I did not know the details.
It's amazing!
Although Ethereum VM is stack based virtual machine, Cardano's IELE(VM) is register based VM!, it's powerfull and beautiful! In addition, it is protected by semantics.
Umm, High-level safety abstructed language (Haskell based) + register based VM (IELE) ! It's amazing.
Thank you for telling me details. I will explore this.
Thank you very much, Takenobu
2018-01-27 10:22 GMT+09:00 Gregory Popovitch <greg7mdp@gmail.com>:
Probably you are aware of Cardano (https://www.cardanohub.org/en/home/), a new generation blockchain platform which uses languages inspired from Haskell. From the whitepaper at https://whycardano.com/:
"Systems such as Bitcoin provide an extremely inflexible and draconian scripting language that is difficult to program bespoke transactions in, and to read and understand. Yet the general programmability of languages such as Solidity introduce an extraordinary amount of complexity into the system and are useful to only a much smaller set of actors.
Therefore, we have chosen to design a new language called Simon6 <https://whycardano.com/#footnote6> in honor of its creator Simon Thompson and the creator of the concepts that inspired it, Simon Peyton Jones. Simon is a domain-specific language that is based upon *Composing contracts: an adventure in financial engineering <https://www.lexifi.com/files/resources/MLFiPaper.pdf>*.
The principal idea is that financial transactions are generally composed from a collection of foundational elements7 <https://whycardano.com/#footnote7>. If one assembles a financial periodic table of elements, then one can provide support for an arbitrarily large set of compound transactions that will cover most, if not all, common transaction types without requiring general programmability.
The primary advantage is that security and execution can be extremely well understood. Proofs can be written to show correctness of templates and exhaust the execution space of problematic transaction events, such as the creation of new money out of thin air <https://en.bitcoin.it/wiki/Value_overflow_incident> or transaction malleability <https://en.bitcoin.it/wiki/Transaction_Malleability>. Second, one can leave in extensions to add more elements by way of soft forks if new functionality is required.
That said, there will always be a need to connect CSL to overlay protocols, legacy financial systems, and special purpose servers. Thus we have developed Plutus <https://github.com/input-output-hk/plutus-prototype> as both a general purpose smart contract language and also a special purpose DSL for interoperability.
Plutus is a typed functional language based on concepts from Haskell, which can be used to write custom transaction scripts. For CSL, it will be used for complex transactions required to add support for other layers we need to connect, such as our sidechains scheme."
------------------------------ *From:* Haskell-Cafe [mailto:haskell-cafe-bounces@haskell.org] *On Behalf Of *Takenobu Tani *Sent:* Friday, January 26, 2018 8:05 PM *To:* Patrick Mylund Nielsen *Cc:* haskell-cafe *Subject:* Re: [Haskell-cafe] Haskell to Ethereum VM ?
Hi Carter, Patrick,
Thank you for reply. Quorum is interesting! It would be very nice to be able to describe Ethereum's contract with Haskell DSL. The characteristics about immutable and type will fit DApps.
Thank you very much, Takenobu
2018-01-27 2:55 GMT+09:00 Patrick Mylund Nielsen <haskell@patrickmn.com>:
The Quorum[1] team has been dreaming about such a Haskell-beginner-friendly bytecode-generating DSL for a very long time. The user experience of writing applications in a language where pitfalls are so non-obvious is one of the biggest pain points of Ethereum in general.
We would warmly welcome something like this, and would definitely look to use it in Quorum. (Our EVM is the same as public Ethereum.)
[1]: A permissioned/non-PoW version of Ethereum with high throughput and privacy - https://github.com/jpmorganchase/quorum/
On 1/26/2018 11:43 AM, Carter Schonwald wrote:
Hello Takenobu, while theres definitely a lot of haskell code out there that deals with ethereum (or implementing it!), i'm not aware of anything targeting the evm isa from haskell or any other mature functional programming language
On Fri, Jan 26, 2018 at 8:09 AM, Takenobu Tani <takenobu.hs@gmail.com <mailto:takenobu.hs@gmail.com>> wrote:
Hi cafe,
Does anyone know about the code generator from Haskell's syntax to Ethereum VM language (bytecode)? That is, what corresponds to Solidity in Haskell.
Although Solidity is interesting, it's difficult for me to achieve quality and safety. Does such a project already exist?
Regards, Takenobu
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe <http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe> Only members subscribed via the mailman list are allowed to post.
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
Hi, You may also want to look at another (formerly) JPM project https://github.com/kadena-io/masala -- standalone pure EVM. When it was up to date it was pretty close to bug for bug compatible... yes, the EVM unit tests checked for at least one bug's existence. FYI the degree to/ways in which the EVM is hilariously broken were large influences on [disclosure: am co-founder] Kadena's smart contract language Pact https://github.com/kadena-io/pact. I wouldn't say that Pact is a competitor to Cardano's Plutus so much as a fundamentally different approach. -Will - Will ---------- Will Martino WJMartino@gmail.com 203.887.6964 Sent via Superhuman ( https://sprh.mn/?vip=wjmartino@gmail.com ) On Fri, Mar 09, 2018 at 9:57 PM, Takenobu Tani < takenobu.hs@gmail.com > wrote:
Hi,
Before exploring Cardano's virtual machine, I explored Ethereum virtual machine (EVM). I'm sharing some figures I wrote for my self-study.
Ethereum EVM illustrated http:/ / takenobu-hs. github. io/ downloads/ ethereum_evm_illustrated. pdf ( http://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf ) https:/ / github. com/ takenobu-hs/ ethereum-evm-illustrated ( https://github.com/takenobu-hs/ethereum-evm-illustrated )
Haskell fits very well to DApps/Smart contracts :)
Regards, Takenobu
2018-01-27 11:27 GMT+09:00 Takenobu Tani < takenobu. hs@ gmail. com ( takenobu.hs@gmail.com ) > :
Hi Gregory,
Thank you for much information. I have heard Cardano, but I did not know the details.
It's amazing!
Although Ethereum VM is stack based virtual machine, Cardano's IELE(VM) is register based VM!, it's powerfull and beautiful! In addition, it is protected by semantics.
Umm, High-level safety abstructed language (Haskell based) + register based VM (IELE) ! It's amazing.
Thank you for telling me details. I will explore this.
Thank you very much, Takenobu
2018-01-27 10:22 GMT+09:00 Gregory Popovitch < greg7mdp@ gmail. com ( greg7mdp@gmail.com ) > :
Probably you are aware of Cardano ( https://www.cardanohub.org/en /home/ ( https://www.cardanohub.org/en/home/ ) ), a new generation blockchain platform which uses languages inspired from Haskell. From the whitepaper at https:/ / whycardano. com/ ( https://whycardano.com/ ) : "Systems such as Bitcoin provide an extremely inflexible and draconian scripting language that is difficult to program bespoke transactions in, and to read and understand. Yet the general programmability of languages such as Solidity introduce an extraordinary amount of complexity into the system and are useful to only a much smaller set of actors.
Therefore, we have chosen to design a new language called Simon 6 ( https://whycardano.com/#footnote6 ) in honor of its creator Simon Thompson and the creator of the concepts that inspired it, Simon Peyton Jones. Simon is a domain-specific language that is based upon Composing contracts: an adventure in financial engineering ( https://www.lexifi.com/files/resources/MLFiPaper.pdf ).
The principal idea is that financial transactions are generally composed from a collection of foundational elements 7 ( https://whycardano.com/#footnote7 ). If one assembles a financial periodic table of elements, then one can provide support for an arbitrarily large set of compound transactions that will cover most, if not all, common transaction types without requiring general programmability.
The primary advantage is that security and execution can be extremely well understood. Proofs can be written to show correctness of templates and exhaust the execution space of problematic transaction events, such as the creation of new money out of thin air ( https://en.bitcoin.it/wiki/Value_overflow_incident ) or transaction malleability ( https://en.bitcoin.it/wiki/Transaction_Malleability ). Second, one can leave in extensions to add more elements by way of soft forks if new functionality is required.
That said, there will always be a need to connect CSL to overlay protocols, legacy financial systems, and special purpose servers. Thus we have developed Plutus ( https://github.com/input-output-hk/plutus-prototype ) as both a general purpose smart contract language and also a special purpose DSL for interoperability.
Plutus is a typed functional language based on concepts from Haskell, which can be used to write custom transaction scripts. For CSL, it will be used for complex transactions required to add support for other layers we need to connect, such as our sidechains scheme. "
*From:* Haskell-Cafe [mailto: haskell-cafe-bounces@h askell.org ( haskell-cafe-bounces@haskell.org ) ] *On Behalf Of* Takenobu Tani *Sent:* Friday, January 26, 2018 8:05 PM *To:* Patrick Mylund Nielsen *Cc:* haskell-cafe *Subject:* Re: [Haskell-cafe] Haskell to Ethereum VM ?
Hi Carter, Patrick,
Thank you for reply. Quorum is interesting! It would be very nice to be able to describe Ethereum's contract with Haskell DSL. The characteristics about immutable and type will fit DApps.
Thank you very much, Takenobu
2018-01-27 2:55 GMT+09:00 Patrick Mylund Nielsen < haskell@ patrickmn. com ( haskell@patrickmn.com ) > :
The Quorum[1] team has been dreaming about such a Haskell-beginner-friendly bytecode-generating DSL for a very long time. The user experience of writing applications in a language where pitfalls are so non-obvious is one of the biggest pain points of Ethereum in general.
We would warmly welcome something like this, and would definitely look to use it in Quorum. (Our EVM is the same as public Ethereum.)
[1]: A permissioned/non-PoW version of Ethereum with high throughput and privacy - https://github.com/jpmorgancha se/quorum/ ( https://github.com/jpmorganchase/quorum/ )
On 1/26/2018 11:43 AM, Carter Schonwald wrote:
Hello Takenobu, while theres definitely a lot of haskell code out there that deals with ethereum (or implementing it!), i'm not aware of anything targeting the evm isa from haskell or any other mature functional programming language
On Fri, Jan 26, 2018 at 8:09 AM, Takenobu Tani < takenobu. hs@ gmail. com
( takenobu.hs@gmail.com )
<mailto: takenobu. hs@ gmail. com ( takenobu.hs@gmail.com ) > > wrote:
Hi cafe,
Does anyone know about the code generator from Haskell's syntax to Ethereum VM language (bytecode)? That is, what corresponds to Solidity in Haskell.
Although Solidity is interesting, it's difficult for me to achieve quality and safety. Does such a project already exist?
Regards, Takenobu
_____________________________ __________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-b in/mailman/listinfo/haskell-ca fe ( http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe ) < http://mail.haskell.org/cgi- bin/mailman/listinfo/haskell-c afe ( http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe ) > Only members subscribed via the mailman list are allowed to post.
______________________________ _________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bi n/mailman/listinfo/haskell-caf e ( http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe ) Only members subscribed via the mailman list are allowed to post.
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http:/ / mail. haskell. org/ cgi-bin/ mailman/ listinfo/ haskell-cafe ( http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe ) Only members subscribed via the mailman list are allowed to post.
Hi Will, Thank you for the information. There are various smart contract environments using Haskell. I will explore various projects. Thanks, Takenobu 2018-03-10 15:51 GMT+09:00 William Martino <wjmartino@gmail.com>:
Hi,
You may also want to look at another (formerly) JPM project https://github.com/kadena-io/masala -- standalone pure EVM. When it was up to date it was pretty close to bug for bug compatible... yes, the EVM unit tests checked for at least one bug's existence.
FYI the degree to/ways in which the EVM is hilariously broken were large influences on [disclosure: am co-founder] Kadena's smart contract language Pact https://github.com/kadena-io/pact. I wouldn't say that Pact is a competitor to Cardano's Plutus so much as a fundamentally different approach.
-Will
- Will
---------- Will Martino WJMartino@gmail.com 203.887.6964 <(203)%20887-6964>
Sent via Superhuman <https://sprh.mn/?vip=wjmartino@gmail.com>
On Fri, Mar 09, 2018 at 9:57 PM, Takenobu Tani<takenobu.hs@gmail.com>wro te:
Hi,
Before exploring Cardano's virtual machine, I explored Ethereum virtual machine (EVM). I'm sharing some figures I wrote for my self-study.
Ethereum EVM illustrated http://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf https://github.com/takenobu-hs/ethereum-evm-illustrated
Haskell fits very well to DApps/Smart contracts :)
Regards, Takenobu
2018-01-27 11:27 GMT+09:00 Takenobu Tani <takenobu.hs@gmail.com>:
Hi Gregory,
Thank you for much information. I have heard Cardano, but I did not know the details.
It's amazing!
Although Ethereum VM is stack based virtual machine, Cardano's IELE(VM) is register based VM!, it's powerfull and beautiful! In addition, it is protected by semantics.
Umm, High-level safety abstructed language (Haskell based) + register based VM (IELE) ! It's amazing.
Thank you for telling me details. I will explore this.
Thank you very much, Takenobu
2018-01-27 10:22 GMT+09:00 Gregory Popovitch <greg7mdp@gmail.com>:
Probably you are aware of Cardano (https://www.cardanohub.org/en/home/), a new generation blockchain platform which uses languages inspired from Haskell. From the whitepaper at https://whycardano.com/:
"Systems such as Bitcoin provide an extremely inflexible and draconian scripting language that is difficult to program bespoke transactions in, and to read and understand. Yet the general programmability of languages such as Solidity introduce an extraordinary amount of complexity into the system and are useful to only a much smaller set of actors.
Therefore, we have chosen to design a new language called Simon6 <https://whycardano.com/#footnote6> in honor of its creator Simon Thompson and the creator of the concepts that inspired it, Simon Peyton Jones. Simon is a domain-specific language that is based upon *Composing contracts: an adventure in financial engineering <https://www.lexifi.com/files/resources/MLFiPaper.pdf>*.
The principal idea is that financial transactions are generally composed from a collection of foundational elements7 <https://whycardano.com/#footnote7>. If one assembles a financial periodic table of elements, then one can provide support for an arbitrarily large set of compound transactions that will cover most, if not all, common transaction types without requiring general programmability.
The primary advantage is that security and execution can be extremely well understood. Proofs can be written to show correctness of templates and exhaust the execution space of problematic transaction events, such as the creation of new money out of thin air <https://en.bitcoin.it/wiki/Value_overflow_incident> or transaction malleability <https://en.bitcoin.it/wiki/Transaction_Malleability>. Second, one can leave in extensions to add more elements by way of soft forks if new functionality is required.
That said, there will always be a need to connect CSL to overlay protocols, legacy financial systems, and special purpose servers. Thus we have developed Plutus <https://github.com/input-output-hk/plutus-prototype> as both a general purpose smart contract language and also a special purpose DSL for interoperability.
Plutus is a typed functional language based on concepts from Haskell, which can be used to write custom transaction scripts. For CSL, it will be used for complex transactions required to add support for other layers we need to connect, such as our sidechains scheme."
------------------------------ *From:* Haskell-Cafe [mailto:haskell-cafe-bounces@haskell.org] *On Behalf Of *Takenobu Tani *Sent:* Friday, January 26, 2018 8:05 PM *To:* Patrick Mylund Nielsen *Cc:* haskell-cafe *Subject:* Re: [Haskell-cafe] Haskell to Ethereum VM ?
Hi Carter, Patrick,
Thank you for reply. Quorum is interesting! It would be very nice to be able to describe Ethereum's contract with Haskell DSL. The characteristics about immutable and type will fit DApps.
Thank you very much, Takenobu
2018-01-27 2:55 GMT+09:00 Patrick Mylund Nielsen <haskell@patrickmn.com
:
The Quorum[1] team has been dreaming about such a Haskell-beginner-friendly bytecode-generating DSL for a very long time. The user experience of writing applications in a language where pitfalls are so non-obvious is one of the biggest pain points of Ethereum in general.
We would warmly welcome something like this, and would definitely look to use it in Quorum. (Our EVM is the same as public Ethereum.)
[1]: A permissioned/non-PoW version of Ethereum with high throughput and privacy - https://github.com/jpmorganchase/quorum/
On 1/26/2018 11:43 AM, Carter Schonwald wrote:
Hello Takenobu, while theres definitely a lot of haskell code out there that deals with ethereum (or implementing it!), i'm not aware of anything targeting the evm isa from haskell or any other mature functional programming language
On Fri, Jan 26, 2018 at 8:09 AM, Takenobu Tani < takenobu.hs@gmail.com <mailto:takenobu.hs@gmail.com>> wrote:
Hi cafe,
Does anyone know about the code generator from Haskell's syntax to Ethereum VM language (bytecode)? That is, what corresponds to Solidity in Haskell.
Although Solidity is interesting, it's difficult for me to achieve quality and safety. Does such a project already exist?
Regards, Takenobu
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe <http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe> Only members subscribed via the mailman list are allowed to post.
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
Fantastic write-up Takenobu. On Sat, Mar 10, 2018 at 3:25 AM, Takenobu Tani <takenobu.hs@gmail.com> wrote:
Hi Will,
Thank you for the information. There are various smart contract environments using Haskell. I will explore various projects.
Thanks, Takenobu
2018-03-10 15:51 GMT+09:00 William Martino <wjmartino@gmail.com>:
Hi,
You may also want to look at another (formerly) JPM project https://github.com/kadena-io/masala -- standalone pure EVM. When it was up to date it was pretty close to bug for bug compatible... yes, the EVM unit tests checked for at least one bug's existence.
FYI the degree to/ways in which the EVM is hilariously broken were large influences on [disclosure: am co-founder] Kadena's smart contract language Pact https://github.com/kadena-io/pact. I wouldn't say that Pact is a competitor to Cardano's Plutus so much as a fundamentally different approach.
-Will
- Will
---------- Will Martino WJMartino@gmail.com 203.887.6964 <(203)%20887-6964>
Sent via Superhuman <https://sprh.mn/?vip=wjmartino@gmail.com>
On Fri, Mar 09, 2018 at 9:57 PM, Takenobu Tani<takenobu.hs@gmail.com>wro te:
Hi,
Before exploring Cardano's virtual machine, I explored Ethereum virtual machine (EVM). I'm sharing some figures I wrote for my self-study.
Ethereum EVM illustrated http://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf https://github.com/takenobu-hs/ethereum-evm-illustrated
Haskell fits very well to DApps/Smart contracts :)
Regards, Takenobu
2018-01-27 11:27 GMT+09:00 Takenobu Tani <takenobu.hs@gmail.com>:
Hi Gregory,
Thank you for much information. I have heard Cardano, but I did not know the details.
It's amazing!
Although Ethereum VM is stack based virtual machine, Cardano's IELE(VM) is register based VM!, it's powerfull and beautiful! In addition, it is protected by semantics.
Umm, High-level safety abstructed language (Haskell based) + register based VM (IELE) ! It's amazing.
Thank you for telling me details. I will explore this.
Thank you very much, Takenobu
2018-01-27 10:22 GMT+09:00 Gregory Popovitch <greg7mdp@gmail.com>:
Probably you are aware of Cardano (https://www.cardanohub.org/en/home/), a new generation blockchain platform which uses languages inspired from Haskell. From the whitepaper at https://whycardano.com/:
"Systems such as Bitcoin provide an extremely inflexible and draconian scripting language that is difficult to program bespoke transactions in, and to read and understand. Yet the general programmability of languages such as Solidity introduce an extraordinary amount of complexity into the system and are useful to only a much smaller set of actors.
Therefore, we have chosen to design a new language called Simon6 <https://whycardano.com/#footnote6> in honor of its creator Simon Thompson and the creator of the concepts that inspired it, Simon Peyton Jones. Simon is a domain-specific language that is based upon *Composing contracts: an adventure in financial engineering <https://www.lexifi.com/files/resources/MLFiPaper.pdf>*.
The principal idea is that financial transactions are generally composed from a collection of foundational elements7 <https://whycardano.com/#footnote7>. If one assembles a financial periodic table of elements, then one can provide support for an arbitrarily large set of compound transactions that will cover most, if not all, common transaction types without requiring general programmability.
The primary advantage is that security and execution can be extremely well understood. Proofs can be written to show correctness of templates and exhaust the execution space of problematic transaction events, such as the creation of new money out of thin air <https://en.bitcoin.it/wiki/Value_overflow_incident> or transaction malleability <https://en.bitcoin.it/wiki/Transaction_Malleability>. Second, one can leave in extensions to add more elements by way of soft forks if new functionality is required.
That said, there will always be a need to connect CSL to overlay protocols, legacy financial systems, and special purpose servers. Thus we have developed Plutus <https://github.com/input-output-hk/plutus-prototype> as both a general purpose smart contract language and also a special purpose DSL for interoperability.
Plutus is a typed functional language based on concepts from Haskell, which can be used to write custom transaction scripts. For CSL, it will be used for complex transactions required to add support for other layers we need to connect, such as our sidechains scheme."
------------------------------ *From:* Haskell-Cafe [mailto:haskell-cafe-bounces@haskell.org] *On Behalf Of *Takenobu Tani *Sent:* Friday, January 26, 2018 8:05 PM *To:* Patrick Mylund Nielsen *Cc:* haskell-cafe *Subject:* Re: [Haskell-cafe] Haskell to Ethereum VM ?
Hi Carter, Patrick,
Thank you for reply. Quorum is interesting! It would be very nice to be able to describe Ethereum's contract with Haskell DSL. The characteristics about immutable and type will fit DApps.
Thank you very much, Takenobu
2018-01-27 2:55 GMT+09:00 Patrick Mylund Nielsen < haskell@patrickmn.com>:
The Quorum[1] team has been dreaming about such a Haskell-beginner-friendly bytecode-generating DSL for a very long time. The user experience of writing applications in a language where pitfalls are so non-obvious is one of the biggest pain points of Ethereum in general.
We would warmly welcome something like this, and would definitely look to use it in Quorum. (Our EVM is the same as public Ethereum.)
[1]: A permissioned/non-PoW version of Ethereum with high throughput and privacy - https://github.com/jpmorganchase/quorum/
On 1/26/2018 11:43 AM, Carter Schonwald wrote: > Hello Takenobu, > while theres definitely a lot of haskell code out there that deals with > ethereum (or implementing it!), i'm not aware of anything targeting the > evm isa from haskell or any other mature functional programming language > > On Fri, Jan 26, 2018 at 8:09 AM, Takenobu Tani < takenobu.hs@gmail.com > <mailto:takenobu.hs@gmail.com>> wrote: > > Hi cafe, > > Does anyone know about the code generator from Haskell's syntax to > Ethereum VM language (bytecode)? > That is, what corresponds to Solidity in Haskell. > > Although Solidity is interesting, it's difficult for me to achieve > quality and safety. > Does such a project already exist? > > Regards, > Takenobu > > > > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > <http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe> > Only members subscribed via the mailman list are allowed to post. > > > > > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. >
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
-- Steven Leiva 305.528.6038 leiva.steven@gmail.com http://www.linkedin.com/in/stevenleiva
Thanks :) 2018-03-11 1:20 GMT+09:00 Steven Leiva <leiva.steven@gmail.com>:
Fantastic write-up Takenobu.
On Sat, Mar 10, 2018 at 3:25 AM, Takenobu Tani <takenobu.hs@gmail.com> wrote:
Hi Will,
Thank you for the information. There are various smart contract environments using Haskell. I will explore various projects.
Thanks, Takenobu
2018-03-10 15:51 GMT+09:00 William Martino <wjmartino@gmail.com>:
Hi,
You may also want to look at another (formerly) JPM project https://github.com/kadena-io/masala -- standalone pure EVM. When it was up to date it was pretty close to bug for bug compatible... yes, the EVM unit tests checked for at least one bug's existence.
FYI the degree to/ways in which the EVM is hilariously broken were large influences on [disclosure: am co-founder] Kadena's smart contract language Pact https://github.com/kadena-io/pact. I wouldn't say that Pact is a competitor to Cardano's Plutus so much as a fundamentally different approach.
-Will
- Will
---------- Will Martino WJMartino@gmail.com 203.887.6964 <(203)%20887-6964>
Sent via Superhuman <https://sprh.mn/?vip=wjmartino@gmail.com>
On Fri, Mar 09, 2018 at 9:57 PM, Takenobu Tani<takenobu.hs@gmail.com>wro te:
Hi,
Before exploring Cardano's virtual machine, I explored Ethereum virtual machine (EVM). I'm sharing some figures I wrote for my self-study.
Ethereum EVM illustrated http://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf https://github.com/takenobu-hs/ethereum-evm-illustrated
Haskell fits very well to DApps/Smart contracts :)
Regards, Takenobu
2018-01-27 11:27 GMT+09:00 Takenobu Tani <takenobu.hs@gmail.com>:
Hi Gregory,
Thank you for much information. I have heard Cardano, but I did not know the details.
It's amazing!
Although Ethereum VM is stack based virtual machine, Cardano's IELE(VM) is register based VM!, it's powerfull and beautiful! In addition, it is protected by semantics.
Umm, High-level safety abstructed language (Haskell based) + register based VM (IELE) ! It's amazing.
Thank you for telling me details. I will explore this.
Thank you very much, Takenobu
2018-01-27 10:22 GMT+09:00 Gregory Popovitch <greg7mdp@gmail.com>:
Probably you are aware of Cardano (https://www.cardanohub.org/en /home/), a new generation blockchain platform which uses languages inspired from Haskell. From the whitepaper at https://whycardano.com/ :
"Systems such as Bitcoin provide an extremely inflexible and draconian scripting language that is difficult to program bespoke transactions in, and to read and understand. Yet the general programmability of languages such as Solidity introduce an extraordinary amount of complexity into the system and are useful to only a much smaller set of actors.
Therefore, we have chosen to design a new language called Simon6 <https://whycardano.com/#footnote6> in honor of its creator Simon Thompson and the creator of the concepts that inspired it, Simon Peyton Jones. Simon is a domain-specific language that is based upon *Composing contracts: an adventure in financial engineering <https://www.lexifi.com/files/resources/MLFiPaper.pdf>*.
The principal idea is that financial transactions are generally composed from a collection of foundational elements7 <https://whycardano.com/#footnote7>. If one assembles a financial periodic table of elements, then one can provide support for an arbitrarily large set of compound transactions that will cover most, if not all, common transaction types without requiring general programmability.
The primary advantage is that security and execution can be extremely well understood. Proofs can be written to show correctness of templates and exhaust the execution space of problematic transaction events, such as the creation of new money out of thin air <https://en.bitcoin.it/wiki/Value_overflow_incident> or transaction malleability <https://en.bitcoin.it/wiki/Transaction_Malleability>. Second, one can leave in extensions to add more elements by way of soft forks if new functionality is required.
That said, there will always be a need to connect CSL to overlay protocols, legacy financial systems, and special purpose servers. Thus we have developed Plutus <https://github.com/input-output-hk/plutus-prototype> as both a general purpose smart contract language and also a special purpose DSL for interoperability.
Plutus is a typed functional language based on concepts from Haskell, which can be used to write custom transaction scripts. For CSL, it will be used for complex transactions required to add support for other layers we need to connect, such as our sidechains scheme."
------------------------------ *From:* Haskell-Cafe [mailto:haskell-cafe-bounces@haskell.org] *On Behalf Of *Takenobu Tani *Sent:* Friday, January 26, 2018 8:05 PM *To:* Patrick Mylund Nielsen *Cc:* haskell-cafe *Subject:* Re: [Haskell-cafe] Haskell to Ethereum VM ?
Hi Carter, Patrick,
Thank you for reply. Quorum is interesting! It would be very nice to be able to describe Ethereum's contract with Haskell DSL. The characteristics about immutable and type will fit DApps.
Thank you very much, Takenobu
2018-01-27 2:55 GMT+09:00 Patrick Mylund Nielsen < haskell@patrickmn.com>:
> The Quorum[1] team has been dreaming about such a > Haskell-beginner-friendly bytecode-generating DSL for a very long > time. > The user experience of writing applications in a language where > pitfalls > are so non-obvious is one of the biggest pain points of Ethereum in > general. > > We would warmly welcome something like this, and would definitely > look > to use it in Quorum. (Our EVM is the same as public Ethereum.) > > [1]: A permissioned/non-PoW version of Ethereum with high throughput > and > privacy - https://github.com/jpmorganchase/quorum/ > > On 1/26/2018 11:43 AM, Carter Schonwald wrote: > > Hello Takenobu, > > while theres definitely a lot of haskell code out there that deals > with > > ethereum (or implementing it!), i'm not aware of anything > targeting the > > evm isa from haskell or any other mature functional programming > language > > > > On Fri, Jan 26, 2018 at 8:09 AM, Takenobu Tani < > takenobu.hs@gmail.com > > <mailto:takenobu.hs@gmail.com>> wrote: > > > > Hi cafe, > > > > Does anyone know about the code generator from Haskell's > syntax to > > Ethereum VM language (bytecode)? > > That is, what corresponds to Solidity in Haskell. > > > > Although Solidity is interesting, it's difficult for me to > achieve > > quality and safety. > > Does such a project already exist? > > > > Regards, > > Takenobu > > > > > > > > _______________________________________________ > > Haskell-Cafe mailing list > > To (un)subscribe, modify options or view archives go to: > > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > > <http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > > > > Only members subscribed via the mailman list are allowed to > post. > > > > > > > > > > _______________________________________________ > > Haskell-Cafe mailing list > > To (un)subscribe, modify options or view archives go to: > > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > > Only members subscribed via the mailman list are allowed to post. > > >
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
-- Steven Leiva 305.528.6038 <(305)%20528-6038> leiva.steven@gmail.com http://www.linkedin.com/in/stevenleiva
Hi cafe, I implemented a toy code of EVM assembler on Haskell DSL. HAssembly-evm https://github.com/takenobu-hs/haskell-ethereum-assembly Cheers, Takenobu 2018-03-10 11:57 GMT+09:00 Takenobu Tani <takenobu.hs@gmail.com>:
Hi,
Before exploring Cardano's virtual machine, I explored Ethereum virtual machine (EVM). I'm sharing some figures I wrote for my self-study.
Ethereum EVM illustrated http://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf https://github.com/takenobu-hs/ethereum-evm-illustrated
Haskell fits very well to DApps/Smart contracts :)
Regards, Takenobu
2018-01-27 11:27 GMT+09:00 Takenobu Tani <takenobu.hs@gmail.com>:
Hi Gregory,
Thank you for much information. I have heard Cardano, but I did not know the details.
It's amazing!
Although Ethereum VM is stack based virtual machine, Cardano's IELE(VM) is register based VM!, it's powerfull and beautiful! In addition, it is protected by semantics.
Umm, High-level safety abstructed language (Haskell based) + register based VM (IELE) ! It's amazing.
Thank you for telling me details. I will explore this.
Thank you very much, Takenobu
2018-01-27 10:22 GMT+09:00 Gregory Popovitch <greg7mdp@gmail.com>:
Probably you are aware of Cardano (https://www.cardanohub.org/en/home/), a new generation blockchain platform which uses languages inspired from Haskell. From the whitepaper at https://whycardano.com/:
"Systems such as Bitcoin provide an extremely inflexible and draconian scripting language that is difficult to program bespoke transactions in, and to read and understand. Yet the general programmability of languages such as Solidity introduce an extraordinary amount of complexity into the system and are useful to only a much smaller set of actors.
Therefore, we have chosen to design a new language called Simon6 <https://whycardano.com/#footnote6> in honor of its creator Simon Thompson and the creator of the concepts that inspired it, Simon Peyton Jones. Simon is a domain-specific language that is based upon *Composing contracts: an adventure in financial engineering <https://www.lexifi.com/files/resources/MLFiPaper.pdf>*.
The principal idea is that financial transactions are generally composed from a collection of foundational elements7 <https://whycardano.com/#footnote7>. If one assembles a financial periodic table of elements, then one can provide support for an arbitrarily large set of compound transactions that will cover most, if not all, common transaction types without requiring general programmability.
The primary advantage is that security and execution can be extremely well understood. Proofs can be written to show correctness of templates and exhaust the execution space of problematic transaction events, such as the creation of new money out of thin air <https://en.bitcoin.it/wiki/Value_overflow_incident> or transaction malleability <https://en.bitcoin.it/wiki/Transaction_Malleability>. Second, one can leave in extensions to add more elements by way of soft forks if new functionality is required.
That said, there will always be a need to connect CSL to overlay protocols, legacy financial systems, and special purpose servers. Thus we have developed Plutus <https://github.com/input-output-hk/plutus-prototype> as both a general purpose smart contract language and also a special purpose DSL for interoperability.
Plutus is a typed functional language based on concepts from Haskell, which can be used to write custom transaction scripts. For CSL, it will be used for complex transactions required to add support for other layers we need to connect, such as our sidechains scheme."
------------------------------ *From:* Haskell-Cafe [mailto:haskell-cafe-bounces@haskell.org] *On Behalf Of *Takenobu Tani *Sent:* Friday, January 26, 2018 8:05 PM *To:* Patrick Mylund Nielsen *Cc:* haskell-cafe *Subject:* Re: [Haskell-cafe] Haskell to Ethereum VM ?
Hi Carter, Patrick,
Thank you for reply. Quorum is interesting! It would be very nice to be able to describe Ethereum's contract with Haskell DSL. The characteristics about immutable and type will fit DApps.
Thank you very much, Takenobu
2018-01-27 2:55 GMT+09:00 Patrick Mylund Nielsen <haskell@patrickmn.com> :
The Quorum[1] team has been dreaming about such a Haskell-beginner-friendly bytecode-generating DSL for a very long time. The user experience of writing applications in a language where pitfalls are so non-obvious is one of the biggest pain points of Ethereum in general.
We would warmly welcome something like this, and would definitely look to use it in Quorum. (Our EVM is the same as public Ethereum.)
[1]: A permissioned/non-PoW version of Ethereum with high throughput and privacy - https://github.com/jpmorganchase/quorum/
On 1/26/2018 11:43 AM, Carter Schonwald wrote:
Hello Takenobu, while theres definitely a lot of haskell code out there that deals with ethereum (or implementing it!), i'm not aware of anything targeting the evm isa from haskell or any other mature functional programming language
On Fri, Jan 26, 2018 at 8:09 AM, Takenobu Tani <takenobu.hs@gmail.com <mailto:takenobu.hs@gmail.com>> wrote:
Hi cafe,
Does anyone know about the code generator from Haskell's syntax to Ethereum VM language (bytecode)? That is, what corresponds to Solidity in Haskell.
Although Solidity is interesting, it's difficult for me to achieve quality and safety. Does such a project already exist?
Regards, Takenobu
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe <http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe> Only members subscribed via the mailman list are allowed to post.
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
participants (6)
-
Carter Schonwald -
Gregory Popovitch -
Patrick Mylund Nielsen -
Steven Leiva -
Takenobu Tani -
William Martino