{"action":"opened","issue":{"url":"https://api.github.com/repos/hyperledger/iroha/issues/103","repository_url":"https://api.github.com/repos/hyperledger/iroha","labels_url":"https://api.github.com/repos/hyperledger/iroha/issues/103/labels{/name}","comments_url":"https://api.github.com/repos/hyperledger/iroha/issues/103/comments","events_url":"https://api.github.com/repos/hyperledger/iroha/issues/103/events","html_url":"https://github.com/hyperledger/iroha/issues/103","id":197484374,"number":103,"title":"If we use grpc, flatbuffer protocol","user":{"login":"MizukiSonoko","id":6281583,"avatar_url":"https://avatars.githubusercontent.com/u/6281583?v=3","gravatar_id":"","url":"https://api.github.com/users/MizukiSonoko","html_url":"https://github.com/MizukiSonoko","followers_url":"https://api.github.com/users/MizukiSonoko/followers","following_url":"https://api.github.com/users/MizukiSonoko/following{/other_user}","gists_url":"https://api.github.com/users/MizukiSonoko/gists{/gist_id}","starred_url":"https://api.github.com/users/MizukiSonoko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MizukiSonoko/subscriptions","organizations_url":"https://api.github.com/users/MizukiSonoko/orgs","repos_url":"https://api.github.com/users/MizukiSonoko/repos","events_url":"https://api.github.com/users/MizukiSonoko/events{/privacy}","received_events_url":"https://api.github.com/users/MizukiSonoko/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-12-25T02:10:15Z","updated_at":"2016-12-25T02:10:15Z","closed_at":null,"body":"```\r\nnamespace iroha;\r\n\r\nattribute \"priority\";\r\n\r\ntable Currency{\r\n  value:    uint;\r\n  name:   string;\r\n  domain: Domain; (required)\r\n  precision: int;  \r\n  smartContractName: string;\r\n}\r\ntable Asset{\r\n  value:  string;\r\n  name:   string; \r\n  domain: Domain; \r\n  precision: int; \r\n  smartContractName: string; \r\n}\r\ntable Domain{\r\n  ownerPublicKey: string;\r\n  name: string;\r\n}\r\ntable Account{\r\n  publicKey: string;\r\n  Assets: [Asset];\r\n}\r\ntable Peer{\r\n  publicKey: string;\r\n  ip: string;\r\n  // ToDo 必要な値(信用度等) を追加\r\n}\r\nunion Object  { Currency, Asset, Domain, Account, Peer }\r\n\r\n// CommandはAdd,Transfer,Update,Remove,Contract\r\nunion Command { Add, Transfer, Update, Remove, Contract }\r\n\r\ntable Add{\r\n  object: Object;\r\n}\r\ntable Transfer{\r\n  receiver: string; (required)\r\n  object:   Object; (required)\r\n}\r\ntable Update{\r\n  object: Object; (required)\r\n}\r\ntable Remove{\r\n  object: Object; (required)\r\n}\r\ntable Contract{\r\n  object:        Object; (required)\r\n  command:       string;\r\n  contractName:  string; (required)\r\n}\r\n\r\n\r\nstruct TxSignature {\r\n  publicKey: string;\r\n  signature: string;\r\n}\r\n// Userが扱う物\r\ntable Transaction {\r\n  sender:   string; (required)\r\n  command: Command; (required)\r\n  txSignatures: [TxSignature]; (required) // Transactionに関係する電子署名 \r\n  hash:                string; (required)\r\n}\r\n\r\nenum State : byte { Undetermined = 1, Commited }\r\nstruct EventSignature {\r\n  publicKey: string; (required)\r\n  signature: string; (required)\r\n}\r\n// Sumeragiが扱う物\r\ntable ConsensusEvent{\r\n  transaction: [Transaction]; (required)\r\n  eventSignatures: [EventSignature];  \r\n  state: State; (required)\r\n}\r\nroot_type ConsensusEvent;\r\n```"}}
{"actor":{"display_login":"MizukiSonoko"}}