Kefkius



Offline



Activity: 64

Merit: 20







MemberActivity: 64Merit: 20 Hashmal - Transaction Script IDE (alpha) September 01, 2015, 11:25:16 PM

Last edit: September 03, 2015, 05:47:42 PM by Kefkius Merited by malevolent (10) #1 Hashmal IRC) Transaction Script IDE ( Github

Hashmal is an IDE for Bitcoin transaction scripts. Its purpose is to make it easier to write, evaluate, and learn about transaction scripts. There are very few tools that help people learn about how transaction scripts work; hopefully Hashmal can do this.



Demonstration of stack evaluation.

Hashmal is intended for cryptocurrency developers and power users. It uses



Key Features



Write scripts in human-readable form.

Observe the stack as scripts are executed.

See explanations of script operations as they are evaluated.

Notice



Hashmal is a project in its infancy. Please be careful if you intend to use any scripts you make in Hashmal with an actual blockchain. This is alpha software.



You can download Hashmal from Hashmal is an IDE for Bitcoin transaction scripts. Its purpose is to make it easier to write, evaluate, and learn about transaction scripts. There are very few tools that help people learn about how transaction scripts work; hopefully Hashmal can do this.Hashmal is intended for cryptocurrency developers and power users. It uses python-bitcoinlib for most of its functionality.Hashmal is a project in its infancy. Please be careful if you intend to use any scripts you make in Hashmal with an actual blockchain.You can download Hashmal from Github Developer of FreeBitcoins.com Clamcoin faucet.

Uptrenda



Offline



Activity: 114

Merit: 10







MemberActivity: 114Merit: 10 Re: Hashmal - Transaction Script IDE (alpha) September 01, 2015, 11:40:51 PM #2 First POST and OP congratulations because you just solved a problem that every Bitcoin developer of the past few years has grappled with. I'm definitely going to be checking this out.



Edit: seems like an easy improvement to this is add another field for raw transactions to check that the TX is valid and to inspect the script works as intended. I just noticed what you wrote about multi-sig but should be quite easy to code this (pybitcoin-lib already has all the code.)

Kefkius



Offline



Activity: 64

Merit: 20







MemberActivity: 64Merit: 20 Re: Hashmal - Transaction Script IDE (alpha) September 03, 2015, 03:36:44 AM #3 Quote from: Uptrenda on September 01, 2015, 11:40:51 PM First POST and OP congratulations because you just solved a problem that every Bitcoin developer of the past few years has grappled with. I'm definitely going to be checking this out.



Edit: seems like an easy improvement to this is add another field for raw transactions to check that the TX is valid and to inspect the script works as intended. I just noticed what you wrote about multi-sig but should be quite easy to code this (pybitcoin-lib already has all the code.)



Thanks! The thing about CHECKSIG is that the Stack View tool was getting pretty crowded so I didn't put in any way to include a transaction. But you're definitely right in that it wouldn't be very difficult to do. I think the best way to accomplish that is to create a tool called "Transaction Deserializer" or some such, and have it be able to interact with the Stack View tool. I'll give that a shot. Thanks! The thing about CHECKSIG is that the Stack View tool was getting pretty crowded so I didn't put in any way to include a transaction. But you're definitely right in that it wouldn't be very difficult to do. I think the best way to accomplish that is to create a tool called "Transaction Deserializer" or some such, and have it be able to interact with the Stack View tool. I'll give that a shot. Developer of FreeBitcoins.com Clamcoin faucet.

Uptrenda



Offline



Activity: 114

Merit: 10







MemberActivity: 114Merit: 10 Re: Hashmal - Transaction Script IDE (alpha) September 03, 2015, 04:17:10 AM #5 Quote from: Kefkius on September 03, 2015, 03:36:44 AM Quote from: Uptrenda on September 01, 2015, 11:40:51 PM First POST and OP congratulations because you just solved a problem that every Bitcoin developer of the past few years has grappled with. I'm definitely going to be checking this out.



Edit: seems like an easy improvement to this is add another field for raw transactions to check that the TX is valid and to inspect the script works as intended. I just noticed what you wrote about multi-sig but should be quite easy to code this (pybitcoin-lib already has all the code.)



Thanks! The thing about CHECKSIG is that the Stack View tool was getting pretty crowded so I didn't put in any way to include a transaction. But you're definitely right in that it wouldn't be very difficult to do. I think the best way to accomplish that is to create a tool called "Transaction Deserializer" or some such, and have it be able to interact with the Stack View tool. I'll give that a shot.

Thanks! The thing about CHECKSIG is that the Stack View tool was getting pretty crowded so I didn't put in any way to include a transaction. But you're definitely right in that it wouldn't be very difficult to do. I think the best way to accomplish that is to create a tool called "Transaction Deserializer" or some such, and have it be able to interact with the Stack View tool. I'll give that a shot.

Oh man, where were you 2 years ago when I was getting started? I'm wishing good things for this project Oh man, where were you 2 years ago when I was getting started? I'm wishing good things for this project

Kefkius



Offline



Activity: 64

Merit: 20







MemberActivity: 64Merit: 20 Re: Hashmal - Transaction Script IDE (alpha) September 04, 2015, 12:05:35 AM #18 Quote from: mustyoshi on September 03, 2015, 08:03:17 PM Any chance of porting this to Javascript?



Not really, no. The whole thing was designed with Python in mind.



Anyway, there are now some basic usage docs



The most significant update is that you can now specify a "spending transaction" in the Stack Evaluator, and select one of its inputs. That input's scriptSig will be pushed to the stack before your script starts. "OP_CHECKSIG" and "OP_CHECKSIGVERIFY" should work now.



Pretty soon I'll have to start incrementing the version number and providing changelogs. Not really, no. The whole thing was designed with Python in mind.Anyway, there are now some basic usage docs here . I've also put in a basic Transaction Deserializer tool which can be upgraded with the functionality talked about earlier in the thread at a later time.The most significant update is that you can now specify a "spending transaction" in the Stack Evaluator, and select one of its inputs. That input's scriptSig will be pushed to the stack before your script starts. "OP_CHECKSIG" and "OP_CHECKSIGVERIFY"work now.Pretty soon I'll have to start incrementing the version number and providing changelogs. Developer of FreeBitcoins.com Clamcoin faucet.