tokenpocket冷钱包官网下载|tari
Tair 对 Redis 引擎架构之争的看法 - 知乎
Tair 对 Redis 引擎架构之争的看法 - 知乎切换模式写文章登录/注册Tair 对 Redis 引擎架构之争的看法阿里云开发者已认证账号云原生内存数据库 Tair 是阿里云自研数据库,兼容 Redis 的同时提供更多数据结构和企业级能力,包括全球多活、任意时间点恢复和透明加密等。作者 | 刘欢(浅奕)来源 | 阿里开发者公众号1.背景2022 年 6 月 8 日,Redis Inc.的官方博客发布了一篇名为《13 年后,Redis是否需要一个新架构?》[1]的文章,这篇文章由Redis的联合创始人兼CTO Yiftach Shoolman、首席架构师Yossi Gottlieb以及性能工程师Filipe Oliveira联合署名,被业界认为是Redis官方针对Dragonfly[2] “碰瓷式”营销的回应。Dragonfly 是一款兼容 Redis/Memcached 协议的内存存储系统,从 Dragonfly 官方发布的基准测试结果来说,声称自己比 Redis 快了25倍,单个存储节点可以处理数百万的请求。官方给的性能基准测试结果如下:(图片来自:https://github.com/dragonflydb/dragonfly的项目介绍)(当然Dragonfly以多线程对比Redis单线程,这个评测的公平性有待于商榷)截止 2022 年 8 月 10 日,Dragonfly 在 github 上已经有了 9.3 K 的 star 和 83 个 fork 的分支。虽然以前就有诸如 KeyDB[3] 或者 Skytable[4]这样的 Redis 挑战者,但是从来没有一款产品得到 Redis 官方的正式回应。此次官方的正式撰文回应,在外界看来至少也说明 Dragonfly 相较于之前的挑战者有了更大的影响力。Redis 官方博客这篇文章对 Dragonfly 和 Redis 重新做了性能基准测试,以 40 分片 Redis 集群的方式重新压测对比 Dragonfly 单节点的性能(没说明 Dragonfly 单节点使用了多少线程),得出了 Redis 在同等资源占用下,吞吐量比 Dragonfly 要高出 18% 至 40%的结论:(图片来自:https://redis.com/blog/redis-architecture-13-years-later/)(当然这个测试也没说Redis集群下功能是受限的,多key操作命令有额外的限制)文章最后给出了 Redis 当下架构设计的几个原则 / 目标:在每个 VM 上运行多个 Redis 实例将每个 Redis 进程限制在合理的(内存)大小水平扩展至关重要尤其是第三点文章用了很大篇幅来说明:比如单线程多分片的架构设计更加弹性、会有更小的爆炸半径、纵向扩展导致实例容量翻倍、更贴近 NUMA 架构等等,其他涉及 Redis Inc 商业版本因 AWS 的硬件限制以及自身数据中心限制带来的设计影响在这里不陈述了。2. Tair 引擎架构的发展传统 Redis 单线程模式和层出不穷的多线程挑战者之间擦出的火花愈演愈烈,作为耕耘了这个领域近 12 年的 Tair 怎么看待这个架构之争呢?Tair 自研引擎使用的架构也是多线程,这么看来 Tair 认为多线程才是唯一正确的设计吗?当然没这么简单,Tair 做多线程的根因不仅仅是因为单节点的性能问题,更不是单纯为了单节点的跑分去设计实现多线程引擎架构的。去年发布的这篇文章中提到了我们的大客户业务场景下遇到的诸多问题,这里再次引用下文中的部分场景以便于后续的讨论:1. 某用户打满了 Redis 的服务,主线程 CPU 使用率 100% 后业务开始卡顿。为了解决问题,用户紧急在控制台进行扩容。然而 Redis 主线程过于繁忙,新的主备关系很难建立,建立后数据同步进度特别慢。用户特别着急,但我们除了让用户降低流量外束手无策(限流对业务伤害太大,当下只是卡顿,限流会大面积不可用)。最后怎么解决的?说来惭愧,等用户流量降低后才升配成功的。2. 某用户的访问存在间歇的峰值,主线程负载时不时飙高,导致管控采集服务监控的请求也时不时超时。最终造成了监控数据的曲线出现断点,引发了用户投诉。为什么超时?因为监控链路和数据链路都是主线程处理的。当前只是在社区版上把探活端口和逻辑移动到了另外的线程,监控和管控仍在主线程。(正在改造,但是还是遇到了很多困难。因为 Redis 单线程,所以数据结构都是线程不安全的。所以在别的线程获取信息要么加锁,要么主线程提前生成好。提前生成看起来挺好是吧?但是主线程执行一个慢查询的时候,也就不会执行生成的定时任务去生成这个信息了,拿到的也是旧的)。3. 读写分离场景下,Redis 链式挂载了多个同步只读节点,从 Master 开始直到最后的只读节点,数据更新同步的一致性逐渐降低(链式逐个同步存在时差)。当 Master 遇到大流量打满 CPU 时,容易造成主从断开(堆积的同步请求太多或者心跳失败),然后触发链式同步断开后逐个节点全量同步。然而 CPU 是打满的,同步断开后更难建立了,最终难以恢复。为什么是链式同步不是星型同步?链式只挂载一个只读节点都会出问题还敢星型啊?我们能做什么?检测到这个情况后 Proxy 隔离数据不同步的从节点。但是!这是读写分离实例啊,流量大到了主从都断开了,隔离了更多的只读节点这是要让系统雪崩吗?4. Redis 作为缓存使用时,为了缓存一致性,数据都是有过期时间兜底的。如果一个节点长期以高 CPU 运行时,过期检查和清理的定时任务就得不到足够多的优先级去执行,累积的过期数据过多后达到内存上限就会淘汰。业务会发现明明存在很多过期数据,但是淘汰的却不一定是过期的数据。5. Redis 的内存统计是进程级别的,没有分区域(数据区,元数据区、Client buf 等等),当遇到了一些网络延迟大或者客户端/服务端处理缓慢的情况时,会造成较多的 Client buf 占用。当内存统计达到设置的阈值后就开始淘汰用户数据了。那为什么不把统计分开?统计各个单独区域有这么难吗?技术上不难,但是这是个繁琐的工作,但凡漏掉一处就会引发大问题。Redis 怎么统计全局的?Redis 内存分配和释放在 malloc 和 free 上包了一层,有自己的 zmalloc/zfree,在申请和释放的时候做的。那 Redis 后台还是有几个 BIO 线程啊,怎么保证统计准确?难道用原子变量?对,就是原子变量,每次内存申请和释放都是原子加减一次。如果再区分每个区域,都包装一个 xxx_malloc/xxx_free,先不说繁琐性,原子操作的翻倍会带来性能的进一步降低(原子统计有些按照 Cache Line 对齐的小技巧减少 False Sharing,但是高频原子操作带来的性能损失还是尽量要避免的)。6. 某直播用户,采用 Pub/Sub 机制进行弹幕的广播,需要 1 对 N 的广播能力。但是 Redis 的单线程负担不起(1 对多等于请求放大),最终业务采用了一主几十从的架构去做链式的广播消息推送,这个架构特别复杂且运维难度很高。如果 Redis 能支持1对几十甚至几百的广播能力就不用这么多从节点了。...针对上述的这些 Redis 使用过程中的“病痛”,Tair 开出了“多线程”的处方来试图根治。我们来逐一对照解释如何在 Tair 自研的引擎里根治这些问题:1. Redis 的单线程模式使得用户的请求处理和主备同步的数据发送都是同一个线程,当用户的请求占据了太多 CPU 算力的时候,新的主备全量同步自然受到了很大影响。这本质上还是个 CPU 算力的问题。Tair 的解法是把同步的逻辑拆到单独的线程去做,每个从节点采用独立的线程做主从同步相关的工作。在此基础上,Tair 把 Redis 的 AOF 数据彻底的 Binlog 化,做到了 Binlog Based Replication 的同步,实现了同步和持久化的链路统一,解决了 Redis 基于内存的同步带来的大流量下主从重连容易触发全量以及存量数据同步过程中内存 buffer 写满导致主从再次断开等问题。秉承着“既要又要还要”的精神,Tair 在网络条件良好的情况下,会自动从磁盘同步切换到内存同步以获得更好的同步时延。另外 Tair 围绕 Binlog 也实现了跨域同步、CDC(Change Data Capture)等外部的 Binlog 消费和通知服务。这里多说几句,现代存储服务的一个核心设计就是 Binlog,很多特性都是围绕着 Binlog 展开的,有足够多附加信息的 Binlog 才能在多副本一致性以及 CDC 等场景下提供相应的支持。2. 还是单线程的问题,其实这是存储服务控制流和数据流没有分开的问题。存储服务要接入管控机制,必然要预留特权账号给管控组件使用。比如对用户账号施加的白名单、限流、敏感命令拦截等逻辑必须对管控账号提供另外的一组限制规则,但是在开源产品里,这类设计往往比较欠缺。Tair 在设计上直接把控制流和数据流做了隔离和拆分,无论是从代码逻辑上,还是资源预留上彻底分为了控制平面和数据平面。控制平面有单独的网络和请求处理线程,单独的账号权限控制,可以绑定到另外的网卡以及端口上。这个设计无论是在可用性、安全性还是可维护性上都有更好的保障。3. 得益于 1 里面对同步机制的重新设计和拆分,从节点可以很轻松的以星型的方式和主节点进行挂载,数据一致性得到了很好的保障。特别的,以为主节点本身是多线程的设计,可以直接扩容主节点的线程数来实现,而不是增加更多的只读从节点。单节点扩展处理线程比扩展更多的只读节点无论在数据一致性上还是运维的复杂度上都是更优的选择。4. Tair 的过期数据扫描也有独立的线程来执行,这个线程以每秒千次的(可调)频率调用扫描接口进行过期数据的检查和删除,基本上可以准实时的清理掉过期数据。独立的过期线程乍一听好像并不复杂,但是能这样做的前提是先得有并发安全的存储引擎,才能把引擎的一些任务完全的拆分出去。这里存在实现路径上的依赖关系,如果存储引擎做不到线程安全,独立的扫描线程就无从谈起。当然具体到 Redis 的语义上,多线程引擎的过期逻辑会更复杂一些。比如多个事务并发的时候,每个事务执行过程中是不能有过期的(导致「不可重复读」等其他意外问题),所以社区的事务(含 Lua 脚本)执行过程中是不会有过期检查的。但是这个问题在多线程事务并发的时候就麻烦一些,需要维护全局事务的最早开始时间,过期检查需要用这个时间进行,而不是当前时间。5. 这个问题本质上是统计的问题,内存引擎本身要做好自己的 Footprint 控制,需要详细的统计清楚自己的数据区域用量,元数据区域用量,各类 buffer 机制的用量。只有这样才能在内存紧张的时候,合理的进行过载保护和回收内存。Tair 在内存统计上做到了严格的统计和区分,可以实时的获取各部分的内存使用统计,尤其是针对存储引擎部分的每种数据类型都维护了详细的内存统计。6. PubSub(发布订阅)在上文中有详细的介绍,解释了在 Tair 中如何利用多线程的方式做加速来优化单节点的 PubSub 机制的,这里不再赘述。同样的,在集群模式下的广播式 PubSub 也做了相应的优化策略。这个策略的专利还在流程中,这里不便多说。说了这么多,看起来 Tair 都是在用多线程的手段来解决这些问题的。那么在 Tair 看来多线程才是正确的设计吗?是,也不是。我们认为这个争论其实没有意义。工程里充满着妥协与折衷,没有银弹。外部的讨论一般都是集中于单一的场景(比如普通的读/写请求跑分),只从纯粹的技术角度来看待架构的发展和技术的权衡。而 Tair 作为一个贴身业务,诞生于双十一的实际需求、和业务互相扶持着一路走来的存储产品,希望从业务视角给这场“模型之争”带来更多的思考。毕竟技术最终还是要落地业务的,不能片面的追求架构美而忽视真实的世界。我们需要根据用户实际的存储需求不断的打破自己的边界去拓展更多的使用场景。再者,单线程节点通过集群扩展和单节点通过线程扩展不是一个完全对立的问题。Tair 的单节点形态既可以是单线程(命令执行单线程,后台线程和功能性线程保留),也可以是多线程模式(我们全都要)。不同的模型可以适应不同的场景,现实世界不是非黑即白的,往往比有技术洁癖的码农心里所想象的世界要复杂很多。我们依旧要面临业务架构积重难返的客户,面临对 Redis 不甚熟悉但是要完成业务需求的客户,关键时候我们都得能拿出方案帮助客户去过渡或者应对突发情况。Tair 永远会朝着用户需要的方向比社区多走一步,我们认为这是作为云服务和用户自建相比的核心价值之一。3. Tair 对引擎模型的思考一路看来,所有兼容 Redis 的多线程服务都在强调自己的某种程度的“性能更优”,但这是付出了更多 CPU 算力的条件下的。如果界定在相同的 CPU 投入中,在普通接口单 key 读写(get/set)场景下,单分片多线程(Standalone)的总体性价比几乎无法超过单线程多分片(Cluster )模式。为什么?因为在 Redis 的集群模式下,采用的是 hash 数据分片算法。所有单 key 的普通读写从客户端就天然的分成了没有数据依赖的请求,各自独立的发给了某个存储节点,单个存储又都是单线程无锁的。而在单机多线程模式下,多个并发的线程总是要处理各种数据依赖和隔离,所以理论上在同等 CPU 资源下,双方都做到理论最优的话多线程很难超越。社区 Redis 一直是单线程的设计,所以天然满足最高的事务隔离级别 Serializable(序列化),多线程的服务只有完全做到了这个隔离级别才能作为 Redis 的平替,但是在公开的文档里很少看到有这样的讨论。如果只是单纯的实现一点数据结构,再兼容下 Redis 语义的话就对比 Redis 的话想超越不是很难。这就好比学会了 socket 之后随手写个网络库简单测试大概率比 libevent/libuv 之类的库跑得快的原因(因为缺了很多检查和各种高级特性,代码执行路径上就短了很多)。在这一点上Tair 自身做到了和 Redis 完全一致的语义,对外的所有协议/接口直接移植了 Redis 社区的 TCL 测试来保证行为一致。现实世界是复杂的,Redis 能取代 Memcached 的本质原因当然不仅仅只是 Redis 的 KV 性能更好,而是 Redis 更多的数据结构提供了更多业务视角的便利。再加上 PubSub(发布订阅)、Lua、持久化、集群等等一系列机制更是丰富了 Redis 的使用场景,使得 Redis 逐渐脱离了 Memcached 仅用于 cache 加速的简单用途而承担了更多的业务职责。Tair 的多线程也不仅仅是对 Redis 数据结构操作的简单性能提升,而是针对阿里云 Redis 服务这些年服务的客户所遇到的各类边界场景的优化,也是 Tair 在这个领域多年积累的经验的整合与输出。在传统 Redis 的使用场景中,有 KV、List、Hash、Set、Sorted Set、Stream 等数据结构,Tair 也扩展了 TairString(带 version 可以 CAS 的 String)、TairHash(支持 field 带过期的 Hash 结构)、TairZSet(多维排序集合)、TairDoc(Json 格式数据)、TairBloom(Bloom 过滤器)、TairTS(时序数据)、TairGIS(R-Tree 地理位置)、TairRoaring(Roaring Bitmap)、TairCPC(Compressed Probability Counting)以及 TairSearch(搜索)等等高级数据结构:《Tair 扩展数据结构的命令》[5]。Redis 自身的数据结构除了大多数 O(1) 和 O(lgN) 时间复杂度的算法外,也有 O(N) 乃至 O(M *N) 等时间复杂度的性能杀手。比如大家熟知的keys *调用(用于匹配所有满足规则的 key 并返回)就是个不折不扣的性能刺客。Redis 作为一个 Hash 引擎,如何实现模糊匹配呢?答案是暴力匹配。这个接口的实现是在整个存储结构上进行的 for in all kv 的逐个比较,有 O(N) 的时间复杂度(N 是存储的 Key 总数)。生产环境里稍大点的 Redis 实例的 key 数量往往都是数百万甚至千万过亿的,那这个接口的执行效率可想而知。类似这样的接口还有不少,比如smembers、hkeys、hvals、hgetall等完整读取一个 key 的接口。如果不慎误用,问题往往不会出现在测试阶段,甚至业务上线的早期也不会有任何问题。因为这些接口的执行代价是和数据大小息息相关的,一开始数据量没那么大的时候往往风平浪静,但是在随着数据的逐渐增多,最终会在某个时间点拉大延迟,拖慢整个服务继而雪崩。精通 Redis 的用户在开发中会严格的控制自己每种复杂数据结构的大小,而且会避免使用这些可能会有问题的接口,但是现实中又没法保证所有的用户都精通 Redis 的接口。而且随着业务系统的演进,某些数据结构的设计也会变更。当一个 Hash 结构的 filed 数量扩展了数倍之后,谁又会想到业务代码的某处可能埋藏着一个早期的hgetall(返回整个 Hash 的内容)的调用呢。也许在业务早期的设计里,这个 Hash 结构是有预期最大值的,hgetall不会有问题,但是后来随着业务发展这个 Hash 被扩展了,这个正常的逻辑在某一天就成了系统雪崩的导火索。退一步讲,即使此类慢查询不会严重到出现业务故障,但是偶发的抖动也会对服务造成负面的影响。访问毛刺一般由偶发的慢请求产生,而请求的排队使得毛刺逐渐蔓延。如果放任这样的偶发慢查询蔓延开的话,等到量变最终引起质变的时候,也会影响到在线服务的使用体验。4. Tair 并发引擎设计单纯在内存中实现一个线程安全的 HashMap 不算什么困难的事情。不过根据 Redis 的接口语义,这个 HashMap 还得实现两个特性:「渐进式 rehash」以及「并发修改过程中的无状态扫描」。前者是因为单个 Hash 存储的数据会到千万甚至亿条,触发引擎 rehash 的时候不能一蹴而就,必须是随着其他的数据操作渐进式进行的。后者是因为 Redis 支持使用 scan 接口来遍历数据,并发修改中这个遍历过程可以重复但是不能遗漏。Dragonfly 在官方文档里也坦言是参考了《Dash: Scalable Hashing on Persistent Memory》[6]这篇论文的思路。当然这个核心的存储不见得一定是 Hash 结构,社区也提过 RadixTree 的想法。这个领域的讨论也很多,比如 B+ Tree 的一些变体CSB+ Tree、PB+ Tree、Bw Tree 以及吸收了 B+ Tree 和 Radix Tree 优点的 MassTree 等等。Tair 的存储引擎是在不断变化和调整的,以后可以在另一篇文章中更系统的聊聊这个话题。并发引擎的设计难点不仅仅是数据结构层面,除了高性能的实现之外,服务的抖动控制、可观测性以及数据流和控制流的隔离与联动也是至关重要的。有了支持并发的存储引擎,上层还需要对处理事务的并发控制。这里并发控制机制所带来的开销与用户的请求没有直接关系,是用于保证事务一致性和隔离性的额外开销。之前有提到过 Redis 的事务隔离级别是 Serializable(序列化),那么想做到完全的兼容就必须保持一致。内存数据库和传统基于磁盘的数据库在体系结构上有很大的区别。内存事务不会涉及到 IO 操作,性能瓶颈就从磁盘转移到了 CPU 上。比较成熟的并发协议有:轻量锁、时间戳、多版本、串行等方式。大多数的 Redis 兼容服务还是采用了轻量锁的方案,这样比较容易做到兼容,Dragonfly 的实现是参考了《VLL: a lock manager redesign for main memory database systems》[7]里的 VLL 方案。不过从支持的接口[8]列表看,Dragonfly 尚未完全兼容 Redis 的接口。完全的 Redis 接口兼容性对 Tair 来说是至关重要的,这里简单介绍下 Tair 采用的轻量锁方案。一般情况下,处理 KV 引擎的事务并发只要保证在 key 级别上串行即可,轻量锁方案都是实现一个 Hash Lock Table,然后对一个事务中所有涉及到 key 进行加锁即可。这个 Hash Lock Table 类似这样:Hash Lock Table 的实现本质上是个悲观锁机制,事务涉及的 key 操作都必须在执行前去检查 Hash Lock Table 来判断是锁授权还是锁等待。如果事务涉及到多个 key 的话加锁的顺序也很重要,否则会出现 AB 和 BA 的死锁问题。工程上常规的做法是要么对 key 本身进行排序,要么是对最终加锁的内存地址进行排序,以保证相同的加锁顺序。5. Tair 慢查询隔离在 Tair 完成了 Redis 兼容引擎的事务并发支持后,针对慢查询请求的隔离需求便提上了议程。首先是识别,数学上的时间复杂度无法衡量真实的执行代码,还需要每个数据操作指令自定义复杂度公式,结合引擎查询计算复杂度。假设我们定义 C 表示参数的数量(argc)或范围(range),K 表示单个 DB 下的 KeyCount,M 表示该种数据结构的内部成员数量(比如 list 的 node 数量,hash 的 field 数量等等),一些命令的代价计算公式如下 :keys -> O(K)sort -> O(M+M*log(M)) | M*log(M)lrange -> O(M) | O(C)sinterstore -> O(C*M)hgetall -> O(M)zinterstore -> O(M*C)+O(M*log(M))当引擎能估算识别请求的执行代价后,那么将这些必然会触发慢查询的请求隔离出去就可以了。Tair 在原本的 IO/Worker 线程之外,抽象了一组慢查询协程来处理这类慢查询的请求,整体的模型如下:请求被分为 Fast Path,Slow Path 以及可能造成严重阻塞的 Slowest Path 三类。Fast Path 直接在 IO 线程上执行并返回,Slow Path 在单独的 Worker 线程上计算(最后回到 IO 线程上回包),Slowest Path 是引擎的代码估算系统得出的慢速请求,会被投递给专门的 Coroutines Threads 处理。这里重点介绍下 Coroutines Threads,本质上这是一组协程和线程以 M:N 模型进行协作的抽象,每个慢速请求会创建一个新的协程加入到优先队列里被调度执行。使用协程切换的目的是希望慢查询本身也是有优先级的,次慢的查询理应比更慢的查询尽早返回,而不是简单的 FCFS(First Come First Serve)策略。协程的选择有无栈协程(Stackless)和有栈协程(Stackful)两种,有栈和无栈最大的区别就在于编程模型和资源占用上。使用有栈协程可以在任意的函数位置进行协程切换,用户态一次纯寄存器的上下文切换仅在 10 ns 上下,远低于操作系统上下文切换的开销(几 us 到上百 us )。为了不对原始代码进行过多的修改,Tair 选择了有栈协程进行任务的封装与切换,同时为了降低极端场景下的内存开销,也提供了共享栈协程(Copying the stack)的选项以支持时间换空间。Tair 是一个多引擎的服务,有内存和磁盘等不同的介质,所以这三类线程是根据实际的需求创建的。比如内存模式就只分配了 IO 和 Coroutines 线程,涉及到磁盘形态的存储才会使用 Worker 线程池。因为内存形态下请求处理的很快,此时 IO 线程直接处理快速的查询要比和 Worker 线程池的任务交互带来的 2 次上下文切换开销更划算。6. Lua 加速接下来我们聊聊 Lua 机制。Redis 原生的事务(watch-multi-exec)机制只是一种带有 key watch 机制的批量执行手段,实际上和传统数据事务所强调的 ACID 不搭边。Redis 为了弥补自身的一些缺陷,引入了 Lua 作为存储过程的替代实现。Redis 允许用户提交一段 Lua 脚本在服务端执行,并且提供了build-in 的 Lua 库来执行 Redis 命令。得益于一直以来的单线程实现,Lua 脚本在 Redis 服务端是顺序执行的,也就保证了原子性。有了 Lua 这个灵活的机制,Redis 的边界被进一步被拓宽,诸如分布式锁这样的组合特性很快便流行开来。但实际上 Lua 的执行是有额外的开销的,词法分析、语法分析、JIT 以及跨越语言边界的 2 次额外数据类型转换。但是 Lua 带来的这些成本问题并没有阻碍 Lua 的大量使用,因为这个特性极大的简化了很多业务逻辑。在很多场景下,大量的数据从存储服务读取到业务服务器,然后处理后又被写回。这个处理过程中很多时间和带宽被浪费在了数据的来回搬运上,以及业务服务为了原子性而采用的分布式锁甚至更重的机制上。如果一段针对数据的操作能简单的推送到服务端原子的执行,这就可以大幅度的简化业务逻辑,并且在整体性能上可能会更好。然而,一旦这个逻辑涉及到多个 key 时,在多个存储节点组成的集群模式下,这个操作就难以进行了。所以 Redis 集群模式下限定一个 Lua 脚本操作的 key 不得跨 slot,否则涉及到多个存储节点的 Lua 是无法解决原子性的问题的,而分布式事务显然太重了,不符合 Redis 的设计理念。但是 key 的文本表示以及 hash 运算后的 slot 并没有符合直觉的对应关系,这就使得 Lua 脚本在集群模式下的优势严重缩水。尽管有 hashtag 这样的机制可以把相关的 key 存储在相同的分片上,但是这样更容易造成集群节点间的水位不一致,也无法线性扩展。特别地,在游戏客户的眼里,Lua 是一个可以帮助他们大幅度简化业务逻辑的机制。小到登录 Session 的多地域防重复登录,即时排行榜的维护,大到反作弊机制的完整解决方案,都有这广泛的应用场景。而且在短、平、快的游戏迭代中,谁能早一天发布,谁就能多一点市场机会。因为维护一个全游戏玩家的一致性视图是很困难的,所以分区分服是常见的业务策略。这样一个区/服的数据量进一步缩小和独立,如果能在一个数据节点上存储所有的数据,并且完整的支持 Lua 机制的话对游戏开发来说是很幸福的事情。针对这个场景,Tair 的多线程进一步的支持了 Lua 的执行加速,每个命令执行线程拥有自己的 Local Lua VM 对用户的脚本进行并行处理,同时其他的普通请求正常进行。这时候多线程的优势就体现出来了。原本在单线程节点组成的集群里需要用分布式事务才能解决的问题此时用单机事务就可解决了。尽管单节点无法像集群那样水平扩展到数百个节点,但是单机近百 core 的机器已经覆盖了绝大多数的用户场景了。尽管一个 64 线程的单节点在绝对性能上不如一个 64 分片的集群实例,但是这个单节点能做到集群实例做不到的事情。不过正因为 Lua 的灵活性,操作的数据 key 有可能是在运行时动态计算得出的,那么事务开始前的 Hash Lock Table 机制就不够了,因为无法执行前预知这个 Lua 要操作哪些 key 要加哪些锁。所幸一般性的 Redis Lua 使用规范里都要求把操作的会变化的参数抽象到脚本参数里,以避免 Lua 脚本不同占据了服务端太多存储。所以 Tair 提供了一个「Lua 严格模式」的选项,开启后要求 Lua 脚本所操作的 key 必须在参数中给出,否则拒绝执行。在这个选项开启后在事务锁阶段就使用行锁(key 锁)而不是表锁(db 锁),能获得最好的加速效果。7. Tair 多线程引擎版本介绍Tair 多线程引擎版本首发于 2019 年 4 月份,当时以「Redis 企业版-性能增强型」的名称对外发布,完全兼容社区 Redis 5.x 版本,当时的引擎线程模型和社区版的区别如下:air for Redis 5.x 版本当时率先于 Redis 社区实现了多 IO 单 Worker 的形态。该版本将网络 IO 操作从原本的引擎线程中完全剥离,在不同的访问场景下有着相对于社区 150%~300% 的性能提升。Redis 社区 6.x 于本文所介绍的 Tair for Redis 6.x 的线程模型对比如下:Tair for Redis 6.x 版本完全的实现了多线程的并发引擎操作,突破了 5.x 版本 IO 线程存在上限的问题,在访问的 key 均匀的情况下,可以水平扩展线程数量提升单分片性能(接口完全兼容社区托管版 6.0 版本)。在用户业务强依赖单节点访问方式且短期无法适配集群版的情况下,继续帮助用户抵御业务增长压力或者为改造集群版提供缓冲时间。值得一提的是,这里的线程模型图只是 Tair 新版本的一种部署形态,在 Tair 适配不同的存储介质时,会选择最合适的线程模型以最大化的利用硬件资源,在不妥协延迟的前提下尽可能的提升吞吐能力。Tair for Redis 6.x 版本目前已经在全网发布,首发版本支持内存形态并完全兼容社区 6.x 版本的所有接口和用户特性。8.结语云原生内存数据库 Tair 是阿里云自研数据库,兼容 Redis 的同时提供更多数据结构和企业级能力,包括全球多活、任意时间点恢复和透明加密等。支持多种存储介质和不同场景性价比需求:内存型支持超高吞吐,性能为Redis 三倍;持久内存型成本降低 30%,支持数据实时持久化;图引擎(原图数据库GDB)支持数据融合与知识图谱应用。点击文末「阅读原文」可了解 云原生内存数据库Tair 更多内容。版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。发布于 2023-02-24 13:04・IP 属地浙江RedisRedis持久化浏览器引擎赞同 464 条评论分享喜欢收藏申请
TARI TARI_百度百科
TARI_百度百科 网页新闻贴吧知道网盘图片视频地图文库资讯采购百科百度首页登录注册进入词条全站搜索帮助首页秒懂百科特色百科知识专题加入百科百科团队权威合作下载百科APP个人中心TARI TARI播报讨论上传视频日本2012年桥本昌和执导的动画片收藏查看我的收藏0有用+10《TARI TARI》是由日本动画制作公司P.A.WORKS原创的电视动画,同时也是P.A.WORKS 继《真实之泪》、《花开伊吕波》之后的“P.A.WORKS青春物语”系列第三弹 [1]。“TARI TARI”是“时而...时而...”的意思,寓意人生充满各种意想不到的挑战以及欢乐。动画也正是讲述三位少女坂井和奏、宫本来夏、冲田纱羽为音乐梦想不断努力的故事 [2]。2012年1月28日,曾是《Sola》、《真实之泪》、《花开伊吕波》等作的制片人永谷敬之(ナガッチョ)在动画制作的企划&制片的公司infinite的博客上发表了原创企划《TARI TARI》的情报 [3-4]。2012年2月22日,在该博客上发布的第二报中,永谷敬之又公开了Main Visual第一弹 [4-5]。2012年3月20日,动画官网正式开通,并公开了幕后制作、配音演员等更对情报 [6]。电视动画于2012年7月1日开始播放,全13集。中国大陆由bilibili独家正版 [7]中文名TARI TARI别 名心之旋律 Tari Tari动画类型动画原 著TARI TARI主要配音高垣彩阳、濑户麻沙美、早见沙织、岛崎信长、花江夏树地 区日本导 演桥本昌和总编剧桥本昌和角色设计关口可奈味总动画监督关口可奈味出品方tari tari project首播电视台神奈川电视台网络播放平台bilibili(中国大陆) [7]播出状态已完结集 数全13集发行公司波丽佳音音 乐滨口史郎代理发行普威尔国际(中国台湾)动画制作P.A. Works目录1故事简介2角色简介3幕后制作4各话制作5分集剧情6音乐专辑▪主题歌▪角色歌▪音乐集▪广播剧7Blu-ray&DVD8衍生作品▪网络广播▪漫画▪演唱会故事简介播报编辑版权绘(19张)故事的舞台设定在神奈川县江之岛 [8]的湘南,讲述进入了高中音乐系的坂井和奏却在半途因为母亲突然去世在自责的情况下放弃了音乐的道路,之后便转入了普通系,在她升入高中三年级时,以与宫本来夏、冲田纱羽的相遇为契机加上田中大智与新生前田敦博组成了合唱和羽毛球部,就这样再次与音乐相联系,青春群像剧也正式开演了。 [9]然而与此同时,由于理事长的商业规划,学校正一步步走向消亡,而同学们大都不知情……角色简介播报编辑坂井和奏(さかい わかな)声优:高垣彩阳17岁。江之岛一家土产店的独生女儿,高中三年级。合唱部成员。给人的印象是活泼的单马尾,但是因为过去悲伤的事情,心情似乎会常常变得忧郁的女生。曾经为了将来能走上音乐道路而选择进入了音乐班,但因为歌唱的原因和母亲发生不快,并且直到母亲去世也没能和好,因而感到内疚自责,放弃了自己的梦想,转到了普通班。在升入高三时,以与宫本来夏、冲田纱羽的相遇为契机组成了合唱部,就这样再次与音乐联系在一起。现今同父亲以及一只名叫“哆啦”的公猫生活在一起。宫本来夏(みやもと こなつ)声优:濑户麻沙美18岁。和奏的同班同学,元气十足,喜欢唱歌的女孩。合唱部部长。经常欺负弟弟宫本诚。团队中个子最矮的,看起来娇小可爱,实际上是年龄最大的。作为普通班的学生,通过爱好者同好会身份加入到了声乐社,但是声乐社大多都是音乐班学生,加上曾经太紧张演唱破音而不被教导主任承认,便自己创立了合唱部。一度因人数不足而解散,后创立了“合唱兼羽毛球部”。冲田纱羽(おきた さわ)声优:早见沙织17岁。和奏的同班同学,弓箭部所属的女生,现今也兼作合唱部成员。有着不输给男孩子的性格。个子高挑而且有着一副好身材,运动神经很好。一度为体重超过骑手考试要求而苦恼。经常和来夏在一起。家在高中附近的寺庙。饲养着一匹名字叫サブレ(萨布雷)的马,待寺庙里养着的马如亲人一般。最后为了成为一名骑手而去海外学习。维也纳(ウィーン)/前田敦博(まえだ あつひろ)声优:花江夏树17岁。和奏她们的同班同学。转校生。合唱部成员。“维也纳”是其绰号。时隔12年从奥地利维也纳返回日本的归国子女,从奇怪的书上学了一些所谓日本的习惯和知识,经常让大智很无语。电车族。本来被田中大智邀请加入了羽毛球部,但在输掉比赛后同大智加入了合唱部。对和奏有好感。田中大智田中大智(たなか たいち)声优:岛崎信长17岁。合唱部兼羽毛球部成员。经常迟到。因为父母调工作到外地,现今和大学生姐姐晴香一同生活。因为在同来夏她们的比赛上输了,所以同“维也纳”一起加入了合唱部。但是仍然可以继续打球,后来被推荐入学。喜欢纱羽。坂井真昼坂井真昼声优:大原沙耶香本作灵魂人物,贯穿整个主线,和奏的母亲。有着活泼开朗的性格,非常温柔。曾经是合唱部最优秀的学生,和高仓直子是好友。被高仓直子称为“一个人创造了当时的合唱部和当时的歌”。被称为“做任何事看上去都很轻松惬意”的人。想和和奏一起写歌,却在歌完成之前去世,成为和奏心里永远的痛。坂井圭介(さかい けいすけ)声优:浜田贤二和奏的父亲。和闺女和奏以及公猫“多拉”生活在一起。为亡妻、也就是和奏的母亲所赠《求婚之歌》所牵,毅然选择继承土产店的事业。爱好是园艺。比起电视更喜欢听广播。高仓直子/教头(たかくら なおこ)声优:田中敦子白浜坂高等学校的教头兼声乐部顾问。毕业于白浜坂高校。为人严厉认真。在上学期间和和奏的母亲是很要好的朋友,对坂井真昼有着无法言喻的感情。高桥智子(たかはし ともこ)声优:木村亚希子和奏她们的班主任。即使已经开始休产假,仍很关心转到普通班的和奏。为人和蔼可靠,深受学生们的尊敬,但是要是为了入手一种酷爱的意式冷饮冰激凌可是会不择手段。冲田志保(おきた しほ)声优:能登麻美子纱羽的母亲。兴趣是冲浪和做插画。和来夏关系也很好,像姐姐一般。即使在町议会面对众多有威望的男人们,也是德高望重的存在,往往起到一锤定音的作用。同样也在白滨坂高中上过学。池崎赖(いけざき たよる)/校长声优:宝龟克寿白浜坂高等学校的校长。每当压力过大时都会敲一敲音叉让自己静下心来。有“谓之吾之男人啊”这样的说话习惯,而且爱自言自语。年轻时是一名充满热情的音乐教师,而现今似乎只能从那个性化的发型中找到当年的风姿了。是和奏的母亲以前的老师。幕后制作播报编辑原作︰EVERGREEN监督・系列构成︰桥本昌和角色原案︰tanu角色设计・总作画监督︰关口可奈味美术监督︰东地和生色彩设计︰井上佳津枝摄影监督︰并木智3D监督︰平田洋平编辑︰高桥步音响监督︰明田川仁音乐︰滨口史郎音乐制作︰Lantis动画制作︰P.A.WORKS制作︰tari tari project [10]各话制作播报编辑话数标题(日/中)剧本分镜演出作画监督第1话飞び出したり 诱ったり既是突然出现 又是邀约桥本昌和仓川英扬安斋刚文伊藤依织子第2话集ったり あがいたり既是聚集 又是挣扎桥本昌和安斋刚文平田丰佐佐木睦美第3话振ったり 出会ったり既是拒绝 又是邂逅冈村天斋山本秀世锅田香代子第4话怒ったり 踊ったり既是生气 又是跳舞许琮川面恒介第5话舍てたり 舍てられなかったり既是舍弃 又是不想舍弃桥本昌和佐藤梨香浅井义之吉田优子第6话笑ったり 想ったり既是欢笑 又是思念多田俊介仓川英扬大东百合惠第7话空回ったり 见失ったり既是徒劳无功 又是迷失安斋刚文天崎まなむ第8话気にしたり 思いっきり駆け出したり既是在意 又是尽情奔跑许琮大西景介伊藤依织子第9话白くなったり 赤くなったり既是苍白 又是脸红横手美智子猫贺大介安斋刚文佐佐木睦美第10话萌えたり 燃えたり既是萌生 又是燃烧冈村天斋浅井义之川面恒介第11话満ちたり 欠けたり既是充满 又是欠缺桥本昌和佐藤梨香浅井义之许琮锅田香代子第12话重ねたり 响いたり既是交错 又是回响许琮太田知章大东百合惠最终话晴れたり 泣いたり あとは时々歌ったり既是放晴 又是哭泣 并时而歌唱桥本昌和伊藤依织子天崎まなむ川面恒介 [11]分集剧情播报编辑11 -13第1集剧情图片 家中在江之岛经营土产店,身为独生女的坂井和奏。参加弓道社的冲田纱羽。纱羽的好朋友,宫本来夏。他们所念的白滨坂高中除了普通科之外还有音乐科,喜欢唱歌的来夏虽然是普通科的学生,却参加了声乐社。但是,因为1年前的联合发表会上发生的事情她得不到唱歌的机会,每天都很苦恼。有一天,她下定了决心,要跟身为社团顾问的教务主任表达自己的想法……和奏、纱羽、来夏、青春洋溢的少女们的高中生活的最后一个夏天开始了……第2集剧情图片 来夏新创立了合唱社,目标是参加联合发表会。但是社员如果不到 5 个人的话,就不算是一个社团,只会被当作是同好会。同时参加弓道社和合唱社的纱羽、念同一所学校的弟弟‧诚,再加上自己,这样虽然凑了三个人,剩下的两个人却找不到。但是因为纱羽的帮忙,和奏答应挂名参加,来夏他们这个好不容易凑齐的合唱社,要往联合发表会的会场移动。在合唱社这个新舞台开始发挥。第3集剧情图片 联合发表会结束之后,因为当初入社的目的已经达到了,包括来夏的弟弟‧诚在内的社员纷纷退社,合唱社成员于是又变回原来的3个人。有一天,教务主任把来夏以及一个人活动的羽球社社员‧田中大智叫去,以社员人数不满5个人为由,要他们废社。然而来夏并不死心,她为了确保社员人数,又朝新的目标前进。另一方面,在纱羽的老家‧源奉寺,正在进行商店街夏季活动的企划会议。第4集剧情图片 有同班同学‧田中大智,加上从奥地利回到日本的维也纳,来夏他们以新生的合唱社来展开活动。他们下一个目标是参加当地的商店街企划的夏季活动“World Music Festival”。这时劲敌‧Condor Queens 却突然出现。来夏因为自己憧憬的乐团要登场而开心不已,纱羽看著这样的她,却越来越着急。合唱社成员能顺利地唱他们自己的歌吗?在这过程当中,一直跟音乐保持距离的和奏与 Condor Queens 之间出人意料的关系即将揭晓……第5集剧情图片 又是丢弃 又是舍弃不了,大智在一场攸关参加全国大赛资格的羽球比赛中出赛,合唱社的成员为了替他加油, 便在会场集合。来夏手持沙铃,即兴唱起加油歌;以她和维也纳为中心,现场气氛变得热络。然而和奏却因为身体不适先回家了。之后,为了鼓励大智而举办的派对她也缺席。她在 Music Festival 结束后,从 Condor Queen’s 那里拿到的信,将她拉回她与母亲的回忆里。她对什么都没和她说的母亲的思念,至今依然无法衡量。11 -13音乐专辑播报编辑主题歌OP【专辑名】OP《Dreamer》 [12]【发售日】2012年8月1日【歌】AiRI【收录曲】01. Dreamer作词:AiRI 作曲·编曲:宫崎京一02. ウツクシセカイ03. Dreamer (Instrumental)04. ウツクシセカイ (Instrumental)ED【专辑名】ED《潮风のハーモニー》 [12]【发售日】2012年8月8日【歌】白浜坂高校合唱部【收录曲】01. 潮风のハーモニー歌 : 白浜坂高校合唱部(坂井和奏(高垣彩阳), 宫本来夏 (瀬戸麻沙美), 冲田纱羽 (早见沙织), 田中大智(岛﨑信长), 维也纳(花江夏树))作词:micco 作曲:杉森舞编曲:渡边和纪02. Triple Smiley歌 : 白浜坂高校合唱部(坂井和奏(高垣彩阳), 宫本来夏 (瀬戸麻沙美), 冲田纱羽 (早见沙织))03. 潮风のハーモニー (Instrumental)04. Triple Smiley(Instrumental)角色歌迷你专辑 海盘【专辑名】TV动画《TARI TARI》角色迷你专辑 海盘 ~既是下潜、又是浸入~ (海盘~潜ったり、たゆたったり~) [12]【发售日】2012年11月14日【收录曲】01. SAIL AWAY TO SKY歌:冲田纱羽(CV.早见沙织)作词:松井洋平 作曲:石川智久, 松井洋平 编曲:石川智久02. 七色Happiness歌:宫本来夏(CV.瀬戸麻沙美)&冲田纱羽(CV.早见沙织)作词:rino 作曲・编曲:A-bee03. 明日への道歌:冲田纱羽(CV.早见沙织)&田中大智(CV.岛﨑信长)作词:micco 作曲・编曲:酒井阳一04. ホワイトデコレーション☆歌:宫本来夏(CV.瀬戸麻沙美)&维也纳(CV.花江夏树)作词:micco 作曲・编曲:Adoriano Spinesi05. SWEET SHINY DAY歌:坂井和奏(CV.高垣彩阳)&宫本来夏(CV.瀬戸麻沙美)作词・作曲:rino 编曲:谷岛俊06. ホワイトデコレーション☆ (来夏と歌っちゃお☆バージョン) (Bonus Track)07. ホワイトデコレーション☆ (ウィーンと燃えよう!!バージョン) (Bonus Track)迷你专辑 空盘【专辑名】TV动画《TARI TARI》角色迷你专辑 空盘 ~既是抬头、又是扑翼~(空盘~见上げたり、はばたいたり~) [12]【发售日】2012年11月14日【收录曲】01. 続くメロディ歌:坂井和奏(CV.高垣彩阳)作词:rino 作曲・编曲:板垣祐介02. Twinkle Link歌:宫本来夏(CV.瀬戸麻沙美)作词:rino 作曲・编曲:藤泽庆昌03. 情热になって歌:田中大智(CV.岛﨑信长)&维也纳(CV.花江夏树)作词:rino 作曲・编曲:木之下庆行04. 光と风にのせて歌:坂井和奏(CV.高垣彩阳)&冲田纱羽(CV.早见沙织)作词:micco 作曲・编曲:菊池达也05. goin’ my way!!歌:宫本来夏(CV.瀬戸麻沙美)作词:riya 作曲・编曲:浜口史郎06. 光と风にのせて (和奏と歌うっていいね!バージョン) (Bonus Track)07. 光と风にのせて (纱羽と歌おっか。バージョン) (Bonus Track)音乐集【专辑名】TV动画《TARI TARI》Music Album - ~既是歌唱、又是奏乐~(~歌ったり、奏でたり~) [12]【发售日】2012年9月26日【歌】浜口史郎【收录曲】▼Dick 1~既是奏乐、又是倾听~(~奏でたり、たどったり~)01 はじまったり、目覚めたり02 歩いたり、スキップしたり03 眺めたり、感じたり04 あいさつしたり、じゃれあったり05 おどけたり、ひやかしたり06 活动したり、笑いあったり07 微笑んだり、ほっとしたり08 キラキラしたり、ワイワイしたり09 优しさに触れたり、夕暮れを见上げたり10 勘违いしたり、教えてあげたり?11 决意を新たにしたり、行动开始したり12 あくびしたり、のびをしたり13 前向きだったり、ひねくれてみたり14 自信あったり、なかったり15 取り留めなかったり、懐かしがったり16 自负だったり、迷いだったり17 语ったり、耳を倾けたり18 思い出したり、包まれたり19 迎えたり、つなげたり20 たくらんだり、ニヤリとしたり21 ドキドキしたり、オロオロしたり22 おっちょこいちょいだったり、のんきだったり23 イラッとしたり、ムカッとしたり24 まとまらなかったり、决まらなかったり25 见えなかったり、不安になったり26 走り出したり、逃げ出したり27 コンドルクインズだったり、サンバだったり28 决意だったり、大切な思いだったり29 母のやさしさだったり、母への感谢だったり30 ありがとうだったり、希望だったり31 别れだったり、别れたくなかったり32 过去だったり、真実だったり33 不安だったり、やるせなさだったり34 海だったり、空だったり35 せつなさだったり、寂しさだったり36 岚だったり、雨だったり37 透明だったり、响いたり38 思いを驰せたり、共にあったり39 抱えたり、寄り添ったり40 駆け出したり、求めたり▼Dick 2~既是歌唱、又是呼叫~(~歌ったり、呼んだり~)01 Dreamer (TVサイズ)02 白浜坂高校校歌(#1、3、13插入曲)作词:桥本昌和作曲、编曲:滨口史郎歌:田中大智(岛崎信长)(#1)、白浜坂高校学生(#13)03 リフレクティア (合唱版)(#1插入曲)作词:riya作曲:菊地创编曲:滨口史郎歌:白浜坂高校声乐部04 Amigo! Amigo!(#2、4插入曲)作词:ヒカルド・クルーズ作曲、编曲:滨口史郎歌:Condor Queens(Ricardo Cruz(ヒカルド・クルーズ)和其伙伴)05 Amigo! Amigo! (レクイエム Ver.)06 goin' my way !!(#1Ver.)07 goin' my way !! (合唱版)08 白浜坂高校校歌 (ラテン Ver.)09 Hau'oli ♪(#4插入曲)作词:riya作曲、编曲:滨口史郎歌:白浜坂高校合唱部(宫本来夏(濑户麻沙美)&冲田纱羽(早见沙织)&田中大智(岛崎信长)&维也纳(花江夏树))10 アイキャッチ11 心の旋律 (インスト Ver.)12 心の旋律 (#2ED Ver.)13 心の旋律 (#6ED Ver.)14 心の旋律 (合唱版)15 心の旋律作词:riya作曲、编曲:滨口史郎歌:白浜坂高校合唱部16 热闘ヒーローガンバライジャー (#10 Ver.)作词:原田谦太作曲、编曲:滨口史郎歌:西之端英雄商店者(西之端ヒーローショウテンジャー)17 热闘ヒーローガンバライジャー(#9插入曲,完全版)18 radiant melody(#12~13插入曲)作词:riya作曲、编曲:滨口史郎歌:白浜坂高校合唱部&声乐部19 潮风のハーモニー (2人 Ver.)20 潮风のハーモニー (4人 Ver.)21 潮风のハーモニー (5人 Ver.)22 潮风のハーモニー (#13ED Ver.)音乐集广播剧广播剧CD【专辑名】TV动画《Tari Tari》广播剧CD《旅立ちの歌》【发售日】2013年4月10日【收录曲】01. 美女たちと蛙 ~Beauties and the frogs~ (音楽剧)02. 冬だったり 立ち止まったり (第13话)03. 歩き出したり 春だったり (第13话)04. 旅立ちの歌作词:riya 作曲・编曲:浜口史郎Blu-ray&DVD播报编辑第1卷2012年09月05日第2卷2012年10月03日第3卷2012年11月07日第4卷2012年12月05日第5卷2013年01月09日第6卷2013年02月06日DVD-BOX 北美版2013年6月25日Blu-ray BOX2014年12月17日 [13]衍生作品播报编辑网络广播《TARI TARI》的网络广播节目《TARI TARIラジオ ゆったりまったり放课後日志》自2012年6月22日起在音泉和HiBiKi Radio Station上配信,每周五更新,至10月26日配信结束。网络广播CD发售日TARI TARIラジオ ゆったりまったり放课後日志 vol.12012年09月26日TARI TARIラジオ ゆったりまったり放课後日志 vol.22012年11月28日 [14]漫画第1卷封面 [15]漫画版《TARI TARI》由尚村透担任构成,键空富烧负责作画,在动画开播之前,于《月刊GANGAN JOKER》2012年6月号(5月22日发售)上开始连载 [15-16],并在2012年11月号(10月22日发售)载毕,共7话。单行本由史克威尔·艾尼克斯出版,全2册。出版信息卷发售日第1卷2012年07月21日第2卷2012年12月22日 [17]演唱会演唱会相关图(4张)“P.A.WORKS青春物语”系列三部曲《真实之泪》、《花开伊吕波》、《TARI TARI》于2013年4月13日在千叶舞浜Amphitheater召开了合同演唱会“真实之泪×花开伊吕波×TARITARI JointFestival” [1],邀请到eufonius、结城爱良、nano.RIPE、Sphere、Clammbon、AiRI、白浜坂高校合唱部(高垣彩阳、瀬戸麻沙美、早见沙织、花江夏树)等曾经演唱过《真实之泪》《花开伊吕波》《TARITARI》动画主题歌的歌手和组合出演 [18]。演唱会的Live BD于2013年2月26日发售 [19]。BD中收录三作女性角色共演的新作OVA《utopia》,作为特典制作的OVA动画《utopia》,是以演唱会主题歌《utopia》为基础制作的新作动画 [18]。新手上路成长任务编辑入门编辑规则本人编辑我有疑问内容质疑在线客服官方贴吧意见反馈投诉建议举报不良信息未通过词条申诉投诉侵权信息封禁查询与解封©2024 Baidu 使用百度前必读 | 百科协议 | 隐私政策 | 百度百科合作平台 | 京ICP证030173号 京公网安备110000020000
Tari | Launchpad
Tari | Launchpad
For Everyone
Intro
What is Tari?
Read the latest updates
Mobile Wallet
Block Explorer
Downloads
Get Involved
For Developers
Get Started
Explore the Protocol
Make Tari Better
Community
RFC Docs
For Creators
Tari for Creators
YouTube
Substack
GitHub
Join the Conversation
...
For Everyone
Intro
What is Tari?
Read the latest updates
Mobile Wallet
Block Explorer
Downloads
Get Involved
For Developers
Get Started
Explore the Protocol
Make Tari Better
Community
RFC Docs
For Creators
Tari for Creators
YouTube
Substack
Discord
GitHub
Join the Conversation
...
Tari Launchpad
Mine Tari with a single click. Tari Launchpad installs and configures a node and miners
behind the scenes. Just point it and your wallet and watch the Minotari roll in.
Ubuntu
Mac
Windows
Minotari Launchpad for Ubuntu
Download the binary, click through to install. Then you'll be automatically connected to the Minotari blockchain.
For Ubuntu 18.04 and higher
Network
Nextnet
Architecture
x86_64
Download for Ubuntu
View the installation guide
Build from source for Ubuntu
Other Versions
Filter by Network:
Nextnet
All
Filename
Last modified
Size
Minotari Launchpad for Mac
Download the binary, click through to install. Then you'll be automatically connected to the Minotari blockchain.
For MacOS 10.15.0 (Catalina) and higher
Network
Nextnet
Architecture
arm64
x86_64
Download for Mac
View the installation guide
Build from source for Mac
Other Versions
Filter by Network:
Nextnet
All
Filename
Last modified
Size
Minotari Launchpad for Windows
Download the binary, click through to install. Then you'll be automatically connected to the Minotari blockchain.
For Windows 10 and higher
Network
Nextnet
Architecture
x64
Download for Windows
View the installation guide
Build from source for Windows
Other Versions
Filter by Network:
Nextnet
All
Filename
Last modified
Size
Minotari Support Libraries
Additional miscellaneous binaries and files to enable developers.
View the installation guide
Other Versions
Filename
Last modified
Size
Copyright © 2024. All Rights Reserved.
Privacy Policy.
Disclaimer.
User Agreement.
The Tari Project · GitHub
The Tari Project · GitHub
Skip to content
Toggle navigation
Sign in
tari-project
Product
Actions
Automate any workflow
Packages
Host and manage packages
Security
Find and fix vulnerabilities
Codespaces
Instant dev environments
Copilot
Write better code with AI
Code review
Manage code changes
Issues
Plan and track work
Discussions
Collaborate outside of code
Explore
All features
Documentation
GitHub Skills
Blog
Solutions
For
Enterprise
Teams
Startups
Education
By Solution
CI/CD & Automation
DevOps
DevSecOps
Resources
Learning Pathways
White papers, Ebooks, Webinars
Customer Stories
Partners
Open Source
GitHub Sponsors
Fund open source developers
The ReadME Project
GitHub community articles
Repositories
Topics
Trending
Collections
Pricing
Search or jump to...
Search code, repositories, users, issues, pull requests...
Search
Clear
Search syntax tips
Provide feedback
We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Cancel
Submit feedback
Saved searches
Use saved searches to filter your results more quickly
Name
Query
To see all available qualifiers, see our documentation.
Cancel
Create saved search
Sign in
Sign up
You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.
You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
The Tari Project
The Tari Digital Assets Protocol
42
followers
https://tari.com
Overview
Repositories
Projects
Packages
People
More
Overview
Repositories
Projects
Packages
People
Pinned
tari
tari Public
The Tari protocol
Rust
315
201
tari-crypto
tari-crypto Public
Tari Cryptography library
Rust
19
25
tari-dan
tari-dan Public
Rust
4
11
tari-launchpad
tari-launchpad Public
A node, wallet and miner for Tari focusing on ease of use
TypeScript
1
14
rfcs
rfcs Public
RFC documents for the Tari protocol
Solidity
3
15
wasm-template
wasm-template Public
Rust
4
Repositories
Type
Select type
All
Public
Sources
Forks
Archived
Mirrors
Templates
Language
Select language
All
C
C++
CSS
HTML
JavaScript
Kotlin
PowerShell
Python
Rust
Shell
Solidity
Swift
TypeScript
Sort
Select order
Last updated
Name
Stars
Showing 10 of 78 repositories
stable-coin
Public
Rust
0
1
0
1
Updated Mar 7, 2024
tari-dan
Public
Rust
4
BSD-3-Clause
11
71
13
Updated Mar 7, 2024
tari
Public
The Tari protocol
Rust
315
BSD-3-Clause
201
122
18
Updated Mar 7, 2024
tari-launchpad
Public
A node, wallet and miner for Tari focusing on ease of use
TypeScript
1
BSD-3-Clause
14
78
0
Updated Mar 7, 2024
wallet-ios
Public
The mobile Tari wallet application for iOS
Swift
23
BSD-3-Clause
21
32
(1 issue needs help)
0
Updated Mar 7, 2024
wallet-android
Public
The Tari Wallet application for Android
Kotlin
33
BSD-3-Clause
22
50
0
Updated Mar 7, 2024
explorer
Public
TypeScript
0
2
3
0
Updated Mar 7, 2024
dan-testing
Public
Python
0
BSD-3-Clause
3
0
0
Updated Mar 6, 2024
rfcs
Public
RFC documents for the Tari protocol
Solidity
3
15
6
1
Updated Mar 6, 2024
bulletproofs-plus
Public
Rust
6
BSD-3-Clause
11
3
2
Updated Mar 6, 2024
View all repositories
People
Top languages
Loading…
Most used topics
hacktoberfest
tari
Footer
© 2024 GitHub, Inc.
Footer navigation
Terms
Privacy
Security
Status
Docs
Contact
Manage cookies
Do not share my personal information
You can’t perform that action at this time.
Tari
Tari
For Everyone
Intro
What is Tari?
Read the latest updates
Mobile Wallet
Block Explorer
Downloads
Get Involved
For Developers
Get Started
Explore the Protocol
Make Tari Better
Community
RFC Docs
For Creators
Tari for Creators
YouTube
Substack
GitHub
Join the Conversation
...
For Everyone
Intro
What is Tari?
Read the latest updates
Mobile Wallet
Block Explorer
Downloads
Get Involved
For Developers
Get Started
Explore the Protocol
Make Tari Better
Community
RFC Docs
For Creators
Tari for Creators
YouTube
Substack
Discord
GitHub
Join the Conversation
...
The protocol for
digital assets
Tari enables creators to design new types of stories and experiences. Someday a mesmerizing and digitally scarce asset or collectible you covet will unlock new business opportunities for the creator and a new world of possibilities for you. This asset will be issued on Tari. Tari is built in Rust, private by default, and open source.
Learn More
What is Tari?
Tari is a digital assets focused blockchain protocol that is built in Rust, private by default, open source, and is being architected as a merge-mined sidechain with Monero.
Built for Creators
We’re building Tari for creators to have a groundbreaking level of control over their assets. By using combinations of templates to create custom rulesets quickly and easily, creators will be able to unlock a new world of business possibilities, while delivering stunningly beautiful user experiences.
Highly Useful
Tari has all the right ingredients to be the most useful protocol for digital assets on earth. High performance, easy to integrate with, stable, well documented, open-source, secure, and private by default. Dive into how it works.
Freedom Enhancing
Privacy is a fundamental human right. In a world without default privacy, businesses cannot operate, our personal preferences and histories are sold to the highest bidder, and we lose the ability to conduct our lives in the manner we choose. The Tari community fundamentally believes that privacy-enhancing software should be pervasive and available to all.
Community Driven
The Tari community is comprised of many types of amazing collaborators. Imagine a broad spectrum of brilliant creators, builders, advocates, and philosophers all working towards a single goal: to build the most useful decentralized platform that empowers anyone to create digitally scarce things people love. Want to join the party? Everyone is invited.
Learn More About the Tari Protocol and Ecosystem
RFC Docs
The Tari RFCs (request for comments) are the starting point for the Tari project. Ideas that start as discussions on IRC are formalized here before implementation by the Tari community. Have feedback about anything you see here? Please submit an issue on Github.
RFC Docs
Tari Labs University
The goal for Tari Labs University (TLU) is to create the best free, open source educational resource for the many technologies that comprise blockchain systems. Current topics include Schnorr signatures, scriptless scripts, bulletproofs, pure-Rust elliptic curve cryptography, MimbleWimble, merged-mining, confidential assets, and more. Have feedback or think an explanation could be improved? Have ideas for new content? Please contribute to TLU on Github.
Tari Labs University
Tari Aurora
Download a community developed, reference-design mobile wallet app called Tari Aurora, to send and receive testnet Tari (tXTR). Using and contributing to Aurora is a great way to play with the Tari testnet and learn more about what makes Tari special.
View Tari Aurora
Tari Base Node
Run a testnet base node to help test network stability, security, and mine testnet Tari (tXTR). Check out the Getting Started section to learn how to run a base node and start mining.
Get Started
Frequently Asked Questions
Explore a wide variety of answers for common questions asked by the Tari community.
View the FAQ
Mobile Wallet
Meet Tari Aurora. Aurora is a simple, beautiful Tari wallet developed by the Tari community.
Aurora is being developed as a reference-design. Creators and developers can use the Aurora libraries and codebase as a starting point for developing their own Tari wallets and applications. In its production-ready state, Aurora will be a fully functional Tari wallet focused on Tari as a default-private digital currency.
The Tari Wallet of your dreams. Beautiful. Radically Simple. Open Source.
Learn More
Block Explorer
Dive into the current and historical state of the Tari blockchain through the block explorer. Don't expect to look up your address or find a friend's balance, Tari is private by default so all of that information is confidential.
Tari Block Explorer
View the Block Explorer
Downloads
One-click mining
Mine Tari with a single click. Tari Launchpad installs and configures a node and miners
behind the scenes. Just point it and your wallet and watch the Minotari roll in.
Download Launchpad
Run Minotari Suite
For more advanced users who want to configure the Minotari tool-suite (node, wallet, miners) exactly according
to their tastes, download the Minotari Suite binaries.
Download Tari Suite
Get Involved
The Tari community is filled with amazing contributors who care about creating new ways to tell stories, and freedom enhancing software. Join us.
Contribute to Tari
Contribute to the development of the Tari protocol
Help the Tari community expand the content and reach of Tari Labs University (TLU). The goal for TLU is to become the best, free, open source resource for learning about the technologies that make up the Tari protocol
Join the Discussion
The Tari community exists on a growing number of platforms and planets.
Discord
The primary Tari community hangout
Substack
A curated weekly newsletter of protocol updates
Telegram
A slightly noisier place to discuss Tari
IRC #tari
Mirror of the Tari #dev discord channel
Announcements and fun
Conversations regarding privacy, cryptography, the Tari protocol, traditions, philosophy, and anything else that is of interest to the community
Get Started
Tari exists because creators, entrepreneurs, and developers want it to.
A goal of the Tari community is for developers of any skill level to be able to quickly build useful applications that leverage the Tari network and contribute to the Tari project.
The best way to get started is to start running a Tari node. A Tari node is the basic building block of the Tari blockchain and network. Nodes perform the critical functions of maintaining the ledger. Without nodes, there is no network.
Why Run a Node
Every new node increases the size of the Tari network and contributes to network security. There are many things that you can do with the Tari base node client:
Mine testnet Tari (tXTR)
Transact using the CLI wallet
Query and analyze chain data using your local copy of the ledger
Build applications that leverage chain data, such as block explorers, analytics tools, and more
Experiment with custom transaction types, and learn the fundamentals of how Tari works
How to Run Your Own Node
It’s incredibly easy to set up your own Tari base node. There are two ways to accomplish this:
Download the binaries and follow the installation instructions on GitHub.
Build your own set of binaries from the base node source code by following these instructions on the GitHub repo
Have questions? The Tari community prides itself on being open and inclusive. There are no dumb questions.
The best places to engage with the Tari developer community are on IRC or Discord#dev.
Spending testnet Tari (tXTR)
What can you do with tXTR besides experimenting with transactions? You can “spend” your hard-earned, infinite supply, fake Tari on exclusive one-of-a-kind items in the TTL (Tari Testnet Limited) store*. Everything in the store is denominated in tXTR (and is therefore free) except for shipping costs.
Check it out here and let folks know what you think on Discord or IRC.
* tXTR has no monetary value and cannot be exchanged for cash, cash equivalent, or other tokens or cryptocurrencies.
Spend tXTR on Real Exclusive Stuff
Visit the Store
Explore the Protocol
Read discussions, learn how it's built, and view our most recent updates to the Tari protocol.
Updates
The latest updates from developers contributing to the Tari protocol.
View all Updates
February 23, 2024
Developer Update
Documentation updates
Read more
February 14, 2024
Developer Update
The Tari base layer audit report
Read more
Lessons
The Tari protocol is written entirely in Rust. The Tari community is a huge fan of Rust due to its performance characteristics and memory and thread safety guarantees. A great way to experiment with Tari libraries is to explore our lessons and dive into the code.
View all Lessons
How to run a Tari Node on Windows 10
Installing and running a Tari Node on Windows 10
Read more
Learning the Tari Codebase
We're here to help!
Read more
Protocol Discussions
Protocol discussions are an archive of public discussions that the Tari community has over various aspects of the protocol design space along with potential applications of the Tari blockchain. Subscribe to our newsletter to learn about our latest discussion topic and time.
View all Discussions
July 30, 2020
Aurora Improvement Community Discussion
What features would make Aurora even better?
Read more
June 12, 2020
Tari Proof of Work Discussion
What does the proof-of-work algorithm for Tari mainnet look like?
Read more
Make Tari Better
Tari will always be a work in progress.
The Tari community believes that it needs to continually improve and evolve to achieve its stated goal: to be the most useful decentralized platform that empowers anyone to create digitally scarce things people love. How does it improve? Because people choose to dedicate their time, creativity, and brilliance to working on the project.
Why Should You Consider Contributing to a Project like Tari?
Sharpen your skills
Sharpen your skills. Want to learn about distributed systems, cryptography, production Rust systems, web 3, decentralized finance, or digital assets? Contributing to the Tari project is a great way to improve your skills. The Tari community is open, inclusive, and helpful.
You want to use Tari in your application
Contributing to the Tari project is a great way to make a meaningful impact, advocate for features you think the community should consider, and fix bugs you find along the way.
You care about freedom enhancing software
The Tari community believes that the world is out of balance. The internet is an incredible blessing for society, but there are tradeoffs. One of those tradeoffs is privacy. The only way to solve this imbalance is to build new layers of the internet that are private by default. The Tari network will be such a layer. Unfortunately, there is no such thing as perfect privacy. Privacy is a spectrum, and a cat and mouse game. The goal of the Tari community is to strike the best possible balance between usability, usefulness, and privacy. Want to learn more about the decisions the community has made so far?
Please visit the Tari GitHub repos, and connect with us on Discord or IRC. The Tari community is low ego, doesn’t believe in not invented here syndrome, and believes that great ideas can come from anywhere. We’d love to hear your feedback and collaborate with you to make Tari the most useful freedom enhancing protocol in the world.
What Makes Tari Unique?
There are many privacy-focused open source projects in the world. What sets Tari apart is the Tari community's relentless drive to create a protocol that strikes a balance between meaningful privacy, and mainstream usefulness. Through beautiful user experience patterns and reference designs that help developers obfuscate complexity, and tooling that makes it easy for developers to create successful applications, the Tari protocol is a privacy trojan horse. The Tari protocol is intended to be used for real-world, at-scale applications, not prototypes.
Get Involved
Tari is an ecosystem of projects. Each project varies in complexity and sophistication. Some projects are easy to get started contributing to, and others have a meaningful learning curve. The common thread that runs through all Tari projects is that we (the Tari community) are united in making Tari useful, conducting ourselves in a low ego manner, and warmly welcoming everyone regardless of skill level or background. Projects that need your help and support:
Tari Aurora
Aurora is a native reference design wallet application for iOS and Android. The core of Aurora is lib_tariwallet, a highly efficient and extensible library written in Rust with C-bindings for JNI and Swift codebases. Contributing to Aurora is a great way to learn how Rust functions in mobile environments, and to how end users will interact with the Tari digital currency, and network in the future. Contribute to Tari Aurora wallet application for iOS and Android.
View Tari Aurora
Tari Labs University
The goal for Tari Labs University (TLU) is to create the best free, open source educational resource for the many technologies that comprise blockchain systems. If you are interested in researching cryptography such as bulletproofs to scriptless scripts and blockchain technologies such as layer-2 scaling to merge mining, contributing to TLU is your calling.
Tari Labs University
Rust Tutorials
One of the newest editions to the Tari ecosystem, the Rust tutorials, enables developers to experiment with Tari Rust libraries in a browser environment without downloading anything. Try your hand at creating something new with the Tari Rust libraries and sharpen your Rust skills.
Explore Rust Tutorials
Tari Base Layer
The main Tari repository comprises all the main crates that make up the backbone of the Tari base Layer. It's all written in Rust and includes: the base node application, the blockchain consensus code and database, the Tari communications stack, and Tari wallet.
Get Started
Bug Hunting
Found a bug? If it's a noncritical bug, please report it as a GitHub issue here. Thank you for helping to make the Tari project more robust, and reliable.
The Beginning of Your Journey
The Tari project is undergoing continuous evolution. As a result there are always issues to tackle and improvements to make. The Tari community makes an effort to maintain a number of open issues that are a good place to start for new contributors. These issues are labeled in Tari project repos as “good first issue” and are usually refreshed every few months. Have questions? Please feel free to ask any question you have in #tari-dev on Libera.Chat, or on Discord#dev.
Protocol Issues
Oftentimes new contributors start with documentation related issues that tend to be quick wins and help them understand the protocol in greater detail before moving towards test writing and focusing on core protocol code. But feel free to choose your own adventure
Tari Protocol Issues
iOS Issues
Documentation
Tests
Core
Documentation
Tests
Core
Once you’ve found an issue you wish to pursue, stop by #tari-dev on Libera.Chat and someone will assign you the issue in GitHub. Before you start, please read the project contributing guidelines which includes a style guide and a useful PR template. Thank you for your contributions to the Tari project. Together we can make useful freedom enhancing software that everyone wants to use.
Developer Community
The Tari community operates across various platforms, each with its own
character and focus areas.
Discord
The primary Tari community hangout
Substack
A curated weekly newsletter of protocol updates
Telegram
A slightly noisier place to discuss Tari
IRC #tari
Mirror of the Tari #dev discord channel
Announcements and fun
Conversations regarding privacy, cryptography, the Tari protocol, traditions, philosophy, and anything else that is of interest to the community
Documentation
The Tari RFCs (request for comments) are the starting point for the Tari project. Ideas that start as discussions on IRC are formalized here before implementation by the Tari community.
Request For Comment Documentation
Check out the Tari RFC docs to dive into the features and functionality of the Tari ecosystem, and learn how the Tari community makes decisions.
RFC Docs
Tari for Creators
What is a Tari digital asset? It is a programmable canvas for telling stories.
It can be a legendary collectible like the sword of Excalibur, shrouded in a misty forest waiting for the right person to discover it and wield it in battle. Or it can be a coveted ticket that grants access to a sold-out concert, and then access to a personal message from an iconic artist. It can also be a token that represents the economic unit for a new virtual world.
A Tari digital asset can be truly digitally scarce. Someone can prove that they own it in a verifiable manner, and trust that it cannot be easily copied. They can be as secure in their ownership of an asset as they are about any material thing they possess. And a Tari digital asset can have rules that stay with it for as long as it matters. For example, every time an asset changes hands, the creator may choose to receive a fraction of the transaction. The Tari community is designing the Tari protocol to support all of these use cases and more.
How does Tari help creators?
Create new, permanent revenue streams around your creations. For example, earn revenue every time your creation is transferred from one party to another
Turn your creations into programmable, evolving keys that can unlock anything now or in the future. For example, a creation issued today can unlock access, an experience, or a new creation in the future
Build deeper connections with your fans by enabling them to truly own your creations while retaining influence and opportunity via rulesets
Create digital things that stand the test of time. As long as the Tari blockchain exists, records of your creation will persist
Use creations issued on Tari in any application from games, to ticketing systems, to exchanges, and beyond. Tari is permissionless and open source.
Why use Tari?
Purpose-built for creating digitally scarce things that people love
Scalable to support many millions of users and many thousands of transactions per second
Default-private to keep confidential business data private, and protect the privacy of your fans
Well documented and easy to integrate with many commonly used platforms and technologies. All Tari software is opensource
An inclusive community that cares deeply about each other, freedom, our world, and what you are creating
Learn More
The best place to start is by engaging with the Tari community on Discord or IRC.
We would love to hear about what you are working on, and how Tari can best support you.
Copyright © 2024. All Rights Reserved.
Privacy Policy.
Disclaimer.
User Agreement.
TARI TARI-番剧-全集-高清独家在线观看-bilibili-哔哩哔哩
TARI-番剧-全集-高清独家在线观看-bilibili-哔哩哔哩追番非常抱歉,根据版权方要求您所在的地区无法观看本片TARI TARI追番重播好评投币分享相关推荐点赞投币8332点击复制链接用手机观看TARI TARI:第1话 既是突然出现 又是邀约用哔哩哔哩客户端或其他应用扫描二维码一起看TARI TARI--播放 · -弹幕 · 79.9万系列追番日常 / 音乐 / 校园 / 催泪 · 2012 · 已完结, 全13话 · BV1px411z7FA声优:坂井和奏:高垣彩陽宮本来夏:瀬戸麻沙美
冲田纱羽:早見沙織
田中大智:島﨑信長
ウィーン:花江夏樹
坂井圭介:浜田賢二
高仓直子:田中敦子
高桥 智子:木村亜希子
冲田志保:能登麻美子
简介:舞台设立在神奈川县的江之岛,进入了高中音乐系的坂井和奏却在半途因为母亲突然的去世在自责的情况下放弃了音乐的道路,之后便转入了普通系。在她升入高中三年级时,以与宫本来夏、冲田纱羽的相遇为契机组成了合唱部,藉由音乐的力量,在高中最后的暑假,追寻着属于她们的梦想,编织出细小而闪耀的故事。
《TARI TARI》是以神奈川的江之岛为舞台的原创动画,由P.A. Works制作,预定在2012年7月放送。该片是P.A.WORKS 继「真实之泪」、「花开伊吕波」之后的青春群像剧第三弹。 监督与系列构成是桥本昌和,曾为「雷顿教授与永远的歌姬」的监督,担任过 多部 P.A.WORKS 相关作品的分镜或演出。角色原案由「秋叶原之旅」的角色设计 tanu 担当。 展开舞台设立在神奈川县的江之岛,进入了高中音乐系的坂井和奏却在半途因为母亲突然的去世在自责的情况下放弃了音乐的道路,之后便转入了普通系。在她升入高中三年级时,以与宫本来夏、冲田纱羽的相遇为契机组成了合唱部,藉由音乐的力量,在高中最后的暑假,追寻着属于她们的梦想,编织出细小而闪耀的故事。
《TARI TARI》是以神奈川的江之岛为舞台的原创动画,由P.A. Works制作,预定在2012年7月放送。该片是P.A.WORKS 继「真实之泪」、「花开伊吕波」之后的青春群像剧第三弹。 监督与系列构成是桥本昌和,曾为「雷顿教授与永远的歌姬」的监督,担任过 多部 P.A.WORKS 相关作品的分镜或演出。角色原案由「秋叶原之旅」的角色设计 tanu 担当。 9.7分6259人评分 评分番剧频道追番标记为 想看标记为 在看标记为 已看 取消追番正片(1/13)OVA第一季1受限2受限3受限4受限5受限6受限7受限8受限9受限10受限11受限12受限1
如何评价Tari Tari这部动画? - 知乎
如何评价Tari Tari这部动画? - 知乎首页知乎知学堂发现等你来答切换模式登录/注册动画ACG日本动漫如何评价Tari Tari这部动画?关注者71被浏览49,005关注问题写回答邀请回答好问题 11 条评论分享16 个回答默认排序知乎用户个人非常喜欢的一部动画。这部动画确立了我PA粉的身份,而且很长一段时间里都是PA出的动画里我最喜欢的一部——直到白箱的出现。先说诚意。PA的作画一直很良心,出现崩坏的情况相对业界大多数公司来说较少,花开伊吕波可以算是PA作画良心极致,而TARI TARI虽然不如花开,也算是上乘质量。看着动画感觉江之岛的美景尽收眼底,怎能感觉不好呢?然而看动画毕竟是看故事,故事不好再有诚意也白搭。就故事这点来说,我是喜欢的。粗略看了一下几个答案,两个匿名都说剧情无聊,我也能表示理解。日常向的片子本来就是这样,况且这片子甚至连个感情纠葛都没有,最后田中在机场也不知道表白没有,当然就算表了也是然并卵,这样吊不起观众老爷胃口也是正常情况。所以这东西就是见仁见智。但我还是好喜欢这个故事。这是一个真正的青春物语,有奋斗,有抗争,有迷茫,有汗水,有泪水,有梦想,有懈怠,有忧伤,有破廉耻,也有朦胧的好感。并不是一定要谁和谁在一起,并不用分党派站队撕逼撕得头破血流,并没有贵圈,这点和PA其他几部青春原创动画不太一样,虽然其他的里有一些我也还挺喜欢的,不过最喜欢的果然还是这些没有喧宾夺主的TARI和白箱。这才是我所知道的真实的,能引起我的共鸣的青春啊。在TARI放映快结束的时候,官方在江之岛举行了声优见面会,主题是“白浜坂高校感谢祭”,B站上有视频资源。其中,高垣彩阳说的一句话我印象深刻。她说,希望这是一部观众在需要勇气和努力时一想起来就能涌出力量的动画,希望从这部动画里得到的东西能够成为观众的护身符。我不知道别人如何,至少对我来说,这部动画就是这样一种存在。我准备考研最后一个月时实在是心情低落,很烦的时候就是看一遍“白浜坂高校感谢祭”,哈哈~不止如此。我个人大概还能算是一个喜爱音乐的人吧。当来夏邀请和奏,和奏反问“你为什么要唱歌”的时候,相信观众也会思考这个问题吧,尤其是在你并不是一个优秀的演唱者的情况下——比如来夏有过失败的经历。唱歌唱得不好的我想了半天想不出一个答案,只是觉得有时候就想唱某一首歌,没有为什么。随着剧情的深入,我们知道了《心之旋律》的创作渊源。第二话结尾时只是觉得还蛮好听的那首歌突然变得丰满了起来,我第一次知道,原来音乐可以承载着如此之多的故事与情感。于是,第六话结尾,当五个人随着录音机一同唱起这心的旋律的时候,我突然就哭出来了。大概这就是音乐的力量吧。其实,也许我们并不用知道我们为什么而唱歌,即使唱得不好也没有关系。音乐承载的都是感情,我们唱歌只是一种释放感情的手段而已。正如动画里所说(好像是和奏妈妈说的吧,记不清了),只要你爱着音乐,音乐也会爱着你。总之,看了这部动画之后,我觉得自己对音乐的理解加深了。这部动画就是这样,剧情略平淡,但用心去看会有感动。音乐有加成,喜爱音乐的人大概更容易喜欢。在日本评价好像比中国好一点,销量也算还不错(没记错的话卷均8000多吧),我觉得就可能有日本的音乐普及教育优于中国这个原因。以上。发布于 2015-10-05 21:36赞同 839 条评论分享收藏喜欢收起Kan Kikou立命館大学 情報理工学研究科 人間情報科学コース 关注P.A. Works的青春三部曲里,个人认为《Tari Tari》是最有青春剧味道的作品,因为没有NTR(对、我说的就是《ture tears》),没有贵圈真乱,只是讲了一个只有5个人的合唱部社团的故事,但是合唱部里的每个人都有属于自己的青春烦恼(注意,不是恋爱烦恼,不然这三女两男的小圈子绝对乱的不行),然后每个人的想法和行动通过这个合唱部连接起来,成为一个故事的集合,没有一个角色是空洞的,除去作为故事中心的合唱部,每个人又都有自己的生活,而在叙事上也没有出现大段时间只讲述一个人的情况,都是用一点个个小片段来串起一个故事线,平衡把握的非常好,难度也很高,在这里给担当监督和系列构成的橋本昌和先生好评。本剧主题与音乐相关,音乐方面虽然不能和偶像大师和Love
Live!这样的偶像番比,但放在剧情片里也可以说是极好的,一般动画作品的制作分工里基本就一个音乐监督,但《Tari
Tari》的制作分工中居然有四个跟音乐相关的部门(音乐监督、音乐、音乐制作人、音乐A&R),而且负责音乐制作的公司是大名鼎鼎的
Lantis!所以《潮風ハーモニー》和《心の旋律》那么好听,那么好听,那么好听……仅凭五个声优就能唱出几十人合唱的感觉,我该说Lantis很厉害
呢,还是该说果然声优都是怪物呢……故事的结局我很喜欢,五个人毕业后都在自己梦想的道路上继续前进,很有PA的风格,很有青春的味道。另外,《Love
Live!》和《Tari Tari》,一个以废校而始,一个以废校而终,很有趣的相异点~~编辑于 2016-01-11 09:29赞同 556 条评论分享收藏喜欢
GitHub - tari-project/tari: The Tari protocol
GitHub - tari-project/tari: The Tari protocol
Skip to content
Toggle navigation
Sign in
Product
Actions
Automate any workflow
Packages
Host and manage packages
Security
Find and fix vulnerabilities
Codespaces
Instant dev environments
Copilot
Write better code with AI
Code review
Manage code changes
Issues
Plan and track work
Discussions
Collaborate outside of code
Explore
All features
Documentation
GitHub Skills
Blog
Solutions
For
Enterprise
Teams
Startups
Education
By Solution
CI/CD & Automation
DevOps
DevSecOps
Resources
Learning Pathways
White papers, Ebooks, Webinars
Customer Stories
Partners
Open Source
GitHub Sponsors
Fund open source developers
The ReadME Project
GitHub community articles
Repositories
Topics
Trending
Collections
Pricing
Search or jump to...
Search code, repositories, users, issues, pull requests...
Search
Clear
Search syntax tips
Provide feedback
We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Cancel
Submit feedback
Saved searches
Use saved searches to filter your results more quickly
Name
Query
To see all available qualifiers, see our documentation.
Cancel
Create saved search
Sign in
Sign up
You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.
You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
tari-project
/
tari
Public
Notifications
Fork
201
Star
315
The Tari protocol
tari.com
License
BSD-3-Clause license
315
stars
201
forks
Branches
Tags
Activity
Star
Notifications
Code
Issues
122
Pull requests
18
Discussions
Actions
Projects
1
Security
Insights
Additional navigation options
Code
Issues
Pull requests
Discussions
Actions
Projects
Security
Insights
tari-project/tari
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
developmentBranchesTagsGo to fileCodeFolders and filesNameNameLast commit messageLast commit dateLatest commit History6,768 Commits.cargo.cargo .config.config .github.github applicationsapplications base_layerbase_layer buildtoolsbuildtools clientsclients commoncommon common_sqlitecommon_sqlite commscomms docsdocs hashinghashing infrastructureinfrastructure integration_testsintegration_tests metameta scriptsscripts .deepsource.toml.deepsource.toml .dockerignore.dockerignore .gitignore.gitignore .license.ignore.license.ignore CODEOWNERSCODEOWNERS Cargo.lockCargo.lock Cargo.tomlCargo.toml Contributing.mdContributing.md Cross.tomlCross.toml LICENSELICENSE MakefileMakefile README.mdREADME.md RELEASE_CHECKLIST.mdRELEASE_CHECKLIST.md SECURITY.mdSECURITY.md bors.tomlbors.toml changelog-development.mdchangelog-development.md changelog-nextnet.mdchangelog-nextnet.md changelog-stagenet.mdchangelog-stagenet.md clippy.tomlclippy.toml lints.tomllints.toml package-lock.jsonpackage-lock.json rust-toolchain.tomlrust-toolchain.toml rustfmt.tomlrustfmt.toml View all filesRepository files navigationREADMEBSD-3-Clause licenseSecurity
The Tari protocol
A number of applications have been developed by the Tari community to implement the Tari protocol. These are:
Minotari Base Node
Minotari Wallet
Minotari Miner
Minotari Merge Mining Proxy
Minotari Aurora wallets for Android and iOS
Only the first four applications will be discussed in this README (see wallet-android and wallet-ios for mobile wallets' repos).
Developers
Want to contribute? Start by reading the Contributing Guide and the Reviewing Guide.
Installing using binaries
Versions
The recommended running versions of each network are:
Network
Version
Stagenet
---
Nextnet
1.0.0-rc.5
Esmeralda
1.0.0-pre.9
For more detail about versioning, see Release Ideology.
Download
Download binaries from tari.com. This is the easiest way to run a Tari node, but you're
essentially trusting the person that built and uploaded them that nothing untoward has happened.
Hashes of the binaries are available alongside the downloads.
You can get the hash of your download by opening a terminal or command prompt and running the following:
(*nix)
shasum -a256
(Windows)
certUtil -hashfile
If the result doesn't match the published hash, don't run the binary.
Note that this only checks that your binary was downloaded correctly; it cannot detect if the binary was replaced by a bad actor.
If you need to ensure that your binary matches the source, see Building from source below.
Install
After you have downloaded the binaries, you need to install them. This is easy to do, and works as follows:
On *Nix
Assuming you want to install the Tari applications into your home folder, run the following:
cd ~
tar -xf
After this, the Tari applications will be located in ~/tari_esmeralda_testnet with a selection of
soft links to run them.
On Windows
Just double-click the installer and accept all the default prompts. The Tari applications will be located in the folder
you selected during installation, and can be run by double-clicking the various shortcuts or via the Windows menu
(Tari Testnet).
Runtime links
Use the one-click miner
Execute the start_all soft link/shortcut; this will start everything you need
depending on the choices you make when prompted:
Tor services started by default
Minotari Base Node, or
Minotari Base Node & Minotari Wallet, or
Minotari Base Node & Minotari Wallet & Minotari Miner, or
Minotari Base Node & Minotari Wallet & Minotari Merge Mining Proxy & XMRig
Start all applications individually
Execute the start_minotari_node soft link/shortcut; this will also start the Tor
services if not running already that needs to be running before the base node
can run (do not close the Tor console).
Execute the start_minotari_console_wallet soft link/shortcut; this will also start the
Tor services that needs to be running before the base node can run (do not
close the Tor console).
Note: The Tor console will output [notice] Bootstrapped 100% (done): Done
when the Tor services have fully started.
Depending on your choice of mining:
SHA3 standalone mining
Execute the start_minotari_miner soft link/shortcut.
Merge mining with Monero
Execute the start_minotari_merge_mining_proxy soft link/shortcut.
Execute the start_xmrig shortcut.
Building from source
To build the Minotari codebase from source, there are a few dependencies you need to have installed.
Install development packages
First you'll need to make sure you have a full development environment set up:
(macOS)
brew update
brew install openssl cmake coreutils automake autoconf protobuf tor
brew install --cask powershell
(macOS M1 chipset)
If RandomX unit tests are failing, please update the Mac to ensure it's running at least Darwin Kernel Version 22.3.0.
(Ubuntu 18.04, including WSL-2 on Windows)
sudo apt-get update
sudo apt-get -y install openssl libssl-dev pkg-config libsqlite3-dev clang git cmake libc++-dev libc++abi-dev libprotobuf-dev protobuf-compiler libncurses5-dev libncursesw5-dev
sudo apt-get install -y wget apt-transport-https
sudo wget -q "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb"
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
sudo add-apt-repository universe
sudo apt-get install -y powershell
(Windows)
First you'll need to make sure you have a full development environment set up:
LLVM
https://releases.llvm.org/
Create a LIBCLANG_PATH environment variable pointing to the LLVM lib path, e.g.
setx LIBCLANG_PATH "C:\Program Files\LLVM\lib"
Build Tools
CMake (Used for RandomX)
Either:
Microsoft Visual Studio Version 2019 or later
C++ CMake tools for Windows
MSVC build tools (latest version for your platform ARM, ARM64 or x64.x86)
Spectre-mitigated libs (latest version for your platform ARM, ARM64 or x64.x86)
or
Build Tools for Visual Studio 2019
Perl for OpenSSL:
OpenSSL is compiled and statically linked by the included rust-openssl crate
Perl is required to compile this source on Windows, please download and install StrawberryPerl
Protocol Buffers
Install from https://github.com/protocolbuffers/protobuf#protobuf-compiler-installation or if you using The Package Manager for Windows, run choco upgrade protoc -y
Tor
Download Tor Windows Expert Bundle
Extract to local path, e.g. C:\Program Files (x86)\Tor Services
Ensure the directory containing the Tor executable, e.g. C:\Program Files (x86)\Tor Services\Tor, is in the path
Install Rust (*nix)
You can follow along at The Rust Website or just follow these steps to get
Rust installed on your machine:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Then make sure that cargo has been added to your path:
export PATH="$HOME/.cargo/bin:$PATH"
Install Rust (Windows 10)
Follow the installation process for Windows at The Rust Website. Then make
sure that cargo and rustc have been added to your path:
cargo --version
rustc --version
Checkout the source code
In your directory of choice (e.g. %USERPROFILE%\Code on Windows), clone the Tari repo:
git clone https://github.com/tari-project/tari.git
Build
Grab a cup of coffee and begin the Tari build.
(*nix)
cd tari
cargo build --release
(Windows)
This is similar to building in Ubuntu, except the Microsoft Visual Studio environment must be sourced. Open the
appropriate x64\x86 Native Tools Command Prompt for VS 2019, and in your main Tari directory perform the
build, which will create the executable inside your %USERPROFILE%\Code\tari\target\release directory:
cd %USERPROFILE%\Code\tari
cargo build --release
A successful build should output something like this:
Compiling minotari_wallet v0.0.9 (.../tari/base_layer/wallet)
Compiling test_faucet v0.0.1 (.../tari/applications/test_faucet)
Compiling minotari_wallet_ffi v0.0.9 (.../tari/base_layer/wallet_ffi)
Compiling minotari_node v0.0.9 (.../tari/applications/minotari_node)
Finished release [optimized] target(s) in 12m 24s
Compiled executables can be found at these paths::
./target/release/minotari_node
./target/release/minotari_console_wallet
./target/release/minotari_merge_mining_proxy
./target/release/minotari_miner
Alternatively, cargo can build and install the executable into ~/.cargo/bin (%USERPROFILE%\.cargo\bin on Windows), so it will be executable from anywhere
on your system:
cargo install --path=applications/minotari_node --force
cargo install --path=applications/minotari_console_wallet --force
cargo install --path=applications/minotari_merge_mining_proxy --force
cargo install --path=applications/minotari_miner --force
Alternatively, cargo can build and install the executable into %USERPROFILE%\.cargo\bin, so it will be executable from
anywhere on your system:
cargo install --path=applications/minotari_node --force
cargo install --path=applications/minotari_console_wallet --force
cargo install --path=applications/minotari_merge_mining_proxy --force
cargo install --path=applications/minotari_miner --force
Run
The executables will either be inside your ~/tari/target/release (on Linux) or %USERPROFILE%\Code\tari\target\release
(on Windows) directory, or alternatively, inside your ~/.cargo/bin (on Linux) %USERPROFILE%\.cargo\bin (on Windows)
directory, depending on the build choice above, and must be run from the command line. If the former build method was
used, you can run it from that directory, or you more likely want to copy it somewhere more convenient. Make sure to
start the Tor service ~/tari/applications/minotari_node/osx/start_tor (on Mac),
~/tari/applications/minotari_node/linux/start_tor (on Linux) or
%USERPROFILE%\Code\tari\applications\minotari_node\windows\start_tor.lnk (on Windows).
To run from any directory of your choice, where the executable is visible in the path (first-time use):
minotari_node --init
minotari_node
minotari_console_wallet --init
minotari_merge_mining_proxy
minotari_miner --init
Consecutive runs:
minotari_node
minotari_console_wallet
minotari_merge_mining_proxy
minotari_miner
Alternatively, you can run the Tari applications from your source directory using cargo, and just omit the --release
flag if you want to run in debug mode (first time use):
cargo run --bin minotari_node --release -- --init
cargo run --bin minotari_node --release
cargo run --bin minotari_merge_mining_proxy --release
cargo run --bin minotari_console_wallet --release -- --init
cargo run --bin minotari_miner --release
On consecutive runs:
cargo run --bin minotari_node --release
cargo run --bin minotari_console_wallet --release
cargo run --bin minotari_merge_mining_proxy --release
cargo run --bin minotari_miner --release
Using all the default options, the blockchain database, wallet database, console wallet database, log files and all
configuration files will be created in the ~/.tari (on Linux) or %USERPROFILE%\.tari (on Windows) directory.
Alternatively, by specifying --base-path
directory.
Advanced build configurations
Vagrant: See Building with Vagrant, using Vagrant to build and run a basenode, as cleanly as possible.
Using Docker
Running the base node with a Docker image
Minotari Base Node Docker images can be found at https://quay.io/repository/tarilabs/minotari_node
Using docker-compose.yaml:
version: "3"
services:
minotari_node:
image: quay.io/tarilabs/minotari_node:v0.5.4
restart: unless-stopped
volumes:
- ./data:/root/.tari
# These 2 params are required for an interactive docker-compose session
stdin_open: true
tty: true
expose:
- 18142
ports:
- "18142:18142"
Then run docker-compose up -d to start your docker service.
Check the running state with docker-compose ps:
Name Command State Ports
------------------------------------------------------------------
tbn_minotari_node_1 start.sh Up 0.0.0.0:18142->18142/tcp
To connect to the console, use docker ps to get the container ID to which to attach the `minotari_node`` in Docker:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
73427509a4bb quay.io/tarilabs/minotari_node:v0.5.4 "start.sh" 45 minutes ago Up 26 minutes 0.0.0.0:18142->18142/tcp tbn_minotari_node_1
With the container ID 73427509a4bb, connect to the minotari_node console using docker attach 73427509a4bb:
>> help
Available commands are:
help, version, get-chain-metadata, list-peers, reset-offline-peers, ban-peer, unban-peer, list-connections, list-headers,
check-db, calc-timing, discover-peer, get-block, search-utxo, search-kernel, search-stxo, get-mempool-stats,
get-mempool-state, whoami, get-state-info, quit, exit
>> get-chain-metadata
Height of longest chain : 5228
Geometric mean of longest chain : 5892870
Best block : 2c4f92854b2160324b8afebaa476b39be4004d2a7a19c69dd2d4e4da257bfee2
Pruning horizon : 0
Effective pruned height : 0
>> get-state-info
Current state machine state:
Synchronizing blocks: Syncing from the following peers:
510c83279adc7cb7d7dda0aa07
Syncing 5229/5233
Building a Docker image
If you don't want to use the Docker images provided by the community, you can roll your own!
First, clone the Tari repo:
git clone git@github.com:tari-project/tari.git
Then build the image using the dockerfile in buildtools. The base node dockerfile builds the application and then
places the binary inside a small container, keeping the executable binary to a minimum:
docker build -t minotari_node:latest -f ./buildtools/base_node.Dockerfile .
Test your image:
docker run --rm -ti minotari_node minotari_node --help
Run the base node:
docker run -ti -v /path/to/config/dir:/root/.tari minotari_node
Default Docker builds for base x86-64 CPU. Better performing builds can be created by passing build options:
docker build -t minotari_node:performance --build-arg TBN_ARCH=skylake --build-arg TBN_FEATURES=avx2 -f ./buildtools/base_node.Dockerfile .
Mining
The Tari protocol supports hybrid mining; stand-alone or pooled SHA3 mining using the Minotari Miner or merged mining with
Monero using the Minotari Merge Mining Proxy in conjunction with XMRig (RandomX-based mining). Blocks to be won by
standalone and pooled SHA3 mining have been apportioned to approximately 40% and with Monero merged mining to approximately 60%.
This apportionment is deeply baked into the Tari protocol and part of the consensus rules. The 40/60 split is determined
by slightly different block target times for each algorithm, that when combined will give an average block time of
approximately 120 seconds. Each mining algorithm makes use of Linear Weighted Moving Average (LWMA) maths to gracefully adjust
the target difficulties to adhere to the respective target block times. Any block won by either mining algorithm will be
accepted, and when there is a tie, a geometric mean calculation will be used to decide the winner. This system is
completely fair without any additional empirical meddling to try force a certain outcome.
Tari SHA3 mining
In order to perform SHA3 mining with Tari, the following applications are needed:
A Minotari Base Node [to supply blockchain metadata information];
A Minotari Wallet [to collect the Minotari block rewards (coinbase transactions)];
A Minotari Miner [to perform the mining];
In order to perform pooled SHA3 mining with Tari, the following applications are needed:
For a pool operator:
A Minotari Base Node [to supply blockchain metadata information];
A Minotari Wallet [to collect the Minotari block rewards (coinbase transactions)];
Miningcore [pool software supporting various cryptocurrencies, configured for Tari]
For a miner:
A Minotari Wallet [to collect the share rewards (pool payouts)];
A Minotari Miner [to perform the mining];
Runtime prerequisites
The Minotari Base Node, Minotari Wallet and Minotari Miner can all run in the same directory. By performing the
default installation as described in Installing using binaries, all these applications
will be available.
For MiningCore see the Linux and Windows build instructions.
Configuration prerequisites
The configuration prerequisites are the same for all four Tari applications. After performing a
default installation, locate the main configuration file (config.toml), which
will be created in the ~/tari_esmeralda_testnet/config (on Linux) or %USERPROFILE%\.tari-testnet\config (on Windows)
directory.
With the main configuration file, in addition to the settings already present, the following must also be enabled for
the Minotari Base Node and the Minotari Wallet, if they are not enabled already. Under sections base_node.esmeralda and wallet respectively:
[wallet]
grpc_address = "127.0.0.1:18143"
[base_node.esmeralda]
transport = "tor"
allow_test_addresses = false
grpc_enabled = true
grpc_base_node_address = "127.0.0.1:18142"
For MiningCore:
See example configuration here.
For the Minotari Miner there are some additional settings under section miner that can be changed:
For SHA3 Mining:
[miner]
# Number of mining threads
# Default: number of logical CPU cores
#num_mining_threads=8
# GRPC address of base node
# Default: value from `base_node.grpc_base_node_address`
#base_node_grpc_address = "127.0.0.1:18142"
# GRPC address of console wallet
# Default: value from `wallet.grpc_address`
#wallet_grpc_address = "127.0.0.1:18143"
# Start mining only when base node is bootstrapped
# and current block height is on the tip of network
# Default: true
#mine_on_tip_only=true
# Will check tip with node every N seconds and restart mining
# if height already taken and option `mine_on_tip_only` is set
# to true
# Default: 30 seconds
#validate_tip_timeout_sec=30
For pooled SHA3 mining:
[miner]
# Number of mining threads
# Default: number of logical CPU cores
#num_mining_threads=8
# Stratum Mode configuration
# mining_pool_address = "miningcore.tari.com:3052"
# mining_wallet_address = "YOUR_WALLET_PUBLIC_KEY"
# mining_worker_name = "worker1"
Uncomment mining_pool_address and mining_wallet_address. Adjust the values to your intended configuration.
mining_worker_name is an optional configuration field allowing you to name your worker.
Perform SHA3 mining
For SHA3 mining:
Tor and the required Tari applications must be started and preferably in this order:
Tor:
Linux/OSX: Execute start_tor.sh.
Windows: Start Tor Serviecs menu item or start_tor shortcut in the Tari installation folder.
Tari Base Node:
Linux/OSX: As per Runtime links.
Windows: As per Runtime links or Start Base Node menu item or
start_minotari_node shortcut in the Tari installation folder.
Tari Console Wallet:
Linux/OSX: As per Runtime links.
Windows: As per Runtime links or Start Console Wallet menu item or
start_tari_console_wallet shortcut in the Tari installation folder.
Tari Miner:
Linux/OSX: As per Runtime links.
Windows: As per Runtime links or Start Miner menu item
or start_tari_miner shortcut in the Tari installation folder.
Look out for the following types of messages on the Tari Miner console to confirm that it is connected properly
and performing mining:
2021-02-26 11:24:23.604202000 [minotari_miner] INFO Connecting to base node at http://127.0.0.1:18151
2021-02-26 11:24:23.606260800 [minotari_miner] INFO Connecting to wallet at http://127.0.0.1:18161
2021-02-26 11:24:23.721890400 [minotari_miner::miner] INFO Mining thread 0 started
2021-02-26 11:24:23.722287800 [minotari_miner::miner] INFO Mining thread 1 started
2021-02-26 11:24:23.722505500 [minotari_miner::miner] INFO Mining thread 2 started
2021-02-26 11:28:19.687855700 [minotari_miner::miner] INFO Mining thread 2 stopped
2021-02-26 11:28:19.688251200 [minotari_miner] INFO Miner 2 found block header BlockHeader { hash: [...], version: 1,
height: 8493, prev_hash: [...], timestamp: Some(Timestamp { seconds: 1614331698, nanos: 0 }), output_mr: [...],
witness_mr: [...], total_kernel_offset: [...], nonce: 8415580256943728281, pow: Some(ProofOfWork { pow_algo: 2,
pow_data: [] }), kernel_mmr_size: 24983, output_mmr_size: 125474 } with difficulty 7316856839
For pooled SHA3 Mining:
Pool Operators:
Tor and the required Minotari applications must be started in this order:
Tor:
Linux/OSX: Execute start_tor.sh.
Windows: Start Tor Serviecs menu item or start_tor shortcut in the Tari installation folder.
Minotari Base Node:
Linux/OSX: As per Runtime links.
Windows: As per Runtime links or Start Base Node menu item or
start_minotari_node shortcut in the Tari installation folder.
Minotari Wallet:
Linux/OSX: As per Runtime links.
Windows: As per Runtime links or Start Console Wallet menu item or
start_tari_console_wallet shortcut in the Tari installation folder.
MiningCore
Miners:
Minotari Miner:
Linux/OSX: As per Runtime links.
Windows: As per Runtime links or Start Miner menu item
or start_tari_miner shortcut in the Tari installation folder.
Tari merge mining
In order to perform merge mining with Tari, the following applications are needed:
A Minotari Base Node [to supply blockchain metadata information];
A Minotari Wallet [to collect the Tari block rewards (coinbase transactions)];
A Minotari Merge Mining Proxy [to enable communication between all applications];
XMRig [to perform the mining];
Monero wallet (specifically a stagenet wallet address during testnet; the one provided can be used, or a custom
one can be set up) [to collect Monero block rewards (coinbase transactions)].
The Minotari Merge Mining Proxy will be the communication gateway between all these applications and will coordinate all
activities. It will also submit finalized Minotari and Monero blocks to the respective networks when RandomX is solved at
the respective difficulties.
Runtime prerequisites
The Minotari Base Node, Minotari Wallet and Minotari Merge Mining Proxy can all run in the same directory, whereas XMRig
will run in its own directory. By performing the default installation as described in
Installing using binaries, all these applications will be available.
XMRig can also be build from sources. If that is your preference, follow these instructions: https://xmrig.com/docs/miner/.
Configuration prerequisites
Minotari applications
The configuration prerequisites are the same for all three Minotari applications. After performing a
default installation, locate the main configuration file (config.toml), which
will be created in the ~/tari_esmeralda_testnet/config (on Linux) or %USERPROFILE%\.tari-testnet\config (on Windows)
directory.
With the main configuration file, in addition to the settings already present, the following must also be enabled if
they are not enabled already:
For the Minotari Base Node and the Minotari Wallet, under sections base_node.esmeralda and wallet respectively
[wallet]
grpc_address = "127.0.0.1:18143"
[base_node.esmeralda]
transpo*_r_*t = "tor"
allow_test_addresses = false
base_node_grpc_address = "127.0.0.1:18142"
Depending on if you are using solo mining or self-select mining, you will use one of the following:
Solo mining
For the Minotari Merge Mining Proxy, under section merge_mining_proxy
[merge_mining_proxy]
monerod_url = [ # stagenet
"http://stagenet.xmr-tw.org:38081",
"http://stagenet.community.xmr.to:38081",
"http://monero-stagenet.exan.tech:38081",
"http://xmr-lux.boldsuck.org:38081",
"http://singapore.node.xmr.pm:38081",
]
proxy_host_address = "127.0.0.1:18081"
proxy_submit_to_origin = true
monerod_use_auth = false
monerod_username = ""
monerod_password = ""
Self-Select mining
For the Minotari Merge Mining Proxy, under section merge_mining_proxy
[merge_mining_proxy]
monerod_url = [ # stagenet
"http://stagenet.xmr-tw.org:38081",
"http://stagenet.community.xmr.to:38081",
"http://monero-stagenet.exan.tech:38081",
"http://xmr-lux.boldsuck.org:38081",
"http://singapore.node.xmr.pm:38081",
]
proxy_host_address = "127.0.0.1:18081"
proxy_submit_to_origin = false
monerod_use_auth = false
monerod_username = ""
monerod_password = ""
Note: The ports 18081, 18142 and 18143 shown in the example above should not be in use by other processes. If
they are, choose different ports. You will need to update the ports in the steps below as well.
The monerod_url set must contain valid addresses (host:port) for monerod that is running Monero mainnet (e.g.
["http://18.132.124.81:18081"]) or stagenet (e.g. ["http://monero-stagenet.exan.tech:38081"]), which can be a
public node or local instance. To test if the
monerod_url address is working properly, try to paste host:port/get_height in an internet browser, for example:
http://18.132.124.81:18081/get_height
A typical response would be:
{
"hash": "ce32dd0a6e3220d57c368f2cd01e5980a9b4d70f02b27274d67142d5b26cb4d6",
"height": 2277206,
"status": "OK",
"untrusted": false
}
Note: A guide to setting up a local Monero stagenet on Linux can be found
here.
XMRig configuration
The XMRig configuration must be prepared for either solo or pool merged mining with Monero. It is advisable to use a
configuration file for XMRig as this offers more flexibility, otherwise, the configuration parameters can be passed
in via the command line upon runtime.
Notes:
Monero mainnet and stagenet wallet addresses can only be used with the corresponding network. The monerod_url
configuration setting (see Minotari applications) must also correspond to the chosen network.
For the solo mining configuration, Monero doesn't currently support requesting templates to mine on with the address
being a subaddress. It is possible to do with the self-select configuration since the template is requested by the miner
with the wallet address of the pool.
Solo-mining
The XMRig configuration wizard can be used to create a solo mining configuration file
in JSON format:
Start -> + New configuration
Pools -> + Add daemon
With Add new daemon for Solo mining, complete the required information, then + Add daemon:
Host, Port: This must correspond to the proxy_host_address in the Tari configuration file.
Secure connection (TLS): Uncheck.
Coin: Monero.
Wallet address: This must be your own stagenet or mainnet wallet address, or you can use these donation
addresses:
Public stagenet address at https://coin.fyi/news/monero/stagenet-wallet-8jyt89#!
55LTR8KniP4LQGJSPtbYDacR7dz8RBFnsfAKMaMuwUNYX6aQbBcovzDPyrQF9KXF9tVU6Xk3K8no1BywnJX6GvZX8yJsXvt
Mainnet address
Backends -> Select CPU (OpenCL or CUDA also possible depending on your computer hardware).
Misc -> With Donate, type in your preference.
Result -> With Config file, copy or download, than save as config.json.
Using the public stagenet wallet address above, the resulting configuration file should look like this:
{
"autosave": true,
"cpu": true,
"opencl": false,
"cuda": false,
"pools": [
{
"coin": "monero",
"url": "127.0.0.1:18081",
"user": "55LTR8KniP4LQGJSPtbYDacR7dz8RBFnsfAKMaMuwUNYX6aQbBcovzDPyrQF9KXF9tVU6Xk3K8no1BywnJX6GvZX8yJsXvt",
"tls": false,
"daemon": true
}
]
}
Pool mining with Self-Select
For pool mining, the configuration file obtained from the XMRig configuration wizard must
be augmented with Tari specific settings. Using the wizard, create the following:
Start -> + New configuration
Pools -> + Add pool -> Custom pool
With Add new custom pool, complete the required information, then + Add pool:
Host, Port: This must be for a Monero mainnet mining pool that supports the self-select.
Secure connection (TLS): Check/Uncheck (based on the pool requirements).
keepalive: Check.
nicehash: Uncheck.
User: This must be your own mainnet wallet address, or you can use this address to donate to Monero:
Public mainnet address at https://www.getmonero.org/get-started/contributing/
888tNkZrPN6JsEgekjMnABU4TBzc2Dt29EPAvkRxbANsAnjyPbb3iQ1YBRk1UXcdRsiKc9dhwMVgN5S9cQUiyoogDavup3H
Password: A custom field that could be your wallet name or some other pool settings.
Coin: Monero.
Algorithm: rx/0.
Backends -> Select CPU (OpenCL or CUDA also possible depending on your computer hardware).
Misc -> With Donate, type in your preference.
Result -> With Config file, copy or download, than save as config.json.
Add custom entries for "self-select": "127.0.0.1:18081" and "submit-to-origin": true in the "pools" section.
Mining pool cryptonote.social requires you to add a personalized handle to the wallet address so that you can
query your own pool statistics, separated by a full stop, i.e.
demonstration purposes, donatemonero has been associated with the public mainnet wallet address above. If you go to
https://cryptonote.social/xmr and enter donatemonero in the Username: text box you will see some merge mining
activity for that address. The configuration file used for this exercise is shown below:
{
"autosave": true,
"cpu": true,
"opencl": false,
"cuda": false,
"pools": [
{
"coin": "monero",
"algo": "rx/0",
"url": "cryptonote.social:5555",
"user": "888tNkZrPN6JsEgekjMnABU4TBzc2Dt29EPAvkRxbANsAnjyPbb3iQ1YBRk1UXcdRsiKc9dhwMVgN5S9cQUiyoogDavup3H.donatemonero",
"pass": "start_diff=220000;payment_scheme=pprop;donate=0.5",
"tls": false,
"keepalive": true,
"nicehash": false,
"self-select": "127.0.0.1:18081",
"submit-to-origin": true
}
]
}
Perform merge mining
Tor and the required Minotari applications must be started, preferably in this order:
Tor:
Linux/OSX: Execute start_tor.sh.
Windows: Start Tor Serviecs menu item or start_tor shortcut in the Tari installation folder.
Tari Base Node:
Linux/OSX: As per Runtime links.
Windows: As per Runtime links or Start Base Node menu item or
start_minotari_node shortcut in the Tari installation folder.
Tari Console Wallet:
Linux/OSX: As per Runtime links.
Windows: As per Runtime links or Start Console Wallet menu item or
start_minotari_console_wallet shortcut in the Tari installation folder.
Tari Merge Mining Proxy:
Linux/OSX: As per Runtime links.
Windows: As per Runtime links or Start Merge Mining Proxy menu item
or start_minotari_merge_mining_proxy shortcut in the Tari installation folder.
In addition, select one of the merge mining options as outlined in solo or pool mining in the next paragraphs.
Solo merged mining with Monero
This paragraph is applicable to solo mining Monero on mainnet or stagenet and solo mining Tari on testnet.
Solo merged mining with Monero is supported using the daemon option.
Merge Mining Proxy configuration
As mentioned previously, the monerod_url field in the config.toml should be enabled for the corresponding mainnet or stagenet network
Monero wallet address:
# URL to monerod
monerod_url = [ # mainnet
"http://18.132.124.81:18081",
"http://xmr.support:18081",
"http://node1.xmr-tw.org:18081",
"http://xmr.nthrow.nyc:18081",
]
monerod_url = [ # stagenet
"http://stagenet.xmr-tw.org:38081",
"http://stagenet.community.xmr.to:38081",
"http://monero-stagenet.exan.tech:38081",
"http://xmr-lux.boldsuck.org:38081",
"http://singapore.node.xmr.pm:38081",
]
Runtime
Ensure the config.json configuration file discussed in Solo mining is copied to the XMRig build or
install folder, then start XMRig:
Linux/OSX: Execute ./xmrig in the XMRig build or install folder.
Windows: Execute xmrig in the XMRig build or install folder, or Start XMRig menu item or start_xmrig
shortcut in the Tari installation folder.
Note: On modern Windows versions, coin mining software is blocked by default, for example by Windows Defender.
Ensure that these processes are allowed to run when challenged:
PUA:Win32/CoinMiner
PUA:Win64/CoinMiner
App:XMRigMiner
Look out for the following outputs in the XMRig console to confirm that it is connected to the Merge Mining Proxy
and accepting jobs:
* POOL #1 127.0.0.1:18081 coin monero
[2021-01-21 12:10:18.960] net use daemon 127.0.0.1:18081 127.0.0.1
[2021-01-21 12:10:18.960] net new job from 127.0.0.1:18081 diff 286811 algo rx/0 height 756669
[2021-01-21 12:10:56.730] cpu rejected (0/1) diff 286811 "Block not accepted" (656 ms)
[2021-01-21 12:10:57.398] net new job from 127.0.0.1:18081 diff 293330 algo rx/0 height 756670
[2021-01-21 12:12:23.695] miner speed 10s/60s/15m 4089.0 4140.2 n/a H/s max 4390.9 H/s
[2021-01-21 12:12:57.983] cpu accepted (1/1) diff 293330 (594 ms)
The cpu: rejected and cpu: accepted messages originate from stagenet or mainnet monerod, and show the Monero
statistics. At this point, the mined and rejected Minotari coinbases should be visible in the Minotari Wallet.
Pool merged mining with Monero (self select)
This paragraph is applicable to pool mining Monero on mainnet and solo mining Minotari on testnet.
Pool merged mining with Monero is supported using the
Stratum mode self-select option via XMRig. Two mining
pools we have tried out that support this feature are monero-pool, with
its reference pool implementation running here, and
cryptonote.social. With normal self select mode, XMRig requests a Monero block
template from a third party and submits the solution to the mining pool. Minotari added a submit-to-origin option to the
self select mode whereby, if a solution has been found that only matches the pool difficulty, XMRig will submit the
solution to the pool only; but if the achieved difficulty meets both that of the pool and Minotari, it will be submitted to
the Merge Mining Proxy as well as to the mining pool.
Merge Mining Proxy configuration
The monerod_url field in the config.toml should be enabled for the mainnet value:
# URL to monerod
monerod_url = [ # mainnet
"http://18.132.124.81:18081",
"http://xmr.support:18081",
"http://node1.xmr-tw.org:18081",
"http://xmr.nthrow.nyc:18081",
]
Runtime
Ensure the config.json configuration file discussed in Pool mining with self select
is copied to the XMRig build or install folder, then start XMRig as before for solo mining.
Look out for the following outputs in the XMRig console to confirm that it is connected to the pool and the Merge
Mining Proxy and accepting jobs:
* POOL #1 cryptonote.social:5555 coin monero self-select 127.0.0.1:18081 submit-to-origin
[2021-01-18 11:40:48.392] net new job from cryptonote.social:5555 diff 220006 algo rx/0 height 2277084
[2021-01-18 11:41:22.378] origin submitted to origin daemon (1/0) diff 284557 vs. 371742
[2021-01-18 11:41:22.812] cpu accepted (1/0) diff 220006 (433 ms)
[2021-01-18 11:41:39.201] miner speed 10s/60s/15m 1562.2 1630.4 n/a H/s max 1710.0 H/s
[2021-01-18 11:42:06.320] cpu accepted (2/0) diff 220006 (482 ms)
Status essages origin: submitted to origin daemon (1/0) and
origin: not submitted to origin daemon, difficulty too low (1/1) pertains to submissions to the Tari network,
and cpu: accepted (1/0) to the pool.
Mined and rejected Tari coinbases should be visible in the Tari Console Wallet, and pool shares in the pool interface.
If you are using cryptonote.social:5555 as in the example above, go to https://cryptonote.social/xmr and type in
your wallet identity under Username: to see your shares, or try taritest if you used this configuration example.
Project documentation
RFC documents are hosted on Github Pages. The source markdown is in the RFC directory.
Source code documentation is hosted on docs.rs
RFC repo
RFC documents
The RFCs are long-form technical documents proposing changes and features to the Tari network and ecosystem.
They are hosted at https://rfc.tari.com, and the RFC repo is at https://github.com/tari-project/rfcs.
Source code documentation
Run
cargo doc
to generate the documentation. The generated html sits in target/doc/. Alternatively, to open a specific package's documentation directly in your browser, run the following:
cargo doc -p
Conversation channels
We're generally on Discord.
About
The Tari protocol
tari.com
Topics
rust
hacktoberfest
tari
Resources
Readme
License
BSD-3-Clause license
Security policy
Security policy
Activity
Custom properties
Stars
315
stars
Watchers
27
watching
Forks
201
forks
Report repository
Releases
58
v1.0.0-rc.5
Latest
Feb 6, 2024
+ 57 releases
Packages
7
+ 4 packages
Used by 198
+ 190
Contributors
44
+ 30 contributors
Languages
Rust
96.3%
C
1.5%
Gherkin
1.0%
Shell
0.8%
JavaScript
0.2%
Batchfile
0.1%
Other
0.1%
Footer
© 2024 GitHub, Inc.
Footer navigation
Terms
Privacy
Security
Status
Docs
Contact
Manage cookies
Do not share my personal information
You can’t perform that action at this time.
Taiwan Agricultural Research Institute, Ministry of Agriculture
Taiwan Agricultural Research Institute, Ministry of Agriculture
Skip to main content
Your browser does not support JavaScript function, if the webpage function does not work properly, please
open the browser JavaScript status
:::
Sitemap|
Search|
Links|
中文版
keyword
About Us
History
Directors
Director General
Deputy Director-General
Secretary-General
Organizational Structure
Research activities and future perspectives
Video
Phone numbers
Location
Contact Us
News
Achievements
Improved varieties
Innovative techniques
Publication
Special Publication of TARI
TARI Annual Report
Research Units
Crop Science Division
About us
Division Director
Agronomy Lab
Horticulture Lab
Crop Physiology, Statistics and Postharvest Lab
Guansi Experiment Station
Crop Genetic Resources and Biotechnology Division
About us
Division Director
Genetic Resources Laboratory
Biosafety Laboratory
Tissue Culture Laboratory
Crop Functionality Laboratory
Molecular Genetics Laboratory
Agricultural Chemistry Division
About us
Division Director
Soil Survey and Land Utilization Laboratory
Soil Physics Laboratory
Soil Analysis Service Laboratory
Plant Nutrition Laboratory
Agro-Product Chemistry and Processing Laboratory
Agro-Environmental Protection Laboratory
Applied Microbiology Laboratory
Soil Management Laboratory
Indigenous Agriculture Laboratory
Applied Zoology Division
About us
Division Director
Insect Systematics Laboratory
Integrated Pest Management Laboratory
Small Insect Pest Laboratory
Beneficial Insect Laboratory
Pesticide Research Laboratory
Plant Pathology Division
About us
Division Director
Fungal Disease Laboratory
Viral Disease Laboratory
Bacterial Disease Laboratory
Nematode Disease Laboratory
Microbial Biotechnology Laboratory
Edible and Medicinal Mushroom Laboratory
Agricultural Engineering Division
About us
Division Director
Crop Cultivation Machinery Laboratory
Postharvest Processing Machinery Laboratory
Agrometeorology and Facility Engineering
Agricultural Technology Translation Center
About us
Division Director
Staff
Agricultural Development and Service Center
About us
Division Director
Staff
Floricultural Experiment Branch
About us
Division Director
Staff
Department of Genetics and Breeding
Department of Production Process Development
Department of Industry Application
Chiayi Agricultural Experiment Branch
About us
Division Director
Department of Agronomy
Department of Horticulture
Department of Plant Protection
Fengshan Tropical Horticultural Experiment Branch
About us
Division Director
Department of Tropical Fruit Trees
Department of Vegetable Crops
Department of Plant Protection and Utilization
Search
About Us
History
Directors
Director General
Deputy Director-General
Secretary-General
Organizational Structure
Research activities and future perspectives
Video
Phone numbers
Location
Contact Us
News
Achievements
Improved varieties
Innovative techniques
Publication
Special Publication of TARI
TARI Annual Report
Research Units
Crop Science Division
About us
Division Director
Agronomy Lab
Horticulture Lab
Crop Physiology, Statistics and Postharvest Lab
Guansi Experiment Station
Crop Genetic Resources and Biotechnology Division
About us
Division Director
Genetic Resources Laboratory
Biosafety Laboratory
Tissue Culture Laboratory
Crop Functionality Laboratory
Molecular Genetics Laboratory
Agricultural Chemistry Division
About us
Division Director
Soil Survey and Land Utilization Laboratory
Soil Physics Laboratory
Soil Analysis Service Laboratory
Plant Nutrition Laboratory
Agro-Product Chemistry and Processing Laboratory
Agro-Environmental Protection Laboratory
Applied Microbiology Laboratory
Soil Management Laboratory
Indigenous Agriculture Laboratory
Applied Zoology Division
About us
Division Director
Insect Systematics Laboratory
Integrated Pest Management Laboratory
Small Insect Pest Laboratory
Beneficial Insect Laboratory
Pesticide Research Laboratory
Plant Pathology Division
About us
Division Director
Fungal Disease Laboratory
Viral Disease Laboratory
Bacterial Disease Laboratory
Nematode Disease Laboratory
Microbial Biotechnology Laboratory
Edible and Medicinal Mushroom Laboratory
Agricultural Engineering Division
About us
Division Director
Crop Cultivation Machinery Laboratory
Postharvest Processing Machinery Laboratory
Agrometeorology and Facility Engineering
Agricultural Technology Translation Center
About us
Division Director
Staff
Agricultural Development and Service Center
About us
Division Director
Staff
Floricultural Experiment Branch
About us
Division Director
Staff
Department of Genetics and Breeding
Department of Production Process Development
Department of Industry Application
Chiayi Agricultural Experiment Branch
About us
Division Director
Department of Agronomy
Department of Horticulture
Department of Plant Protection
Fengshan Tropical Horticultural Experiment Branch
About us
Division Director
Department of Tropical Fruit Trees
Department of Vegetable Crops
Department of Plant Protection and Utilization
Links
Academic Organizations
Government Organizations
International Organizations
Information Systems
Laws & Regulation
Bilingual Glossary
Sitemap
Sitemap
Search
Privacy Policy
Security Policy
FAQs
Government Website Open Information Announcement
中文版
Close
Open
:::
News
More
2022-11-29
The symposium of resilient agriculture research
The symposium of resilient agriculture research regarding the adaptation measures and risk management to cope with climate change was held by the Taiwan Agricultural Research Institute (TARI) on November 28, 2022. Team m..
2022-04-21
INTERNATIONAL WORKSHOP
Enhancing International Cooperation on Tropical Fruit Value Chains for Global Market: e-Commerce
Videoconference, TARI-Fengshan, Kaohsiung, Taiwan
May 5, 2022: International Forum
Forum: Challenges and Opportunities..
2022-03-03
MOFA relaxes regulations for foreign business travelers entering Taiwan beginning March 7, 2022, in line with CECC directives:
MOFA relaxes regulations for foreign business travelers entering Taiwan beginning March 7, 2022, in line with CECC directives:
https://en.mofa.gov.tw/News_Content.aspx?n=1328&sms=273&s=97428
Journal of Taiwan Agricultural Research
Research Units
Crop Science Division
Crop Genetic Resources and Biotechnology Division
Agricultural Chemistry Division
Applied Zoology Division
Plant Pathology Division
Agricultural Engineering Division
Agricultural Technology Translation Center
Agricultural Development and Service Center
Floricultural Experiment Branch
Chiayi Agricultural Experiment Branch
Fengshan Tropical Horticultural Experiment Branch
close
open
About Us
History
Directors
Organizational Structure
Research activities and future perspectives
Video
Phone numbers
Location
Contact Us
News
Achievements
Improved varieties
Innovative techniques
Publication
Special Publication of TARI
TARI Annual Report
Research Units
Crop Science Division
Crop Genetic Resources and Biotechnology Division
Agricultural Chemistry Division
Applied Zoology Division
Plant Pathology Division
Agricultural Engineering Division
Agricultural Technology Translation Center
Agricultural Development and Service Center
Floricultural Experiment Branch
Chiayi Agricultural Experiment Branch
Fengshan Tropical Horticultural Experiment Branch
Links
Academic Organizations
Government Organizations
International Organizations
Information Systems
Laws & Regulation
Bilingual Glossary
Sitemap
Sitemap
Search
Privacy Policy
Security Policy
FAQs
Government Website Open Information Announcement
Copyright © 2023 Taiwan Agricultural Research Institute, Ministry of Agriculture All Rights Reserved.
Address:No.189, Zhongzheng Rd., Wufeng Dist., Taichung City 413008, Taiwan (R.O.C.)MAP
Phone Number:(+886)4-2330-2301 E-mail
Extension
Browser:Edge, Safari, Firefox or Chrome; best viewed at a resolution of 1024 x 768 pixels
This website has been visited by 0298110 people. Updated:2024-03-07
Privacy Policy
Security Policy
GWOIA
youtube
RSS
TOP
Tari | FAQ
Tari | FAQ
For Everyone
Intro
What is Tari?
Read the latest updates
Mobile Wallet
Block Explorer
Downloads
Get Involved
For Developers
Get Started
Explore the Protocol
Make Tari Better
Community
RFC Docs
For Creators
Tari for Creators
YouTube
Substack
GitHub
Join the Conversation
...
For Everyone
Intro
What is Tari?
Read the latest updates
Mobile Wallet
Block Explorer
Downloads
Get Involved
For Developers
Get Started
Explore the Protocol
Make Tari Better
Community
RFC Docs
For Creators
Tari for Creators
YouTube
Substack
Discord
GitHub
Join the Conversation
...
Frequently Asked Questions
Below are answers to a few common questions about the Tari protocol. For other questions or additional clarity, please post your questions to the Tari community on Discord.
What is Tari?
Tari is a new open source, digital assets focused blockchain protocol that is being architected as a merge-mined sidechain with Monero. We chose to focus specifically on digital assets – things like tickets, loyalty points, in-game items, and crypto-native assets like CryptoKitties – because we see a huge opportunity to revolutionize the way these assets are owned, managed and transferred.
What is a Digital Asset?
A digital asset is one that consumers can purchase or earn the right to use, but which exists entirely in digital form. Digital assets include event tickets, in-game items, loyalty points, and cryptonative assets.
How will this help the businesses issuing digital assets?
Creators of digital assets will be able to issue them as programmable non-fungible tokens on the Tari blockchain and trust that their rules will be enforced. Rules may be economic in nature (e.g. X% fee every time a given asset is transferred), time-based (e.g. A given asset can only be transferred X days after receipt) or something else entirely. Our goal is to architect Tari in a manner that gives asset issuers meaningful flexibility with the rulesets they create for their digital assets.
When is the Tari token sale?
Tari is not running any kind of public token sale. We’re not currently soliciting or accepting investment, and any opportunities to buy Tari tokens you may see online are scams.
Can I convert my testnet Tari (tXTR) to mainnet?
No. Testnet Tari has no value and will not be transferred or converted to mainnet.
Can I mine Tari?
After the launch of the Tari genesis block, you will be able to opt into mining Tari by mining Monero.
Why merge mine Monero?
We chose Monero because we care deeply about decentralization, are passionate believers in the ideology that drives the Monero community, and think Monero is a great fit for a foundational security layer. We hope other projects will consider leveraging Monero in this manner.
What’s the Tari roadmap?
Open-source projects are typically built by many participants, from the ground up, with only the end-goal in mind. As stewards of the project our role isn’t to force a roadmap on those building the Tari protocol. Our goal is to help guide and direct, where suitable, to help everyone accomplish the end goal. Tari is a destination, and we welcome anyone who believes in the Tari mission to contribute.
What’s the origin of the name “Tari”?
Tari literally means “newly minted money” in Arabic. It also refers to a small gold coin used in the Mediterranean from the 10th through the 14th centuries. Since it was lightweight and convenient to use compared with other coins of the time, it became a popular medium of exchange for everyday commerce. Similarly, we envision the new Tari protocol being commonly used to create and distribute digital assets of all types.
What can I do to help with Tari’s development effort?
The Tari organisation exists to steward the development of the Tari protocol, and is allowed to do so by the nascent Tari community. Tari Labs employs some full time Tari contributors, but the best way for us to build a powerful, robust protocol is to have many contributors working on the Tari project. Thus we invite you to participate by checking open issues on the Tari GitHub, and participate in the ongoing development discussion on Freenode in #tari-dev or #tari-research for research-oriented discussions.
What sets Tari apart from decentralized application protocol projects? Why not use an existing protocol?
There are many blockchain protocols that currently, or plan to support some form of digital assets. However, many of these protocols also support the development of decentralized applications. Due to the many trade-offs involved, we think it’s harder to build a scalable, decentralized applications focused protocol, than a protocol that focuses only on digital assets. We also think that protocols that will ultimately change how our world works will combine great technology and a great go-to-market strategy.
How will this help consumers?
Consumers will be able to use applications built on top of the Tari blockchain to more easily transfer their digital assets while respecting the rules set by issuers. Ultimately, our intended result is a frictionless, lower cost digital asset ecosystem that benefits consumers and digital asset issuers.
What are specific use cases for the Tari protocol?
The Tari protocol is being built for a specific use: to facilitate the issuance, management and transfer of digital assets. Digital assets include: tickets, loyalty points, in-game items, and crypto-native assets like CryptoKitties.
Who are the participants in the Tari Network?
The Tari Labs organization is very honored to have support from the following network participants: Redpoint, Trinity Ventures, Canaan Partners, Blockchain Capital, Pantera, Slow Ventures, Aspect Ventures, Vy Capital, Bee Partners, Sora Ventures, Macro Ventures, Draft Ventures, Base Ventures, and more.
How are you going to make Tari scalable?
We plan on making Tari scalable by utilizing technologies like payment channels and transaction cut-through.
What is merge mining?
Merge mining allows miners in one cryptocurrency to also mine another cryptocurrency with minimal extra overhead or cost to themselves. If you think of mining as drawing lottery balls out of an enormous bucket, you win Monero if you draw a number greater than 1,000, say. If you draw 100, you win nothing. By opting into merge mining Tari, you get an additional free ticket to win Tari if that number is greater than, say 90. If you draw 1,001 you win both Monero and Tari. If you draw 100, you don’t win Monero, but you still get your Tari.
What makes Tari different from Monero?
Monero and Tari share the philosophy of doing one job, and doing it well. Monero is a privacy focused cryptocurrency. Tari is a generalized digital assets focused protocol. The two are complementary and not in competition.
What’s the story behind the Tari logo?
The Tari logo was designed by Office, an iconic San Francisco branding firm. It features two main themes: 1) a “T” for “Tari” centered within a gem, representing the type of digital gems or treasures which will be issued on the Tari blockchain and 2) the shape of a three-dimensional block with a chain wrapped around it (you may miss this one at first glance!), referencing the core technology upon which Tari is built.
Why is my transaction stuck "in progress?"
Sending a transaction from Aurora is simple and intuitive, but under the hood there’s a lot going on. A lot.
To give you an idea of what happens between you clicking “send” and the transaction being confirmed on the
blockchain, have a look at this article explaining how Tari transactions work.
In case that’s tl;dr, here’s what happens every time Alice sends Tari to Bob. Remember that there are no servers
or centralised parties that are able to co-ordinate these communications! Everything is done on the peer-to-peer
network.
Alice taps “send”.
Alice’s wallet selects which coins to spend, creates her change, and determines the network fee.
It then builds her half of the transaction. At this point, her wallet will display “Waiting for recipient to
come online”.
Alice’s wallet then needs to find Bob’s wallet on the peer to peer network. It does this by
Checking to see if she already knows Bob,
If not, asks some of her peers if they know Bob.
Alice’s wallet will then try and establish a connection to Bob directly.
If Bob responds, Alice sends over her half of the transaction.
Bob’s wallet will check that the transaction looks legit, and then fill in his part of the transaction, sign
it, and then try and send it back to Alice. At this point, Bob’s wallet will say “Waiting for sender to complete
transaction”.
If Alice is still online and receives Bob’s reply, she’ll check that the transaction still checks out, signs
it and then attempts to broadcast the transaction to the blockchain network.
Alice’s wallet sends a courtesy message back to Bob to say that she’s done this. Now both wallets update the
transaction status to say “Completing final processing”.
Once the transaction has been mined and is included in the blockchain, it can be marked as complete. Both
wallets need to periodically ask a base node whether the transaction has been mined yet, in order to know
whether that last step has happened.
When this goes smoothly, the transaction negotiation completes in under a second, and then it takes roughly two
minutes to get confirmed. But there are at least a dozen points in that flow where things can be disrupted.
If either Alice or Bob go offline at any point in the above flow, or
if either run iOS and put the app in the background, or
if there’s a problem with the Tor client making a connection to the network, or
the blockchain is congested and the transaction is not mined immediately, or
the blockchain is congested, the transaction is not mined immediately, and then it falls out of the mempool
(the network forgets about it), or
Alice tries a double spend, or
The base node that the wallets are polling goes offline, or has stopped responding for some reason, or
There’s a bug in the wallet or base node code that is affecting the usual harmonious flow.
If any of these things happen, the process pauses until the issue resolves and the flow can continue. This is
where you’ll notice that a transaction appears to be “stuck”.
Luckily, the Tari devs have anticipated a lot of these issues and have put additional safeguards in place to try
and keep the flow moving as smoothly as possible.
For instance, if Bob is suddenly unreachable in steps 4 and 8, then Alice’s wallet will ask some of Bob’s peers
(Charlie and Dave) to keep the message for him, and deliver it when he appears again. Now, if Alice goes offline, at least Bob
will still get the message and the flow can limp forward.
The same thing happens when Bob tries to send messages back to Alice in Steps 5 and 6.
The Aurora wallet also has a small database of base nodes it uses to poll in Step 9, so if one of those nodes stops
responding, Aurora will try another one.
The wallets will also detect if the network has forgotten about the transaction for some reason and resubmit it.
All in all, in a system that has so many moving parts and requires careful choreography for things to go right,
with no central party directing the steps, it’s fairly impressive that transactions get mined at all.
The Tari peer-to-peer network does a great job in building lots of robustness into the system, but from time to
time, things can and do go wrong.
What can I do if my transaction is stuck "in progress"?
If your transaction has been stuck “in progress” for a long time, there are a few options available to you.
As sender
If you are the sender, and the status is “Waiting for recipient to come online”, then you can choose to cancel
the transaction. It’s possible that the recipient is never going to countersign the transaction, so you can free
up the funds locked up in this transaction and then try again at a later stage if you wish. The transaction has
never been broadcast to the network, there’s no chance of this transaction ever completing and so your funds are
perfectly safe.
If the recipient hasn’t replied within 3 days, then Aurora will cancel the transaction automatically.
Once the transaction says “Completing final processing”, then the transaction is being broadcast to the Tari
network. It will usually be mined in about 2 minutes and become finalised, but if the network is congested, or
there is a sudden drop in hash rate, this can take much longer.
The wallet will periodically check to see whether it has been accepted into the mempool and then if it
has been mined. The wallet will rebroadcast the transaction if it has fallen out of the mempool without being
mined. At this stage, the transaction can no longer be cancelled.
As recipient
If you are the receiver, unfortunately there’s nothing you can do except wait. Until the transaction is
finalised, you should never treat the transaction as complete. For example, if you’re a merchant, you should
not consider payment complete until the status reflects this.
If the status does not change for three days, the wallet will discard the transaction and assume that the sender
will never broadcast it to the network. This is not a guarantee however, but since you’re the recipient, there’s
no real risk to you.
In principle, one could continue to scan the blockchain indefinitely looking for the output you created, but the
mobile developers decided not to implement this feature on Aurora to save on battery consumption.
Copyright © 2024. All Rights Reserved.
Privacy Policy.
Disclaimer.
User Agreement.
版权声明:本文由tokenpocket冷钱包官网下载发布,如需转载请注明出处。
本文链接:https://www.siyuewuyu.com/article/127.html