When faced with a bug, performance or security issue in the peer to peer (P2P) network, it is useful to look under the hood and examine the messages that are being sent between individual nodes.

For this purpose, they have developed the TezEdge P2P Explorer, a tool for everyone who wants to record and view the contents of the messages that are sent through the Tezos P2P network. Bugs arising from bootstrapping and synchronization can be easily tracked down and examined, saving time for developers who want to fix such issues.

A blockchain is a decentralized ledger that uses a P2P network to distribute data between its nodes. In the Tezos blockchain, a node communicates with other nodes through a P2P network, establishing encrypted communication and distributing information about the blockchain state. For a deeper understanding of the message flow within the Tezos P2P network, please see ther past article that describes how nodes interact with each other.

The P2P network features various types of messages that perform a range of actions. The P2P Explorer reveals the contents of these messages. These messages range from those that initiate communication with other peers to information about the state of the blockchain. An overview of these messages is provided below:

Message Types

Bootstrap — Message sent by a local peer after establishing connection. Nothing noteworthy is contained in it. Advertise — Usually a response (from remote peers) to the Bootstrap message, containing a list of other known peers. Swap Request, Swap Ack — Messages for swapping mechanism, remote peer asks local node to swap its place with some other node, if local node is OK with that it will send Ack and propose new peer to swap with. Disconnect — End of connection. Generic Message — These messages are defined in other parts than the P2P layer (like distributed storage or protocol itself). Shell messages for P2P gossip:

5.1 (Get) Current Branch — Request/Response to get information about the current running branch.

5.2 Deactivate — Deactivation of a specific branch or chain.

5.3 (Get) Current head — Request/Response to get information about current head block.

5.4 Get Block headers, Block header — Request block headers for specific blocks, get responses containing block header information.

5.5 Get Operations, Operation — Request operations with specific hashes, receive them one by one.

5.6 (Get) Protocol — Similar to 5.1 but requests protocol information

5.7 Get Operation Hashes For Blocks, Operation Hashes For Block — Request operation hashes for specific blocks, and get them one by one.

5.8 Get Operations For Blocks, Operations For Block — Request all operations for specific blocks, get all operations for a block at a time.

How It works

When a message arrives on the P2P layer, it is decrypted, deserialized and saved. Each time the node is restarted, the messages are deleted in order to save storage space. At the moment they are showcasing an working alpha version of the P2P Explorer. They plan on expanding functionalities and improving the user interface (UI) in the future.

The P2P Explorer can display all incoming and outgoing messages between peers, message types and their contents.

Message details

In this screen, there is a list of messages. We can click on a particular message and a preview of its contents will be displayed.

2. Peer filter

In order to filter out the messages for a particular peer, you may either click on an address from a list of all peers, or click on a peer from a list of all network messages.

3. Peer search bar

You can also filter out messages by typing the peer address into the search bar.

How to run the P2P Explorer

Download and install Docker and Docker Compose. Open shell and type this code into the command line and then press Enter:

docker-compose pull docker-compose up

2. Open the TezEdge Explorer in your browser

You can view the status of the node in your browser by entering this address into your browser’s URL bar: http://localhost:8080

There is TezEdge documentation, where you can read primarily about the TezEdge project, as well as information on blockchain and Tezos.

Teztracker Update #7 — the everstake team has been working on adding more data and extending the existing pages to:

Block page & Block list. They’ve added more information to the block page which now displays baker priority, block time & fitness, volume and fees and the cycle information. Besides, you can now switch to next/previous block the arrows. The blocks table have also been extended with additional information, that shows details related to Bakers, transactions, cycles and other. On top of that, now the block page shows the information on the included endorsements. Also, the tab ‘Other’ shows all the operations besides transactions and endorsements included into a block. Baker page. First of all, they’ve added a separate tab ‘Endorsements’ that shows all blocks validated by the baker in the past. Besides that you can sort bakers by capacity, fee, staking balance and the number of blocks and endorsements. This allows to present information in a more digestible way. Account page & Account list. Now all the accounts pages contain a balances chart that shows statistics related to changes of the amount of stored cryptocurrency over time. This page also displays other data related to the account activity. Operations pages. Failed operations are now highlighted in red, so that users could see critical events. Now all operations contain public baker aliases, so users can recognize all bakers now by their real name and not only by their address. Such minor changes as operations status, UI/UX fixes, unified column names, baker capacity were implemented as well.

Bitcoin is two things: A decentralized blockchain and a censorship-resistant, digital currency. For Bitcoin to work, both are needed but it is possible to not only use Bitcoin (the currency) on the Bitcoin blockchain but also to use it with the Lightning network or the Liquid and RSK sidechains.

Today, the Bitcoin Association Switzerland (BAS), together with the involved companies, announces yet another way to use Bitcoin: tzBTC, a token on the Tezos blockchain backed 1–1 by Bitcoin. With Bitcoin being the de facto reserve-currency of cryptocurrencies, tzBTC is one of the first examples of tokenization on Tezos. It enables the use of the Tezos blockchain features with Bitcoin.

The Tezos community’s values are to a certain degree similar to most Bitcoiner’s values. Nic Carter’s (a respected researcher and investor in the Bitcoin community) assessment of the Tezos community is that it has strong shared values, arguably as strong as Bitcoin’s.. The fact that the Tezos Foundation continues to be one of the largest holders of Bitcoin reinforces this. All this makes Tezos a natural choice as the first public blockchain for a Bitcoin-backed token from BAS.

The multi-signature (“multi-sig”) key management system of tzBTC enables a strongly trust-reduced setup with no central issuer as a single point of failure, while being fully transparent. The Bitcoin Association Switzerland acts as an overseer and coordinates with the keyholders. Protected by Swiss law and cryptography, they’ve found a practical balance between decentralization and usability. You can learn more about the tzBTC project at bitcoinassociation.ch/tzbtc and tzbtc.io.

tzBTC gives people more choice of how they can use Bitcoin, and by that increase the utility and strengthen the position of Bitcoin as the world’s leading digital currency. This belief in choice is why they are exploring to bring Bitcoin to more open networks. tzBTC is now available in Atomex wallet. Also tzkt.io fully supports tzBTC, so you can easily track total supply, token holders, balances, transfers, mint, burn, etc.