Web3 的开发者,如何评估以及选择调用链上数据的解决方案

Footprint是链上数据分析平台以及数据处理基础设施,使命是让链上数据分析以及使用随手可得。目前,Footprint 从 22 条公链上收集、解析和清理数据,把无语义以及无序的链上数据,转化成让用户能使用无代码拖放界面、SQL等多种形式构建图表以及仪表盘。除了提供链上原始数据,Footprint 根据业务逻辑抽象出具有业务逻辑的流水数据,既能实现快速生产数据,也能方便分析师在此数据的基础上,快速计算自己需要的业务指标。而这也适用于开发者使用。

1. 使用链上数据的方法

我们先来谈谈开发整合数据的方法。目前,有几种不同的方法来处理区块链数据,而选择哪种方法将取决于你的具体需求和目标。

方案

优点

缺点

区块浏览器

易用、实时

主要提供原始数据 缺乏定制 缺乏高级搜索 缺乏互动性

自建索引

方便高级搜索 高度自定义

部署以及维护成本高 费用高

第三方 API 服务

易用 方便高级搜索 可规模化 高可用

依赖性强 相对缺乏自定义 费用一般比较高

  • 易用、实时
  • 主要提供原始数据
  • 缺乏定制
  • 缺乏高级搜索
  • 缺乏互动性

自建索引

  • 方便高级搜索
  • 高度自定义
  • 部署以及维护成本高
  • 费用高

第三方 API 服务

  • 易用
  • 方便高级搜索
  • 可规模化
  • 高可用
  • 依赖性强
  • 相对缺乏自定义
  • 费用一般比较高

1.1. 区块浏览器

区块链浏览器是一个网站或工具,允许你查看存储在区块链上的数据。这是一种快速和简单的方式来访问有关区块链上的特定交易、区块和其他数据的信息。

区块链浏览器可以成为访问和查看存储在区块链上的数据的有用工具,但它们对于软件开发集成存在一些限制。以下是区块链浏览器可能存在限制的几个例子:

  • 主要是围绕原始数据。区块链浏览器通常显示区块链的原始数据。如果要使用,需要在原始数据上实现抽象,特别是对于那些专注于交付而不是某些区块链的技术细节的项目来说,会十分繁琐。
  • 定制选项。区块链浏览器通常被设计为用户友好和易于使用,这意味着他们可能不提供大量的定制选项。你难以根据你的具体需求或偏好来进行二次开发与统计。
  • 高级搜索功能。区块链浏览器通常有基本的搜索功能,但他们可能不支持更高级的搜索功能,如布尔运算符或正则表达式。这可能使搜索区块链上的特定信息变得困难。
  • 互动性。许多区块链浏览器本质上是只读工具。

虽然区块链浏览器可以成为访问和查看区块链原始数据的有用方式,但它们确实有一些限制,在决定基于它们实施你的解决方案基础设施之前,你应该意识到这些限制。

1.2. 自建索引的解决方案

设置自己的索引器来处理区块链数据可以有几个优势,也有一些潜在的劣势。下面是对应的几个例子:

优势:

  • 定制化。当你建立你自己的索引器时,你可以完全控制数据如何被索引和访问。这可以让你根据你的具体需要和喜好来定制索引器。
  • 独立性。通过建立你自己的索引器,你并不依赖第三方服务来维护和更新索引。这可以为你如何处理区块链数据提供更大的控制和灵活性。
  • 提高安全性。当你设置自己的索引器时,你可以实施自己的安全措施来保护数据,防止未经授权的访问。

劣势

  • 复杂性。建立自己的索引器可能是一个复杂而耗时的过程,特别是如果你是区块链技术工作的新手。你需要对底层技术有深刻的理解,并愿意投入所需的时间和精力来启动和运行索引器。
  • 维护。一旦你建立了自己的索引器,你将负责维护和更新它。这可能需要持续的技术专长和资源,如果你没有必要的知识或支持,这可能是一个不利因素。
  • 成本:建立你自己的索引器可能是昂贵的,因为你将需要购买运行索引器所需的硬件和软件,以及支付任何相关费用,如电力和带宽。

总的来说,设置自己的索引器来处理区块链数据可以提供更大的控制和定制,但它也可能是一个复杂而昂贵的过程。

1.3. 数据库即服务

使用第三方索引器来处理区块链数据可以有几个优势,也有一些潜在的劣势。下面是对应的几个例子:

优点:

  • 易用性。第三方索引器通常被设计成易于使用,这意味着你可以迅速开始处理区块链数据,而不需要学习大量的技术细节或运行你的自定义索引解决方案(不管是自主开发还是现成的SDK)。
  • 高级搜索功能。许多第三方索引器提供高级搜索功能,如布尔运算符和正则表达式,这可以使搜索区块链上的特定信息更加容易。这些可以有许多真正的实现,但最常见的是将索引的数据添加到关系数据库中,这意味着完全的 SQL 支持。
  • 可扩展性。第三方索引器通常被设计为处理大量数据,这意味着如果你需要搜索或访问大型区块链的数据,它们可以是一个不错的选择。
  • 可靠性。第三方索引器通常由专业机构运行,它们拥有资源和专业知识,以确保索引始终是最新的和准确的。解决方案并不总是去中心化的,因为它们专注于处理大量的数据,但绝大多数都是开源的,这增加了用户对服务的信心。

缺点:

  • 依赖性。通过使用第三方索引器,你要依靠该服务来维护和更新索引。如果索引器遇到技术问题或脱机,你可能无法访问区块链数据。
  • 有限的定制。第三方索引器通常被设计为易于使用,这意味着它们可能不提供大量的定制选项。这可能使你很难根据你的具体需求或喜好来定制索引器。
  • 成本:一些第三方索引器可能对其服务收取费用,如果你的预算紧张,这可能是一个不利因素。

综上所述,使用第三方索引器来处理区块链数据可以是一个方便有效的选择,但有局限性,有时缺乏定制。

1.4. 小结

Footprint 的目标主要是降低分析数据和处理 web3 数据的门槛。这种方法是在易用性和灵活性之间取得平衡。这就是为什么我们的服务之一是 DaaS(数据库作为服务类型)。在我们仔细研究我们服务的优势之前,我们还将研究索引器的另一种实现方案,即SDK。

在接下来的章节中,我们将探讨只读区块链 API 应该具备的核心功能。我们将从不同的角度来看待这个问题,以及考虑其他的解决方案。区块链 API 的一些最重要的特征包括。

  1. 易用性和灵活性
  2. 可扩展性
  3. 兼容性

易用性和灵活性是区块链 API 的两个重要特征。一个易于使用的区块链 API 将使开发人员更容易开始构建基于区块链的应用程序,使他们能够快速建立原型并测试他们的想法,而不必花费大量时间学习如何使用API。

另一方面,灵活性是指区块链API支持广泛的用例和应用的能力。一个灵活的区块链 API 将允许开发者访问区块链的不同部分,并建立可以与不同类型的智能合约和其他基于区块链的资产互动的应用程序。这对那些希望建立可用于各种不同行业和背景的应用程序的开发者来说可能特别重要。

总的来说,拥有一个既容易使用又灵活的区块链 API 可以使开发者更容易建立创新和有用的应用程序,可以利用区块链技术的独特特点和能力。

1.5. Footprint Analytics

我们的数据组织结构保障了 API 的易用性和灵活性,事实上,它影响到与 Footprint 生态系统互动的所有方面。Footprint 有一个建立在这个数据模型之上的 API,允许用户建立成熟的数据流程并进行数据分析,以及机器学习应用。我们称它为数据 AP I。我们同时支持两种类型的 API 和其中的两种子类型,以涵盖大多数情况。Rest API 和 SQL API。

REST API 允许我们快速集成一个应用程序,因为每个端点都是一个预先建立的、固定编码的、我们自己已经确定为最受欢迎的脚本。所有的端点都带有易于使用的过滤、排序和分页的工具。

SQL API 的接口适应性更强。在网络应用程序和 API 中使用相同的 SQL 查询的一个好处是,它可以简化开发和维护。通过在两个界面中使用相同的查询,开发人员可以避免为网络应用程序和 API 编写和维护不同的查询集。这可以节省时间和精力,并减少两个界面之间发生错误或不一致的风险。

​​

另一个好处是,它可以提高网络应用程序和 API 所访问和操作的数据的一致性。通过使用相同的查询,两个界面将以相同的方式访问和操作相同的数据,确保数据保持一致和最新。

1.6. 其他解决方案对比

许多替代性分析解决方案允许用户根据不同层次的要求来分析不同的网络。然而,在大多数情况下,替代性解决方案往往走极端,要么实现一个非常灵活的产品,需要查询语言甚至编程语言的知识;或者提供一个非常简单的界面,固定的查询接口,但是相应地,灵活性低。

像 Moralis 和 Quicknode 这样的解决方案只有一个 REST API 接口。尽管有相当多的端点,但在返回数据的灵活性方面,它仍然限制了开发者。

Dune 最近推出了自己的 API。这个异步解决方案意味着在平台上初步存在一个特定 id(dune.com/query/{{query id}})下的查询,通过它可以执行 SQL 形式的查询。这种解决方案的关键限制是需要预先修改平台上的 SQL,以便随后执行更新的查询。

Chainbase 发布 SQL API 的方式与 Footprint 相同,但与 Footprint 不同的是,Chainbase 没有如此复杂的 ETL 以及语义化的数据,所以基本上 SQL 查询只能针对原始事务执行。

2. 可拓展性

区块链 API 应该能够处理大量的数据和交易,允许开发者建立可以被许多用户同时使用的应用程序。

2.1. Footprint Analytics

2.1.1. 现代化的开源数据架构

自2021年8月启动以来,Footprint Analytics 团队已经进行了多次架构升级,这得益于其强大的技术探索和迭代能力。在不到一年半的时间里,该团队已经能够成功实施这些变化。这证明了该团队在技术和数据科学领域的技能和专业知识。

通过实验,Footprint反复进行了三次全局性的架构更新,最终达成了一个满足平台各种用例要求的架构。关于实施的演变的更多信息可以在下一篇文章中找到。

https://mirror.xyz/0xf4De160464Fb0fC00F4A062D1913715b7e429Aea/oXalKQPjZzxsuMtDYeMAQTUWqU3P5OEncX-TFTG-yBE

2.1.2. 同步和异步执行

在 Footprint 中,有两种模式可以执行对 SQL API 的查询 - 同步和异步。对同步端点的 API 调用意味着一旦收到应用程序的 HTTP 请求,SQL 查询就会被 Footprint 服务器执行,从而保持连接。这在使用轻量级请求时是有意义的,因为在这种情况下,应用程序不需要长时间等待执行。详细情况可以在以下页面中找到:

https://docs.footprint.network/reference/post_native

对于大量的请求,建议使用异步请求。与同步请求不同,客户端应用程序在执行过程中不必与服务器保持连接,而是可以简单地立即获得请求 ID,根据该 ID,在一段时间后,分别获得执行结果。作为异步 API 的一部分,应该涵盖两个步骤来获取数据--下面的端点将被用来发送SQL 执行的 "命令"。

https://docs.footprint.network/reference/post_native-async

第二步是按访问前一个端点时获得的标识符发送请求以接收结果。这第二步的端点在下页有描述:

https://docs.footprint.network/reference/get_native-execution-id-results

2.2. 其他解决方案对比

DuneV2 改变了整个数据库架构。Dune 现在正从 PostgreSQL 数据库过渡到托管在[[Databricks]] 的 [[Apache Spark]] 实例。当前,只有异步的 API。

3. 兼容性

区块链 API 应该与各种编程语言和开发环境兼容,这样开发者就可以使用他们最熟悉的工具和框架。

REST 当然更容易集成,因为每种编程语言都有许多库,方便提供与使这种类型的 API 的使用起来更加便捷。然而,归根结底,SQL API 和 REST 都是通过 HTTP 工作的,所以默认情况下,当涉及到发送请求时,开发经验几乎是相同的。

4. 总结

正如我们所分析的,在大多数情况下,一个应用程序使用现成的 DaaS 解决方案就足够了,原因是它们可以返回经过抽象的数据(而不仅仅是原始数据),并节省大量的时间和金钱。因为它们最终允许团队无需花费心思在基础设施搭建与维护上,而更加专注在为用户提供产品的价值。通过对比 DaaS 市场上的各种解决方案,Footprint 似乎是最理想的整合方案,因为它有最灵活的模型来生成请求,同时既容易使用。建立在现代的开源数据技术栈基础上,同时有效确保了数据获取的可用性,以及支持快速执行最复杂的请求。

本文转载于网络 如有侵权请联系删除

相关文章

  • OPC服务器比较

    大家好,又见面了,我是你们的朋友全栈君。目前支持OPC服务器的组态软件有很多种,其中四种软件即:Intellution公司的iFIX(3.5)、GE公司的Cimplicity(6.0)、Wonderware公司的InTouch(9.5)以及Siemens公司的WinCC(6.0)应用最广、功能最强。Intellution公司和Wonderware公司是专门从事监控软件工作的,在市场占领绝大部分份额;Cimplicity和WinCC是GE和Siemens公司自动化产品的配套产品。下面就把这四种主要软件作比较。从中选取一款作为此系统的OPC服务器。 1.iFlX 支持双向OPC支持所有类型的ActiveX、OLE,对不健全的控件所引发的错误进行保护,对控件的属性操作完全控制。有全面解决扩展点的报警、报警记录、历史记录的方法,有查找替换功能,可以替换整个图画以及画面中的对象的属性、组态点信息,对于同类型物体,避免重复组态。内嵌VBA,具有自己的内部函数,又有广泛的VB函数,功能扩展更为有利。编辑与运行是切换进行的,这有利于对现场生产安全的保障;有独立的报警监视程序,支持在线修改,具有画面分层

  • DDR4介绍01

    DDR4(第四代双倍数据率同步动态随机存储器SDRAM)关于内存方面知识,大部分人、包括我自己也不是很懂,希望此篇文章能起到点作用,做硬件的就得把相关专业知识学牢了,尤其是专业术语。下面是DDR4知识做一次分享,之所以选择介绍DDR4,是因为现在DDR5的应用还较少,而DDR4的使用普遍,当然后面还会考虑介绍DDR3,下文中就有一部分是DDR4跟DDR3的对比,我们先把DDR4的硬件相关知识给吃透了。有错误或者更深了解的可以留言指正。首先我们来了解下DDR4的新特性:一:性能大幅提升:从DDR3的1600Mbps提升到DDR4的3200Mbps。理论速率可达到2倍。二:低能耗,高能效:采用先进工艺技术,可以在提高性能、降低成本同时减少能耗。1.2VPOD:采用低电压供电和伪开漏接口,可以降低功耗。SDRAM3.3VDDR2.5VDDR21.8VDDR31.5VDDR41.2VDDR51.1VDDR3接口标准,短截线串联端接逻辑(StubSeriesTerminationLogic,SSTL)和DDR4接口标准,“伪开漏”(PseudoOpenDrain,POD)进行了详细研究和异同比较

  • 疫情后的第三年:时代更迭下的技术管理与团队协作

    http://mpvideo.qpic.cn/0bc3q4abeaaazyapkf2xy5rfbb6dckdqaeqa.f10002.mp4?dis_k=d68be65a6f507e1c8d1068f380b24e0e&dis_t=1652834093&vid=wxv_2354442997200945154&format_id=10002&support_redirect=0&mmversion=false疫情后的第三年,也是数字化转型按下加速键的第三年。这三年里,唯一没有停下脚步的是技术的更新换代,也引发了国内外对工作模式的重新审视。Workfromhome的远程办公模式,已经开始在国外流行,在国内也受困于疫情影响开始有了多轮实践。远程办公模式到底是使团队管理变得更简单还是更复杂?以腾讯会议为代表的远程办公软件又将为企业的高效沟通带来了哪些助力?腾讯云TVP集结20位资深行业专家,发起「再定义领导力」TVP技术管理闭门会,以大咖分享看技术管理中的普适场景,用主题辩论寻技术管理中的经典思辨。3月27日,TVP大咖们以《时代下的更迭与初心》为主题,

  • kyverno VS gateKeeper

    kyvernoVSgateKeeper概述这两组开源工具都是是基于kubernetes的webhook机制,支持validatingwebhook和mutatingwebhook。整体思路上是一样的,都是针对资源的字段,如标签、镜像等来设置规则,在对kubernetes资源的控制范围和粒度上,二者可以看作是一样的。kyvernokyverno的架构如下,它是基于kubernetes资源的一种策略执行器,主要基于kubernetes资源的标签和spec字段制定规则,规则支持简单的条件判断,逻辑与、或、非。支持如下功能:支持集群级别和命名空间级别的策略支持审计日志功能有一个官方的UI支持kubernetes原生资源和CRD支持如下规则类型: validate:规则校验,最常用的类型 mutate:支持修改现有资源 generate:支持生成新的资源 verifyImages:校验镜像签名例子如下策略表示拒绝没有cluster-adminclusterRoles的用户删除带app.kubernetes.io/managed-by:kyverno标签的对象apiVersion:kyverno.

  • 微服务前端数据加载的最佳实践

    作者:Starkwang https://zhuanlan.zhihu.com/p/351044054目前在不少团队里已经逐步实践落地了微服务架构,比如前端圈很流行的BFF(BackendForFrontend)其实就是微服务架构的一种变种,即让前端团队维护一套“胶水层/接入层/API层”的服务,调用后台团队提供的若干个微服务,将微服务的结果进行逻辑组装,从而包装出对外的API。 在这种架构下,服务在大体上可以分为两种角色:前端服务(Frontend),包装底层的微服务,对外直接暴露可调用的API。例如在BFF架构里,很可能就是一个Node.js写成的HTTPServer。后台微服务(Microservices),通常由后端团队提供的单体服务,承载不同模块的功能,提供一系列的内部调用接口。这篇文章主要分享这种架构下,前端服务进行数据加载的几种最佳实践。最简单的情形我们先考虑一种最简单的情形,也就是每当有外部请求进来,那么前端服务都会向若干个后台微服务请求数据,然后进行逻辑处理,返回响应:这种朴素的模型明显存在一个问题:每个外部请求都会触发多次内部服务调用,这样的做法非常浪费资源,因为对

  • 「云开发CTO交流日·上海站」报名开启!

    云计算拉起第四次工业革命的号角,技术驱动企业发展已是不争的事实。作为技术管理者,如何在极速迭代的技术潮流中保持敏锐嗅觉和开阔的技术视野?如何充分发挥人与先进技术之间的协同效能,打造一支优秀的技术团队?如何用新技术的力量推动企业发展?本周五,一起来「云开发CTO交流日」聊聊吧!不仅能线下参观腾讯公司,还能和众多技术专家面对面交流,共同探讨技术驱动企业进步之道。活动时间10月16日(周五)10:00-12:30 活动地点上海徐汇区腾云大厦参会嘉宾王倩 英文名Sherrie,腾讯云云开发产品负责人。曾任职百度技术经理,历经多个产品总0到1到亿级流量的历程,早期负责过智能小程序基础库和开发工具等产品,关注业界前沿技术和工程化实践,目前主要关注Serverless、云原生、云开发等跨端跨平台的云端一体化解决方案。周俊鹏 腾讯高级前端开发工程师,著有《前端工程化:体系设计与实践》,负责云开发CloudBase团队前端工程化体系建设工作,在前端工程化、Web应用层架构、WebGL引擎等工业级应用实践方面有丰富的研发经验。完整嘉宾名单见下方海报 活动流程与报名方式点击文末阅读原文前往报名入口,更多活动

  • 如何使用性能分析工具定位SQL执行慢的原因?

    我们都知道查询优化器,知道在查询优化器中会经历逻辑查询优化和物理查询优化。需要注意的是,查询优化器只能在已经确定的情况下(SQL语句、索引设计、缓冲池大小、查询优化器参数等已知的情况)决定最优的查询执行计划但实际上SQL执行起来可能还是很慢,那么到底从哪里定位SQL查询慢的问题呢?是索引设计的问题?服务器参数配置的问题?还是需要增加缓存的问题呢?性能分析来入手分析,定位导致SQL执行慢的原因。前面已经更新了总结核心的主要三点如何使用慢查询日志查找执行慢的SQL语句?如何使用EXPLAIN查看SQL执行计划?如何使用SHOWPROFILING分析SQL执行步骤中的每一步的执行时间?那讲了这这么多数据库服务器的优化分析的步骤是怎样的?中间有哪些需要注意的地方?本篇主要是针对这一个话题的总结和概括。数据库服务器的优化步骤当我们遇到数据库调优问题的时候,该如何思考呢?我把思考的流程整理成了下面这张图。整个流程划分成了观察(Showstatus)和行动(Action)两个部分。字母S的部分代表观察(会使用相应的分析工具),字母A代表的部分是行动(对应分析可以采取的行动)通过观察了解数据库整体的运

  • SourceInsight4.0的使用

    一、项目管理1、新建一个项目快捷键Alt+Shift+N可以打开新建项目对话框,然后根据提示填好项目存储位置,源文件位置等,然后会出现添加删除项目文件对话框,选中自己想要编辑和浏览的文件添加即可,这样就建好了一个项目。2、添加和删除项目文件(1)、在添加删除文件前,可以先设置文件过滤器,菜单栏-选项-文档选项,就可以看到文件过滤器了,怎么设置应该是一目了然的。(2)、菜单栏-项目-添加或删除文件,即可打开添加和删除项目文件对话框。3、关闭项目、打开项目、删除项目关闭项目:Alt+Shift+W打开项目:Alt+Shift+P,在项目列表里选中项目进行打开删除项目:菜单栏-项目-删除项目4、同步文件快捷键Alt+Shift+S可以同步文件,同步文件后就可以自动找到源代码之间的依赖关系了(如:可以自动找到调用某个函数或变量的位置)。 5、项目报告菜单栏-项目-项目报告,获取当前项目的文件个数,代码行数等。6、重建项目菜单栏-项目-重建项目,重新同步代码依赖关系。二、SourceInsight的7种窗口的使用。1、文档窗口(1)、修改窗口颜色属性:菜单栏-选项-参数-颜色标签,可以修改背景颜

  • 进阶渲染系列(一)——平坦和线框着色(导数和几何体)

    目录1平面着色1.1导数指令1.2几何着色1.3逐三角形修改顶点法线2渲染线框2.1重心坐标2.2定义额外的插值器2.3分割MyLighting2.4重写反照率2.5创建线框2.6修复线宽度2.7配置线本文重点: 1、使用屏幕空间导数查找三角形法线 2、通过几何着色器找出三角形法线 3、使用生成的重心坐标创建线框 4、是线框固定宽度并且可配置本教程介绍如何添加对平面着色的支持以及如何显示网格的线框。它使用了高级渲染技术,并假定您熟悉“渲染”系列中介绍的材质。本教程使用Unity2017.1.0制作。(展示三角形)1平面着色网格由三角形组成,根据定义,它们是平坦的。我们使用表面法线向量添加曲率幻觉。这样就可以创建看似平滑表面的网格。但是,有时你可能想显示实际上的平面三角形,以用于样式或更好地查看网格的拓扑。为了使三角形看起来像它们实际一样平坦,我们必须使用实际三角形的表面法线。它将使网格具有多面外观,称为平面着色。这可以通过让三角形的三个顶点的法线向量等于三角形的法线向量来完成。这会导致在三角形之间不能共享顶点,因为那样它们也将共享法线。因此,我们最终得到了更多的网格数据。如果我们可

  • Hadoop-HA高可用搭建

    这里就直接搭建了,原理请参照上一篇。11、三台虚拟机(最少)。克隆三台,请见:克隆虚拟机 2、hosts文件要配置好,三台都可以相互通过主机名ping通,三台虚拟机都要配置!如下:[songjian@songjian-02~]$cat/etc/hosts 127.0.0.1localhostlocalhost.localdomainlocalhost4localhost4.localdomain4 ::1localhostlocalhost.localdomainlocalhost6localhost6.localdomain6 192.168.6.129songjian-01.com 192.168.6.130songjian-02.com 192.168.6.131songjian-03.com 复制3、关闭防火墙![songjian@songjian-02~]$serveriptablesstop [songjian@songjian-02~]$chkconfigiptablesoff 复制4、免密钥登录,详情请看前面SSH免密钥:配置SSH免密登入5、同步时间,不然map

  • docker学习系列19 容器化Angular项目

    开发阶段项目根目录添加Dockerfile文件#baseimage FROMcircleci/node:10.14-browsers USERroot #setworkingdirectory RUNmkdir-p/usr/src/app WORKDIR/usr/src/app #如果觉得npminstall慢可以使用淘宝源 RUNnpmconfigsetregistryhttps://registry.npm.taobao.org #installandcacheappdependencies COPYpackage*.json/usr/src/app/ RUNnpminstall RUNnpminstall-g@angular/cli #add`/usr/src/app/node_modules/.bin`to$PATH ENVPATH/usr/src/app/node_modules/.bin:$PATH #addapp COPY./usr/src/app #startapp根据实际情况修改配置 #CMDngserve--host0.0.0.0 CMDngserve--p

  • 创梦天地关嵩:借力腾讯云,打造文娱新生态——云+未来峰会回顾

    今年腾讯云+未来峰会主题的关键词是“焕·启”,这是包含无限希望的两个字,让人倍感振奋。“焕·启”是什么意思?在我的理解中,“焕·启”本身就是激活,激活什么?今年年初人民日报发表了一篇评论,标题就叫《激活科技创新的时代伟力》,用它概括今天的主题再适合不过,云计算早已成为激活整个行业、时代的伟力。创梦天地是最早一批使用云服务的游戏厂商,今年2月我们与腾讯云签署了整体的战略合作协议,双方决心在多个领域展开全面的合作。为什么我们会坚定不移选择腾讯云作为核心的云的服务合作伙伴?最重要的原因在于,腾讯云毫无疑问是在整个行业里面是最懂游戏用户的云服务提供厂商。从今年年初开始,在短短几个月的时间内,在双方共同的努力下,在腾讯云的支持下,创梦天地的核心业务上云,整体上已基本全面完成,在降本增效和管理提升方面均取得了比较明显的效果。接下来举几个简单的指标:第一是高峰期的快速扩容能力。以前在游戏比较高峰的节假日,特别是春节,都需要我们去扩容,大概要做两三个星期的工作。现在基本一天就可以完成扩展数百台甚至上千台的机器,不仅速度变快,成本也会大大降低。第二是人员效能上的提升,在核心业务上云之后,我们整体的运维团

  • 高效 DevOps 的7个习惯

    很多人在DevOps文化和目标导向上过度纠结。请使用这个指南。如果你问IT行业的高管,DevOps对你的工作挑战最大的是哪方面?最近和DevOps手册的作者GeneKim一起访谈了数百位高管后,我听到最响亮清晰的回答是:文化挑战。融合的概念、共享责任、无问责检查、还有(交付)速度与稳定性,经常挑战了这些IT领导者们长期被灌输的原则。当你意识到更快交付软件的能力将高度影响你未来的生意,(通过新特性、新产品、新的市场进入路径)但你同时挣扎在无法找到一种语境或者框架来与团队和同事们沟通——如何实现DevOps?如何达成目标呢?每次都是老生常谈,我们要求IT界的高管们学习精益制造的语言或者W.EdwardDeming教导的原则。在实体工厂和21世纪的比特工厂(软件业)之间,似乎存在一条平行线。虽然工业的指导原则是有价值的,但要想在组织的产生变化和实行起来,他们(IT)还需要另一条学习曲线。所以,我认为将一种流行的商业框架——《高效能人士的7个习惯》应用到想要转型DevOps文化的组织里,会是一种有效的模型。让我们看看它是否能解决你的沟通困境。1、积极主动让我们先拥抱一个IT行业不变的事实:唯一

  • 字节二面:你怎么理解信道是协程的无锁通信方式?

    信道是一个goroutine之间很关键的通信媒介。 理解golang的信道很重要,这里记录平时易忘记的、易混淆的点。 1.基本使用 刚声明的信道,零值为nil,无法直接使用,需配合make函数进行初始化 ic:=make(chanint) ic<-22//向无缓冲信道写入数据 v:=<-ic//从无缓冲信道读取数据 复制 无缓冲信道:一手交钱,一手交货,sender、receiver必须同时做好动作,才能完成发送->接收;否则,先准备好的一方将会阻塞等待。 有缓冲信道make(chanint,10):滑轨流水线,因为存在缓冲空间,故并不强制sender、receiver必须同时准备好;当通道空/满时,接收方/发送方依旧会阻塞。 信道存在三种状态:nil,active,closed 针对这三种状态,sender、receiver有一些行为,我也不知道如何强行记忆这些行为☹️: 动作 nil active closed close panic 成功 panic ch<- 死锁 阻塞或成功 panic <-ch 死锁 阻塞或成功 零值

  • Flutter中集成Font Awesome

    1、添加引用 在pubspec.yaml文件中,加入fontawesome的引用   1dependencies: 2flutter: 3sdk:flutter 4 5#ThefollowingaddstheCupertinoIconsfonttoyourapplication. 6#UsewiththeCupertinoIconsclassforiOSstyleicons. 7cupertino_icons:^0.1.0 8 9#fontawesomeicon这行是新加的 10font_awesome_flutter:8.2.0复制 点击该文件上方的PackagesGet链接。 2、使用 import'package:font_awesome_flutter/font_awesome_flutter.dart';复制 Icon(FontAwesomeIcons.solidCircle)复制  

  • 『nodejs』fs 模块

    fs模块 fs模块的作用是对文件的处理 同步 读 data=fs.readFileSync("./tmp/index.html","utf-8") 复制 写 data=fs.writeFileSync("./tmp/index.html","utf-8") 复制 异步 读 data=fs.readFile("./tmp/index.html","utf-8",()=>{}) 复制 写 data=fs.writeFile("./tmp/index.html","utf-8",()=>{}) 复制

  • c++ &gt;&gt;

    _bit=newchar[(_bit_arr_length>>3)+1]; if(_bit==NULL){std::cout<<"mallocfailed"<<std::endl; _success=false;return;} memset(_bit,0,(_bit_arr_length>>3)+1);  

  • 淘宝IP地址库采集器c#

    个人原创、欢迎转载、转载请注明出处、http://www.cnblogs.com/zetee/articles/3482085.html   采集器概貌,如下:      最近做一个项目,功能类似于CNZZ站长统计功能,要求显示Ip所在的省份市区/提供商等信息。网上的Ip纯真数据库,下载下来一看,发现没提供商内容,省市区都很少,居然有XXX网吧,哥瞬间倒了。没标准化、并且杂乱、还不连续的IP段、总体说来没达到要求。   在百度上找啊找,找到淘宝Ip地址库,官方介绍的相当诱人,准确率高,数据质量有保障,提供国家、省、市、县、运营商全方位信息,信息维度广,格式规范,但是限制每秒10次的访问(这个比较无语)。   淘宝IP地址库,提供API   http://ip.taobao.com/ 接口说明   1.请求接口(GET):        http://ip.taobao.com/service/getIpInfo.php?ip=[ip地址字串]    2.响应信息:        (json格式的)国家、省(自治区或直辖市)、市

  • Logging in Java

    Commonlogging: Log4j1仅仅作为一个实际的日志框架,commons-logging作为门面,统一各种日志框架的混乱格局 基本的commonslogging Dependency: <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> 复制 基本输出规则:console输出。 基本的使用方法: packagecom.test; importorg.apache.commons.logging.Log; importorg.apache.commons.logging.LogFactory; /** *Createdbyygshenon7/23/16. */ publicclassmainclass{ //Loggerfactory会查询logging的实现来定义

  • ubuntu 16.04下搭建web服务器(MySQL+PHP+Apache) 教程

      1.开始说明 下面很多可能参照网上其中以为前辈的,但有所改进吧。这些设置可能会有所不同,你需要根据不同情况进行修改。 安装apache2 2.切换管理员身份 在ubuntu中需要用root身份进行操作,所以用下面的命令确保以root身份登录: sudosu 3.开始安装mysql5 apt-getinstallmysql-servermysql-client 你将被要求提供一个mysql的root用户的密码,我们需要在红色区域设置密码。 newpasswordforthemysqlrootuser:repeatpasswordforthemysqlrootuser: 4.安装apache2 apache2的是作为一个ubuntu的软件包,因此我们可以直接用下面命令安装它: apt-getinstallapache2 现在,您的浏览器到http://localhost,你应该看到apache2的测试页: 如果顺利的话会出现: Itworke! 然后下面后有点。 apache的默认文档根目录是在ubuntu上的/var/www目录,配置文件是/etc/apache2/ap

  • UVA11019 Matrix Matcher

    思路 AC自动机匹配二维模式串的题目 因为如果矩形匹配,则每一行都必须匹配,考虑对于一个点,设count[i][j]记录以它为左上角的与模式矩形大小相同的矩形中有多少行和模式矩形匹配 然后把模式矩形的每一行插入AC自动机中,把文本矩形的每一行在上面跑,如果文本矩形第i行和模式矩形第c行匹配,匹配位置是j,则更新counts[i-c+1][j+1-y+1] 最后每个count[i][j]等于x的(i,j)就是一个符合条件的点 小心重复的模式串。 代码 #include<cstdio> #include<algorithm> #include<cstring> #include<queue> #include<vector> usingnamespacestd; intTrie[10100][26],fail[10100],counts[1010][1010],root,Nodecnt,x,y,n,m; chars[1010][1010],t[110][110]; vector<int>isend[10100]; vo

相关推荐

推荐阅读