 Okay, hello everyone and welcome to Iroha demo session. Yeah, hope you can see me and hear me. So, yeah, let's get started. So my name is Kamil. I am CEO of Soryamitsu Labs, which is Russian range of Soryamitsu. And today I will present you a better Iroha V2, which is a next generation blockchain platform. So, yeah, let's get started. Today we'll speak about Iroha V2. Then I will show you some GitHub structure of our repository. Then during the demo we will spin up a simple Iroha network and interact with it using Iroha special instructions and Iroha client CLI. So, yeah, let's start. So, who we are? We are Soryamitsu and we were established in 2016 and then we were one of the initial contributors to Hyperleder Iroha and we use this blockchain as foundation for our projects. Like we created payment system for the National Bank of Cambodia and also we worked with the Moscow Exchange to create platform called D3leder for tokenization of digital assets and, yeah, we were also selected to create C++ implementation of Volkadot. So, yeah, we kind of not work only in enterprise but also in public blockchains as well. So, yeah, to start with Iroha we should think about this philosophy. We should try to keep it as simple as possible so that people without big experience and background in blockchain can get started with writing applications on top of it using, for example, mobile libraries that we provide. That's why we would focus on mobile here. So, yeah, just to be a blockchain that people really can use without spending too much time on getting into details like consensus and other stuff. Well, when we speak about blockchains, yeah, usually I like presented like every blockchain has more or less same components like message queue, database, their transition function, consensus and if we compare Iroha 1 and Iroha 2 we can see the differences here. Iroha 1 has a message queue which is based on, well, that allows you to basically create MST transactions like multi-signature transactions that are based on the quorums. Every account has a number of signatories and you have a rule like if your quorum, for example, too, then at least two signatures should be attached to the transaction created by this account. And in Iroha 2 we have conditional MST which allows you to write more complicated conditions like, well, you can write a rule like every signatory should put his signature or just any of them or, for example, two signatories and well, it's mandatory that one of the signatories belongs to the list of pre-approved signatories or something like that. Yeah, for database in Iroha 1 we use Postgres and also we use RocksDB. In Iroha 2 we use in-memory key value storage because we believe that, well, the RAM gets cheaper and cheaper every year and if you think even about blockchains like Ethereum its entire state could be fit into RAM of the modern computer. So, yeah, that's why with that in mind we develop in-memory key value storage in Iroha 2. And for state transition functions in Iroha 1 we had a concept called commands which is kind of atomic instructions predefined atomic instructions that read them in C++ we also had integration with Hyperledger Barrel which is a theorem virtual machine. Yes, and in Iroha 2 we have instructions they are kind of more general than just commands and we also have, well, we have under development custom runtime which is kind of even more general so it would be possible to write virtual machines using WebAssembly or theory virtual machines as well but that depends on the use case like for central banks for example instructions are way to go as they are more simple and they are kind of created specifically for this use case but for the public blockchains we need very custom logic yeah, so custom runtimes work the best. For consensus, yeah, in Iroha 1 we use Yak which is CFT and in Iroha 2 we developed Sumeragi which is Byzantine for tolerance. So, yeah, with that I can give you the short overview of Iroha 2 so it is written in Rust and as I said all data is kept in memory but you shouldn't worry like we do not write anything on disk and so your data is volatile because well, the blocks are updated on the disk so nothing is lost we can easily recreate the state using blocks if needed. We have integration with Hyperledger Ursa which allows us to use any cryptography algorithm that is supported by Ursa and we also use multi-hashes for transactions like we can photoreselection signatures so that we can recognize by the prefix what kind of cryptography algorithm was used to sign specific transactions so that is a really flexible way of using any kind of cryptography in Iroha. Well, Turing completeness in smart contracts could be achieved either by using instructions or later by virtual machines like WebAssembly that we are going to develop the way we are going to do that is that we will have an interface for the state transition functions like QBlock with a data transaction and implementation of them could be either using instructions or for example in WebAssembly virtual machine that is the way it works. So if we use instructions so here is the data model that we have. We have domains and we have account address in this domain and it's kind of we notice that it's really simple but also useful for the cases like banks for example we have several banks in the system and each of them have their domain and they have certain users that have certain permissions in that domain so yeah, that's very convenient but actually that's the data model we use in central bank of Cambodia for example. Okay, so here we can start, well dig into GitHub structure of Iroha the whole development is going in hyperledger Iroha Iroha 2 dev branch actually so you can go into hyperledger Iroha select Iroha 2 either Iroha 2 dev or just Iroha 2 dev branch well Iroha 2 dev has more features but it's less stable so if you need more stable version of Iroha 2 you should use Iroha 2 branch and here we have several folders the main folder is just Iroha and yeah, the rest folders actually they might be even separate repositories in future so like Iroha CLI Iroha cryptography or Iroha HTTP server so yeah, all these different stuff we'll keep here then so yeah, we have several crates that we're going to use today so Iroha is the main create which is used to spin up Iroha network then we have Iroha client CLI well at the moment we don't have mobile libraries and DS libraries finished to Iroha 2 so we just use CLI but I think you'll get the impression of how to use Iroha and what you can do with it using CLI and also we have crypto CLI which allows us to generate keys so get started then the scenario is we'll first review our genesis file then we generate some accounts and spin up the network and start to interact with it so for genesis file you can go to Iroha folder and example of it you can find here basically the genesis contains the list of transactions that are executed in the very first block so here for example we register new domain called Wonderland then we register a new account Alice at Wonderland we register some assets like Rose at Wonderland and yeah, we also mean some of these assets and give it to Alice so yeah, for example in that case we have 13 roses minted actually we're going to use these genesis for our demo today yeah, the next thing is generating new account so yeah, we go into the terminal we have yeah, we can use this command to generate Bob account and here we can see that we generate the public and private key first several bytes of public key they contain information about which kind of cartography was used to generate this key pair so in that case it is ed25519 and then we put Bob's key pair into Bob the zonefile here we are and then we'll be able to use it to sign transactions on Bob's behalf so yeah, so let's spin up a network yeah, we have two ways of doing that first is yeah, first way we can generate like pure keys and create a list of peers and then we'll kind of create every peer and spin up the network but for the demo purposes today to speed up things here we created both file, so we're going to use that today so yeah, I just executed the new EROHA network and now we can start to interact with it using CLI so we go into test docker folder yes, and for the demo scenario we will create a new domain called EROHA bank and then we will register some account there and we will register some asset there as well and then yeah, we will transfer this asset from one account to another so yeah, let's start with this yeah, we create new domain we can then list all domains using this CLI command so that's not very user friendly right now but when we have client libraries it will be much much better so yeah, you can see that the EROHA bank domain was created and now we can register account well, as you remember in Genesis file we don't have Bob account, we only have Alice account so all transactions right now they are executed by Alice account so we should create the Bob account here we are yeah, we can list all accounts using this CLI command and yeah, we can see that indeed Bob account was created and it has public key that we defined before so yeah, then we register some asset called IRH and mint this asset and give it to Bob so we mint 1337 IRH yeah, by this command we can check that indeed Bob has 1337 IRH in ROHA bank and now we can transfer some of these assets from Bob to Alice so yeah you can notice that here we actually signed transaction by Bob's config file that we created before and yeah with that we can check that indeed some amount of assets from Bob's account were spent and Alice received 14 IRH so what we did is really we created new domain which could be in that scenario another bank and transferred some amount of assets which we call IRH in that scenario from one domain to another domain well, we can do it really easy really fast using IRH blockchain so so yeah, that's that's all I have to show you today yeah, we can proceed questions I see that we have a question in the if you click on the Q&A tab there are some questions and we only have about 60 seconds left so okay, yeah, I'll try to be fast with that so how does Serenity support the IRH implementation to provide a consultation or license so IRH is open source actually Serenity doesn't own IRH so anyone can look at it and we'll give it a try if they like so yeah, there are no licensing you can just but definitely yeah we can help with consultation we use it a lot so Bacong ledger is centralized and managed by central bank can talk about the centralized version please so this is enterprise and it is centralized in terms of that only well, basically one entity uses that which is central bank but it is decentralized as we have several nodes it's not like the Bitcoin where everyone which is public chain where anyone can spin up a node so it's completely up to certain development so certain scenario well in Bacong they needed to keep it in central bank but yeah we can think about different scenarios in the future as well there's also if you want to ask some we're at time and I want to respect people's time if you want to ask questions you can jump into the chat thing I apologize, I forget the name Zelda right so that's open and thank you very much for your time yeah welcome nice to meet you