Git Product home page Git Product logo

irita's Introduction

IRITA

Inter-Realm Industry Trust Alliance(IRITA) is the 1st enterprise-level permissioned blockchain product in Cosmos ecosystem Powered by Tendermint and IRIS SDK. It has 6 core technical advantages such as privacy-protecting data sharing with authorization, highly efficient consensus protocol, cutting-edge cross-chain technology, highly practical on/off-chain inter-operation capabilities, flexible digital asset modeling and exchange, and business analytics powered by big data. Thus IRITA can be widely used in various industries, such as the financial industry, providing value based on blockchain trust machines.

6 Core Technical Advantages

  1. Tendermint consensus: The Tendermint consensus engine is the first Internet-level Byzantine consensus protocol. It is also the consensus technology referred by Libra. Tendermint powers more than 40% of the PoS blockchain, which provides a high-performance, consistent, and secure Byzantine consensus engine. Tendermint is very suitable for scaling heterogeneous systems, including public blockchains and permissioned / consortium chains which focus on performance.

  2. Inter-Blockchain Communication Protocol (IBC): IBC is a well-known, cutting-edge design and implementation of cross-chain technology standards contributed by Bianjie's international partner, the Tendermint team. IBC supports interoperability between various heterogeneous chains. Among them, the Bianjie team contributed to the development of the ICS20 cross-chain transfer, a very important module in IBC.

  3. Data sharing with authorization: Data is encrypted and stored on-chain to protect data ownership and privacy of all parties. Data is shared with third parties only if it is authorized by the owner.

  4. iService: iService aims to deliver the entire life cycle of off-chain services from definition, binding (registration of service provider), invocation to governance (profiling and dispute resolution), to cross the gap between blockchain and traditional business application. The IRIS SDK supports service semantics through enhanced IBC processing logic to allow distributed business services to be available on the blockchain Internet.

  5. Digital asset modeling and trading: It supports a flexible modeling of the multiple structures of digital asset data. IRITA is based on NFT (non-fungible token), and supports asset digitalization in various fields such as supply chain, intellectual property, medical treatment, and evidence storage.

  6. Big data support: IRITA's built-in storage layer supports cloud storage and distributed storage, and supports efficient on-chain data life-cycle query through the combination of database and chain data.

irita's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

irita's Issues

[bug] tx node create-validator fails to write "creator" into "operator" flag

Query validator, "operator" flag returns ""(empty)

Step 1. create-validator

irita tx node create-validator --name=x2 --cert=/Users/sherlock/testnet/key_x2.crt --power=10 --description=description --from=v0 --chain-id=qa-test --fees=4point -b block -y

Step 2. query validator

irita query node validator $VID
id: AA08A0BFD03F8491805BD038FA776FF0B0DE461F9E41306784BBA002375430B0
jailed: false
name: x2
operator: ""
power: "10"
pubkey: icp1ulx45dfpqwnhc793nyshcrle3nejqdetcufk8lep9unzj85tx2x0zk7xp347jeq07fk

"operator" flag returns "", it should return the address of v0

文档中可以补充 macOS M1 (darwin-arm64) 架构的 irita 的构建方式

使用 make install 命令的时候会遇到 github.com/CosmWasm/wasmvm/api 的编译报错提示:

ld: symbol(s) not found for architecture arm64

详细测试如下:

go install github.com/CosmWasm/wasmvm/api
# github.com/CosmWasm/wasmvm/api
ld: warning: ignoring file ../../golang/pkg/mod/github.com/!cosm!wasm/[email protected]/api/libwasmvm.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
Undefined symbols for architecture arm64:
  "_analyze_code", referenced from:
      __cgo_10a41752a67f_C2func_analyze_code in _x004.o
      __cgo_10a41752a67f_Cfunc_analyze_code in _x004.o
     (maybe you meant: __cgo_10a41752a67f_C2func_analyze_code, __cgo_10a41752a67f_Cfunc_analyze_code )
  "_destroy_unmanaged_vector", referenced from:
      __cgo_10a41752a67f_Cfunc_destroy_unmanaged_vector in _x006.o
     (maybe you meant: __cgo_10a41752a67f_Cfunc_destroy_unmanaged_vector)
  "_execute", referenced from:
      __cgo_10a41752a67f_C2func_execute in _x004.o
      __cgo_10a41752a67f_Cfunc_execute in _x004.o
     (maybe you meant: __cgo_10a41752a67f_Cfunc_execute, __cgo_10a41752a67f_C2func_execute )
  "_get_metrics", referenced from:
      __cgo_10a41752a67f_C2func_get_metrics in _x004.o
      __cgo_10a41752a67f_Cfunc_get_metrics in _x004.o
     (maybe you meant: __cgo_10a41752a67f_Cfunc_get_metrics, __cgo_10a41752a67f_C2func_get_metrics )
  "_ibc_channel_close", referenced from:
      __cgo_10a41752a67f_C2func_ibc_channel_close in _x004.o
      __cgo_10a41752a67f_Cfunc_ibc_channel_close in _x004.o
     (maybe you meant: __cgo_10a41752a67f_C2func_ibc_channel_close, __cgo_10a41752a67f_Cfunc_ibc_channel_close )
  "_ibc_channel_connect", referenced from:
      __cgo_10a41752a67f_C2func_ibc_channel_connect in _x004.o
      __cgo_10a41752a67f_Cfunc_ibc_channel_connect in _x004.o
     (maybe you meant: __cgo_10a41752a67f_C2func_ibc_channel_connect, __cgo_10a41752a67f_Cfunc_ibc_channel_connect )
  "_ibc_channel_open", referenced from:
      __cgo_10a41752a67f_C2func_ibc_channel_open in _x004.o
      __cgo_10a41752a67f_Cfunc_ibc_channel_open in _x004.o
     (maybe you meant: __cgo_10a41752a67f_C2func_ibc_channel_open, __cgo_10a41752a67f_Cfunc_ibc_channel_open )
  "_ibc_packet_ack", referenced from:
      __cgo_10a41752a67f_C2func_ibc_packet_ack in _x004.o
      __cgo_10a41752a67f_Cfunc_ibc_packet_ack in _x004.o
     (maybe you meant: __cgo_10a41752a67f_Cfunc_ibc_packet_ack, __cgo_10a41752a67f_C2func_ibc_packet_ack )
  "_ibc_packet_receive", referenced from:
      __cgo_10a41752a67f_C2func_ibc_packet_receive in _x004.o
      __cgo_10a41752a67f_Cfunc_ibc_packet_receive in _x004.o
     (maybe you meant: __cgo_10a41752a67f_C2func_ibc_packet_receive, __cgo_10a41752a67f_Cfunc_ibc_packet_receive )
  "_ibc_packet_timeout", referenced from:
      __cgo_10a41752a67f_C2func_ibc_packet_timeout in _x004.o
      __cgo_10a41752a67f_Cfunc_ibc_packet_timeout in _x004.o
     (maybe you meant: __cgo_10a41752a67f_Cfunc_ibc_packet_timeout, __cgo_10a41752a67f_C2func_ibc_packet_timeout )
  "_init_cache", referenced from:
      __cgo_10a41752a67f_C2func_init_cache in _x004.o
      __cgo_10a41752a67f_Cfunc_init_cache in _x004.o
     (maybe you meant: __cgo_10a41752a67f_Cfunc_init_cache, __cgo_10a41752a67f_C2func_init_cache )
  "_instantiate", referenced from:
      __cgo_10a41752a67f_C2func_instantiate in _x004.o
      __cgo_10a41752a67f_Cfunc_instantiate in _x004.o
     (maybe you meant: __cgo_10a41752a67f_C2func_instantiate, __cgo_10a41752a67f_Cfunc_instantiate )
  "_load_wasm", referenced from:
      __cgo_10a41752a67f_C2func_load_wasm in _x004.o
      __cgo_10a41752a67f_Cfunc_load_wasm in _x004.o
     (maybe you meant: __cgo_10a41752a67f_C2func_load_wasm, __cgo_10a41752a67f_Cfunc_load_wasm )
  "_migrate", referenced from:
      __cgo_10a41752a67f_C2func_migrate in _x004.o
      __cgo_10a41752a67f_Cfunc_migrate in _x004.o
     (maybe you meant: __cgo_10a41752a67f_C2func_migrate, __cgo_10a41752a67f_Cfunc_migrate )
  "_new_unmanaged_vector", referenced from:
      __cgo_10a41752a67f_Cfunc_new_unmanaged_vector in _x006.o
     (maybe you meant: __cgo_10a41752a67f_Cfunc_new_unmanaged_vector)
  "_pin", referenced from:
      __cgo_10a41752a67f_C2func_pin in _x004.o
      __cgo_10a41752a67f_Cfunc_pin in _x004.o
     (maybe you meant: __cgo_10a41752a67f_Cfunc_pin, __cgo_10a41752a67f_C2func_pin )
  "_query", referenced from:
      __cgo_10a41752a67f_C2func_query in _x004.o
      __cgo_10a41752a67f_Cfunc_query in _x004.o
     (maybe you meant: __cgo_10a41752a67f_Cfunc_query, __cgo_10a41752a67f_C2func_query )
  "_release_cache", referenced from:
      __cgo_10a41752a67f_Cfunc_release_cache in _x004.o
     (maybe you meant: __cgo_10a41752a67f_Cfunc_release_cache)
  "_reply", referenced from:
      __cgo_10a41752a67f_C2func_reply in _x004.o
      __cgo_10a41752a67f_Cfunc_reply in _x004.o
     (maybe you meant: __cgo_10a41752a67f_Cfunc_reply, __cgo_10a41752a67f_C2func_reply )
  "_save_wasm", referenced from:
      __cgo_10a41752a67f_C2func_save_wasm in _x004.o
      __cgo_10a41752a67f_Cfunc_save_wasm in _x004.o
     (maybe you meant: __cgo_10a41752a67f_Cfunc_save_wasm, __cgo_10a41752a67f_C2func_save_wasm )
  "_sudo", referenced from:
      __cgo_10a41752a67f_C2func_sudo in _x004.o
      __cgo_10a41752a67f_Cfunc_sudo in _x004.o
     (maybe you meant: __cgo_10a41752a67f_Cfunc_sudo, __cgo_10a41752a67f_C2func_sudo )
  "_unpin", referenced from:
      __cgo_10a41752a67f_C2func_unpin in _x004.o
      __cgo_10a41752a67f_Cfunc_unpin in _x004.o
     (maybe you meant: __cgo_10a41752a67f_Cfunc_unpin, __cgo_10a41752a67f_C2func_unpin )
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

查看 wasmvm 源代码后发现他们是通过 CI 自动构建的方式把各个平台和架构的动态链接库放到源代码仓库中的方式进行分发的(这样并不是很通用化,可能对于 Linux 的不同 CPU 架构或是 macOS 的不同 CPU 架构就没办法正确构建了),可以通过:

git clone https://github.com/CosmWasm/wasmvm.git
cd wasmvm
cd libwasmvm && cargo build --release
cp libwasmvm/target/release/libwasmvm.dylib $GOPATH'/pkg/mod/github.com/!cosm!wasm/wasmvm@<依赖的 wasmvm 版本号>/api'

CosmWasm/wasmvm/libwasmvm 单独进行构建。

完成上述步骤后返回 irita 继续进行 make install 即可。

make install 失败

go: github.com/bianjieai/[email protected] requires
github.com/irisnet/[email protected]: reading https://mirrors.aliyun.com/goproxy/github.com/irisnet/irismod/@v/v1.4.1-0.20210910095539-475575886daf.mod: 404 Not Found
go install -tags "netgo ledger" -ldflags '-X github.com/cosmos/cosmos-sdk/version.Name=irita -X github.com/cosmos/cosmos-sdk/version.AppName=irita -X github.com/cosmos/cosmos-sdk/version.Version=3.0.0-18-g290fdd9 -X github.com/cosmos/cosmos-sdk/version.Commit=290fdd99656a4924807e4e339edeba8c9105cc7b -X "github.com/cosmos/cosmos-sdk/version.BuildTags=netgo,ledger" -X github.com/tendermint/tendermint/crypto/algo.Algo=sm2 -X github.com/bianjieai/irita/address.Bech32ChainPrefix=i -X github.com/bianjieai/irita/address.PrefixAcc=a -X github.com/bianjieai/irita/address.PrefixAddress=a -X github.com/tharsis/ethermint/types.EvmChainID=1223' ./cmd/irita
go: github.com/bianjieai/[email protected] requires
github.com/irisnet/[email protected]: reading https://mirrors.aliyun.com/goproxy/github.com/irisnet/irismod/@v/v1.4.1-0.20210910095539-475575886daf.mod: 404 Not Found
make: *** [Makefile:99: install] Error 1

Implement the interface in crypto for SM2

Implement interface for SM2:

type PrivKeySm2 [32]byte

  • PrivKey
    • Bytes
    • Sign : Signature size is 64
    • PubKey
    • Equals

type PubKeySm2 [33]byte

  • PubKey
    • Address
    • Bytes
    • VerifyBytes
    • Equals

Functions:

  • GetPrivateKey : convert PrivKeySm2 to sm2.PrivateKey
  • GenPrivKey: generate PrivKeySm2
  • GenPrivKeySm2FromSecret: generate PrivKeySm2 from given secret

Multisig

  • support SM2

Test

  • add test for SM2

多节点本地自动测试网构建

image
在clone irita后运行make build-linux错误,以下是报错信息:
nstalling statik...
go: go.mod file not found in current directory or any parent directory.
'go get' is no longer supported outside a module.
To build and install a command, use 'go install' with a version,
like 'go install example.com/cmd@latest'
For more information, see https://golang.org/doc/go-get-install-deprecation
or run 'go help get' or 'go help install'.
make: *** [contrib/devtools/Makefile:64: /home/GOPATH/bin/statik] Error 1

部署多节点本地自动测试网

在多节点本地自动测试网时构建 linux 二进制出现如下错误:
root@iZhp3ayq4cervqam4wcj2yZ:~/wenchang/irita-master# make build-linux
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
Unknown flag: --swagger_opt
Makefile:135: recipe for target 'proto-swagger-gen' failed
make: *** [proto-swagger-gen] Error 1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.