| BibTeX | @inproceedings{Nazarewicz2025guest,
title = {Be My Guest: {Welcoming} Interoperability into {IBC}-Incompatible Blockchains},
author = {Michał Nazarewicz and Dhruv D.\ Jain and Miguel Matos and Blas Rodriguez},
booktitle = {55th Annual IEEE/IFIP International Conference on Dependable Systems and Networks\,--\,Supplemental Volume (DSN-S)},
pages = {160--166},
year = 2025,
month = jun,
day = {23--26},
location = {Naples, Italy},
publisher = {IEEE},
address = {Piscataway, USA},
doi = {10.1109/DSN-S65789.2025.00057}
} |
|---|
| APA | Nazarewicz, M., Jain, D. D., Matos, M., and Rodriguez, B. (2025). Be my guest: Welcoming interoperability into IBC-incompatible blockchains. In 55th Annual IEEE/IFIP International Conference on Dependable Systems and Networks – Supplemental Volume (DSN-S), pages 160–166, Naples, Italy. doi:10.1109/DSN-S65789.2025.00057 |
|---|
| IEEE | M. Nazarewicz, D. D. Jain, M. Matos, and B. Rodriguez, “Be my guest: Welcoming interoperability into IBC-incompatible blockchains,” 2025 55th Annual IEEE/IFIP International Conference on Dependable Systems and Networks – Supplemental Volume (DSN-S), Naples, Italy, Jun. 2025, pp. 160–166, doi:10.1109/DSN-S65789.2025.00057 I’m delighted to share my paper I’ve presented at the IEEE/IFIP International Conference on Dependable Systems: ‘Be My Guest: Welcoming Interoperability into IBC-Incompatible Blockchains’. It introduces the concept of a guest blockchain which runs on top of a blockchain and provides features necessary to support the Inter-Blockchain Communication (IBC) protocol. This enables trustless cross-chain interoperability between blockchains which would otherwise not support IBC-based communication. We demonstrate our approach by deploying the guest blockchain on Solana connecting it to the Cosmos ecosystem with performance comparable to native IBC implementations.In the previous post, I criticised Rust’s contribution process, where a simple patch languished due to communication hurdles. Rust isn’t unique in struggling with its process. This time, the story is about Python. Parsing HTML in PythonAs its name implies, the html.parser module provides interfaces for parsing HTML documents. It offers an HTMLParser base class users can extend to implement their own handling of HTML markup. Of our interest is the unknown_decl method, which ‘is called when an unrecognised declaration is read by the parser.’ It’s called with an argument containing ‘the entire contents of the declaration inside the <![...]> markup.’ For example: from html.parser import HTMLParser
class MyParser(HTMLParser):
def unknown_decl(self, data: str) -> None:
print(data)
parser = MyParser()
parser.feed('<![if test]>')
# Prints out: if test
# (unless Python 3.13.4+, see below)
parser.feed('<![CDATA[test]]>')
# Prints out: CDATA[testIn November 2015, rmcgibbo opened Twine Issue #153. Less than two months later, he closed it with no explanation. The motive behind this baffling move might have remained an unsolved Internet mystery if not for one crucial fact: someone asked and rmcgibbo was willing to talk:  thedrow on Dec 31, 2015 Contributor Were you able to resolve the issue?
 rmcgibbo on Dec 31, 2015 Author No. I decided I don’t care.
We all had such moments, and this humorous exchange serves as a reminder that certain matters are not worth stressing about. Like Marcus Aurelius once said, ‘choose not to be harmed — and you won’t feel harmed.’ However, instead of discussing philosophy, I want to bring up some of my experiences to make a point about contributions to free software projects. The two pull requestsRather than London and Paris, this tale takes place on GitHub and linux-kernel mailing list. The two titular pull requests (PRs) are of my own making and contrast between them help discuss and critique Rust’s development process. In my previous post, I mentioned an ancient C++ technique of using ((X*)0)->f() syntax to simulate static methods. It ‘works’ by considering things from a machine code point of view, where a non-virtual method call is the same as a function call with an additional this argument. In general, a well-behaving obj->method() call is compiled into method(obj). With the assumption this is true, one might construct the following code: struct Value {
int safe_get() {
return this ? value : -1;
}
int value;
};
void print(Value *val) {
printf("value = %d", val->safe_get());
if (val == nullptr) puts("val is null");
}Will it work as expected though? |
|---|