Steve Shadders
Intermediate Bitcoin Script
#1about 3 minutes
Understanding Bitcoin Script as a Forth-like language
Bitcoin Script is a compact and efficient stack-based language similar to Forth, making it ideal for the resource-constrained environment of blockchain transactions.
#2about 8 minutes
Improving Bitcoin Script readability with aliases and formatting
A custom Script Definition Language (SDL) improves the developer experience by removing OP_ prefixes, using aliases for operators, and enabling standard code formatting.
#3about 4 minutes
A better way to debug Bitcoin Script
Overcome the poor native debugging experience by using a tool that provides precise error locations and a stack dumping operator to inspect state during execution.
#4about 13 minutes
The stack and reverse polish notation explained
Stack-based languages operate using reverse polish notation (subject-object-verb), which is a more natural structure for machine execution than standard infix notation.
#5about 4 minutes
Compile-time versus runtime script execution
Understand the distinction between compile-time, where code is generated with known inputs, and runtime, where it executes with new inputs provided later.
#6about 12 minutes
Using variables and words in a script definition language
The Script Definition Language introduces features like comments, variables, and reusable code blocks called 'words' to structure and simplify complex scripts.
#7about 3 minutes
How to implement loops through compile-time unrolling
Since Bitcoin Script lacks native loop opcodes, loops can be implemented at compile time by unrolling the code, which repeats the script body a specified number of times.
#8about 2 minutes
Dynamic script generation with compile-time functions
The 'funk' keyword executes a function at compile time, enabling dynamic script generation based on the values of known inputs before runtime.
#9about 6 minutes
Building a dynamic byte reversal function
A practical example demonstrates creating a byte reversal script that dynamically adapts its loop count based on the input's length, calculated at compile time.
#10about 10 minutes
Q&A on script optimization, tooling, and advanced concepts
The session concludes with answers to audience questions on hardware acceleration, data limits, OP_CODESEPARATOR, and the future of the demonstrated scripting tool.
Related jobs
Jobs that call for the skills explored in this talk.
Featured Partners
Related Videos
Introduction to sCrypt - a smart contract language for Bitcoin SV
Liu Xiaohui
Bitcoin transactions- embedding and using data for applications built on Bitcoin SV
Jack Davies & Alessio Pagani
OP_PUSH_TX and its applications in Bitcoin smart contracts
Xiaohui Liu
Run on Bitcoin
Brenton Gunning
Bitcoin SV: The Massively Scaled Blockchain to Meet Developer Needs
Jimmy Nguyen & Steve Shadders
Connect API for Bitcoin SV applications
Rafa Jiménez
Smart Contract fundamentals - My first DApp
Tim Weingärtner
Nano services and dust return transactions + long chain
Matej Trampuš & Steve Shadders
From learning to earning
Jobs that call for the skills explored in this talk.
Full-Stack Developer (Golang + JavaScript/TypeScript)
GO-VIRTUAL BV
Gistel, Belgium
Intermediate
Go
API
MySQL
NoSQL
Redis
+11
Software Development Engineer in Test
Blockchain.com
Charing Cross, United Kingdom
Remote
€56K
Redis
JMeter
Python
+6
Fullstack Javascript Developer
Lajos.nl
Rotterdam, Netherlands
€8-10K
Intermediate
React
Node.js
JavaScript
Software Engineer - Player Web SDK
Bitmovin Inc
Software Engineer - Player Web SDKBitmovin Inc
Vienna, Austria
Remote
API
CSS
GIT
SASS
+4
Node.js/Playwright Engineer - Testdriver Development
TechBiz Global GmbH
Canton of Montpellier-3, France
Remote
REST
Docker
Node.js
JavaScript
+1





