The Mixin BFT-DAG network reference implementation, the Trusted Execution Environment is not integrated into this repository yet.
Install golang and setup GOPATH
following this guide https://golang.org/doc/install.
$ git clone https://github.com/MixinNetwork/mixin.git
$ cd mixin
$ go build
The mixin
command is both the kernel node and tools to communicate with the node RPC interface.
$ mixin
NAME:
mixin - A free, lightning fast and decentralized network for transferring digital assets.
USAGE:
mixin [global options] command [command options] [arguments...]
VERSION:
v0.12.0
COMMANDS:
kernel, k Start the Mixin Kernel daemon
clone Clone a graph to intialize the kernel
setuptestnet Setup the test nodes and genesis
createaddress Create a new Mixin address
decodeaddress Decode an address as public view key and public spend key
decodesignature Decode a signature
decryptghostkey Decrypt a ghost key with the private view key
updateheadreference Update the cache round external reference, never use it unless agree by other nodes
removegraphentries Remove data entries by prefix from the graph data storage
validategraphentries Validate transaction hash integration
signrawtransaction Sign a JSON encoded transaction
sendrawtransaction Broadcast a hex encoded signed raw transaction
decoderawtransaction Decode a raw transaction as JSON
buildnodepledgetransaction Build the transaction to pledge a node
buildnodecanceltransaction Build the transaction to cancel a pledging node
decodenodepledgetransaction Decode the extra info of a pledge transaction
getroundlink Get the latest link between two nodes
getroundbynumber Get a specific round
getroundbyhash Get a specific round
listsnapshots List finalized snapshots
getsnapshot Get the snapshot by hash
gettransaction Get the finalized transaction by hash
getcachetransaction Get the transaction in cache by hash
getutxo Get the UTXO by hash and index
listmintworks List mint works
listmintdistributions List mint distributions
listallnodes List all nodes ever existed
getinfo Get info from the node
dumpgraphhead Dump the graph head
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--node value, -n value the node RPC endpoint (default: "127.0.0.1:8239")
--dir value, -d value the data directory
--time print the runtime (default: false)
--help, -h show help (default: false)
--version, -v print the version (default: false)
Mixin Kernel address are a pair of ed25519 keys, following the CryptoNote protocol. To create a new address use the createaddress
command.
$ mixin createaddress
address: XINJkpCdwVk3qFqmS3AAAoTmC5Gm2fR3iRF7Rtt7hayuaLXNrtztS3LGPSxTmq5KQh3KJ2qYXYE5a9w8BWXhZAdsJKXqcvUr
view key: 568302b687a2fa3e8853ff35d99ffdf3817b98170de7b51e43d0dcf4fe30470f
spend key: 7c2b5c97278ed371d75610cccd9681af31b0d99be4adc2d66983f3c455fc9702
Share the address
to receive assets from other Mixin Kernel addresses, and keep view key
and spend key
privately and securely.
Both the view key
and spend key
are required to spend the assets received from others, and the view key
iteself is sufficient to decode and view all the transactions sent to address
.
Basic Mixin Kernel transaction is similar to the transaction in Bitcoin, with following format.
{
"version": 1,
"asset": "a99c2e0e2b1da4d648755ef19bd95139acbbe6564cfb06dec7cd34931ca72cdc",
"extra": "34366362393932382d653636632d343966392d386165632d366462366137346666663638",
"outputs": [
{
"type": 0,
"amount": "115.06849309",
"script": "fffe01",
"accounts": [
"XINPXu5NBXszhpZDRJ8iA26TbQ2oWTSq1tXqKKeVeYWgLSz8yXGTtVhMogynYytoMewYVFR541wauLhy1YV33zg445E49YA7"
]
}
],
"inputs": [
{
"hash": "20001842d6eff5129c11f7c053bf1209f0267bf223f1681c9cb9d19fc773a692",
"index": 11
}
]
}
This is the same UTXO model used in Bitcoin, but with different field names. Among them version
, type
and script
should not be modified unless you know some advanced topics.
Compact the raw transaction JSON and sign it with the private view and spend key as following.
$ mixin signrawtransaction -n mixin-node:8239 \
-key 0d48c96d383d325a97eea5295cbf3afa7766c49db477b68fd8032ff7f59b0b00d77e434f96f3f42c2d1796662c7cc90497feaf3863a5815f27ba49fd5e29b906 \
-raw '{"version":1,"asset":"a99c2e0e2b1da4d648755ef19bd95139acbbe6564cfb06dec7cd34931ca72cdc","extra":"34366362393932382d653636632d343966392d386165632d366462366137346666663638","outputs":[{"type":0,"amount":"115.06849309","script":"fffe01","accounts":["XINPXu5NBXszhpZDRJ8iA26TbQ2oWTSq1tXqKKeVeYWgLSz8yXGTtVhMogynYytoMewYVFR541wauLhy1YV33zg445E49YA7"]}],"inputs":[{"hash":"20001842d6eff5129c11f7c053bf1209f0267bf223f1681c9cb9d19fc773a692","index":11}]}'
To start a node, create a directory mixin
for the config and network data files, then put the genesis.json, nodes.json and config.toml files in it.
The main net genesis.json, nodes.json and an example config.example.toml files can be obtained from here, you only need to put your own signer spend key in the config.toml file.
Change the consensus-only
option to false
will allow the node to start in archive mode, which syncs all the graph data.
$ mixin help kernel
NAME:
mixin kernel - Start the Mixin Kernel daemon
USAGE:
mixin kernel [command options] [arguments...]
OPTIONS:
--dir value, -d value the data directory
--port value, -p value the peer port to listen (default: 7239)
This will setup a minimum local test net, with all nodes in a single device.
$ mixin setuptestnet
$ mixin kernel -dir /tmp/mixin-7001 -port 7001
$ mixin kernel -dir /tmp/mixin-7002 -port 7002
$ mixin kernel -dir /tmp/mixin-7003 -port 7003
$ mixin kernel -dir /tmp/mixin-7004 -port 7004
$ mixin kernel -dir /tmp/mixin-7005 -port 7005
$ mixin kernel -dir /tmp/mixin-7006 -port 7006
$ mixin kernel -dir /tmp/mixin-7007 -port 7007
1.什么是Mixin 在面向对象编程中,Mixin是一种类,这种类包含了其他类要使用的方法,但不必充当其他类的父类。其他类是如何获取Mixin中的方法因语言的不同而不同。所以有时候Mixin被描述为’include’(包含)而不是 inheritance(继承)。 Mixins鼓励代码重用,并且可以用于避免多重继承可能导致(“如钻石问题”)的继承歧义,或者解决一个缺乏对一种语言的多重继承的支持。m
Mixin 在组件和组件之间有时候会存在相同的代码逻辑,我们希望对相同的代码逻辑进行抽取,在vue2和vue3中都支持的一种方式那就是使用Mixin来完成,Mixin提供了一种非常灵活的方式来分发vue组件中的可复用功能,因为一个Mixin对象中可以包含任何组件选项,当组件使用该Mixin对象时,所有Mixin对象的选项都将被合并进入该组件本身的选项中。 合并规则 如果Mixin对象中的选项和组件
关于Mixin设计模式 今天读到一篇文章,关于python的Mixin设计模式,文中提到动态加载类、动态加载函数等动态加载的概念,不是很理解,在度娘的指导下有了一些己见。遂抄起键盘做此记录,可能和真正的Mixin有偏差,甚至毫不相干…欢迎老师或同学帮忙解读一下,我确实想知道到底啥意思,干嘛用的。 Mixin 是一种编程开发模式 和Java的接口类似 有一款冰淇淋,提供一些基础口味(主要功能类)有香
前言 在前端开发中,作为开发者关于Vue框架的使用不必多说,Vue的框架也是目前最为好用的框架之一,虽然Vue3.0已经成为了主流版本(Vue2.0和Vue3.0还是有不少差别的),但丝毫不影响开发使用。本篇博文分享一个关于Vue相关的比较重要的知识点----混入(mixin),该内容在实际开发中比较常用,也比较重要,所以需要灵活运用,尤其是刚接触Vue不久的开发者甚为重要。 混入/混合的概念 V
mixin的意思是混入,是指将事先配置的选项混入到组件中,然后与组件中的对象和方法进行合并,也就是对组件进行了扩展,也可以理解为是将一段重复的代码进行抽离,然后通过混入的形式达到复用的效果,它有两种混入形式,分别是 Vue.mixin({})全局注册和组件的 mixins选项,那么在 Vue 中,他们是怎么进行合并,具体实现是怎么样呢,这篇文章将进行讲解,相信你一定会有所收获; 首先是入口文件,在
一、什么是mixin 通俗的讲,mixin(mix-in)是一种新的语言特性,表面类似多继承,使用with关键字对类添加一些功能。官话mixin是在多个类层次结构中重用类代码的一种方法。mixin(mix-in)是为面向对象程序设计语言中的类提供了方法的实现。其他类可以访问mixin类的方法、变量而不必成为其子类。Mixin 的作用就是在多个类层次结构中重用类的代码,很好的解决了单继承带来的代码冗
mixin文件里的index.js导出 export default{ mounted() { }, methods: { getdata(){ this.name } }, data() { return { name:'jack'
本文向大家介绍使用ES6的class定义的组件不支持mixins了,那用什么可以替代呢?相关面试题,主要包含被问及使用ES6的class定义的组件不支持mixins了,那用什么可以替代呢?时的应答技巧和注意事项,需要的朋友参考一下 HOC 高阶组件是一个以组件为参数并返回一个新组件的函数。HOC 运行你重用代码、逻辑和引导抽象。最常见的可能是 Redux 的 connect 函数。除了简单分享工具
本文向大家介绍react的mixins有什么作用?适用于什么场景?相关面试题,主要包含被问及react的mixins有什么作用?适用于什么场景?时的应答技巧和注意事项,需要的朋友参考一下 1.mixin的作用是抽离公共功能,不存在渲染dom的需要,所以它没有render方法。如果你定义了render方法,那么他会和组件的render方法冲突而报错。 2.mixin不应该污染state,所以他也没有
问题内容: 在“ Python编程 ”中,提到了。我来自背景,以前没有听说过这个词。什么是? 在本示例的两行之间进行阅读(我已经链接了它,因为它很长),我认为这是使用多重继承来扩展类而不是“适当的”子类的一种情况。这是正确的吗? 为什么我要这样做而不是将新功能放入子类中?因此,为什么混合/多重继承方法比使用组合更好? 什么将mixin与多重继承分开?这仅仅是语义问题吗? 问题答案: 是一种特殊的多
问题内容: 我试图在单独的mixin文件中包含常规样式/技巧,可以在需要时将其应用于任何项目。其中一些样式需要多个元素才能协同工作。 例如: 实际上,mixin可以工作,但是生成的css可以将mixin与主代码分开,即使它们的选择器相同。当我开始添加更多此类文件时,它的缺点是丑陋的CSS和较大的文件大小。 无论如何,我可以做到这一点,以便可以合并相同的选择器吗?像这样: 问题答案: 不能。Sass
问题内容: 我正在使用Font Awesome 4.0.0,并希望在LESS中执行以下操作: 不会与错误一起编译: 有可能做到这一点吗?当然,这对我来说将是一个美丽的按钮。 问题答案: 您尝试执行的操作至少有2个问题( 对于LESS > = 1.6,请参见update bellow): 1)不幸的是,无法使用选择器插值来调用mixin。 通过选择器插值,LESS期望构造为以下格式: (插值选择器还
问题内容: LESS允许参数混合,例如: 但是,这并不总是适用于过渡等属性。如果您尝试进行多个转换并尝试多次调用mixin,则最后一个mixin会覆盖所有先前定义的转换。这是因为用于定义多个转换的正确CSS3语法是: 我可以想到的将多个转换定义为mixin的唯一方法是重载mixin: 是否有更健壮和简洁的方式来定义过渡混合,以接受可变数量的参数并构造适当的过渡CSS? 上下文: 有时我想在多个属性
问题内容: 我想在SASS中动态创建mixins,以列表中的每个项目命名,但是似乎不起作用。 我尝试了这个,但出现错误: 错误: SASS不支持此用法吗?我在手册中找不到任何相关内容。 问题答案: 当前似乎不支持@mixins中的变量插值。 SASS文档将其称为并描述如下: 插值:#{} 您还可以使用#{}插值语法在 选择器 和 属性名称中 使用SassScript变量: 根据文档,仅选择器和属性
问题内容: 我正在尝试为sass中的占位符创建一个mixin。 这是我创建的mixin。 这就是我想要包含mixin的方式: 显然,由于所有冒号和分号都已传递给mixin,所以这行不通,但是…我真的很想输入静态CSS并将其完全传递给上面的函数。 这可能吗? 问题答案: 您正在寻找指令: 从Sass 3.4开始,此mixin可以这样编写,以使其既可以嵌套也可以嵌套: 用法: 输出: