bitcoin-ps | Desktop application to test Bitcoin Core using PowerShell scripts

bitcoin-ps | Desktop application to test Bitcoin Core using PowerShell scripts
From: Prayank @ 2021-08-14  1:15 UTC ( / )
  To: Bitcoin Dev



Hello World,

I was working on an intern project in last few weeks which is almost ready for first release. Will be helpful if devs working on Bitcoin Core and .NET projects related to Bitcoin can share feedback. Pieter Wuille and Luke Dashjr had already shared few things before I started working on this project which wasn't really positive considering the use of .NET and PowerShell in this project. I respect their opinion and agree we could make better applications however I have tried my best to express the goal I am trying to achieve with this project below.

Project repository: https://github.com/prayank23/bitcoin-ps

Other details about related milestones: https://github.com/BlockchainCommons/Community/discussions/51

Project is inspired by Burp Suite and I want to create a similar application which is only used to test privacy and security of Bitcoin Core RPC using GUI. I used WPF instead of Avalonia right now to save time. I will use it in future to make bitcoin-ps cross platform, most of the code will remain same and I have shared a proof of concept in milestones link above in which application works fine on Ubuntu with no pwsh installed. Hopefully this issue will also be resolved soon: https://github.com/AvaloniaUI/Avalonia/issues/4361

Default scripts:

1.CPU_RAM_sendtoaddress.ps1 : Check CPU and RAM usage while using some wallet RPCs multiple times. Results for Ubuntu and Windows were interesting. For some reason it almost used 100% CPU in Ubuntu.

2.onlynet_i2p.ps1 : Outbound connections are made to onion peers while onlynet=i2p is used without any proxy

3.lock_unspent.ps1 : Check if locked UTXOs are unlocked on restart

4.custom_change_rbf.ps1: Compares the inputs for Tx1 and Tx2 where Tx1 is RBF transaction with 1 input, 2 ouputs (custom change address with label), Tx2 is replacement transaction

Why PowerShell?

1.I have worked on 2 similar projects in past: A basic application for Office 365 admins and support engineers and One project related to Infosec.
2.Testing using different languages locally doesn't impact Bitcoin Core or require any changes.
3.Easier to write and devs who use PowerShell scripts in their projects could relate to it, find interesting and maybe start contributing to Bitcoin Core.
4.It can be done using bash or maybe python scripts as well. For me using PowerShell in this project is like meeting a college friend and exploring new places.
5.PowerShell Core is open source and works on Linux, Mac etc.

Last but not least, I would like to thank Christopher, Vinay, guests in meetings, other interns and everyone involved in Blockchain Commons. I have learnt lot of new things during internship. Would suggest everyone to start with 'Learning Bitcoin from the Command Line' if they have recently started reading about Bitcoin. I wish I could do more projects, will work on DEX and OfflineTx even after internship ends to complete by end of this year.
-- 
Prayank

A3B1 E430 2298 178F