Lab 1 of MIT 6.828/6.S081 Fall 2019 is Unix utilities: using xv6 system calls to implement tools such as sleep, pingpong, primes, find, and xargs. This post explains the approach behind each program in detail, along with how a system call flows through xv6.

Read more

In Fabric development, testing chaincode is a bit of a headache. First, in a real deployment, storage and queries in chaincode depend on the state database on the peer, so you cannot test it directly on your local machine. Second, chaincode runs inside a container, which makes it hard to get at the logs printed by your code.

Read more

Adding a new organization to a Fabric network while it is running is quite involved, and there is very little material on it online. Most of what exists is based on simple examples like first-network, and adds the organization by starting a cli container. There is almost nothing aimed at real applications. This post shows how to add an organization dynamically by calling the SDK from an application.

Read more

The organization (Org) and channel names are two fairly important configuration parameters of a Fabric network. Both are already set in the samples Fabric provides: the organizations are usually named "Org1" and "Org2", and the channel "mychannel". In real application development, however, you usually need custom organization and channel names. Here I use balance-transfer, the sample closest to a real application, to show how to set custom organization and channel names.

Read more