首页
学习
活动
专区
圈层
工具
发布

Bytom Dapp 开发笔记(一):架构设计

简介 研究比原链已经一年了,用比原链做了几个dapp,而且最近还做了一个基于他们插件钱包的dapp,总结了一些遇到的坑,还有一些技术细节,接下来我会分成三章,从dapp设计架构上,到深入到源码分析去帮各位介绍一下比原链的...Dapp架构设计 这个是所有工作的基础,从看完比原链源码使用过比原的钱包后,我们就在思考比原链的dapp如何做,应该说是区块链应用应该如何做,我们之前尝试过用以太坊、比特币、超级账本去做dapp。...一、搭建区块链node 其实就是自己搭建个节点,然后应用直接调用节点提供的接口,完成了区块链的业务内容,比原链的源码整合了钱包功能,搭建也比较方便,几句代码就可以搭建完了,但是这样的业务视乎不大合理,因为这种后端整合比原源码钱包...2)UTXO问题,比原链是基于utxo未花费输出交易模型,当自己的UTXO参与的交易没有确定是无法使用的,但是dapp这里绑定的用户,不能保证他有足够多的UTXO,除非自己转账的时候让他拆分,否则会类似单线程的操作...3)用户无法获取自己的私钥,在比原链PC钱包,是一套私钥,派生多个账号这样,就是说一个钱包就一套私钥,这个不能给用户。这样又违背了区块链的去中心化的问题。

81700

使用Spring Boot,Spring Cloud,Docker和一些Netflix的开源工具建立微服务架构。

该代码在Github上可用,并且可以在Docker Hub上获得图像。只需一个命令即可启动整个系统。 作为这个系统的基础,我选择了一个旧项目,其后端曾经是一个整体。...基建服务 分布式系统中有许多常见模式,可以帮助我们使所描述的核心服务工作。Spring cloud 提供了强大的工具,可以增强Spring Boot应用程序的行为以实现这些模式。...在这个项目中,我使用  native profile,它只是从本地类路径加载配置文件。你可以在Config服务资源中查看 share 目录  。...但显然这个选项存在挑战和局限,例如必须知道所有端点地址,分别对每个信息和平执行http请求,在客户端合并结果。另一个问题是非网络友好协议,可能在后端使用。 通常,更好的方法是使用API​​网关。...这有助于快速失败并尽快恢复 - 自我修复的容错系统的重要方面。 除了断路器控制之外,使用Hystrix还可以添加一个回退方法,以便在主命令失败时获取默认值。

1.3K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    推荐收藏 | 如何在实际中计划和执行一个机器学习和深度学习项目

    你可能已经开始了包含多个图像的训练集的实验,随着项目的进展,你的团队决定向训练集添加更多的图像。你可能会想为什么要单独的版本数据?它不能和代码版本放在一起完成吗? 事实上,这一点经常被忽视。...为了帮助我们开发关于构建深度学习项目的坚实知识,可以模拟一个示例项目场景。就本文而言,假设你正在为一家专注于时尚的电子商务公司工作。该公司的目标是建立一个服装分类系统。...最终的产品将是一个web应用程序,该应用程序将能够获取服装的图像,并将其类别和评分作为输出。...为了解决这个问题,可以遵循一个相对成熟的目录结构。 web后端 这本质上是为了将最终模型暴露为REST API的端点。...因此,与数据融为一体非常重要,我真的不能过分强调这一点。在下一节中,我们将深入探讨这个问题。我们将尝试制定一个清单,可以很容易地在你自己的工作中引用。 后面是什么?

    74320

    推荐收藏 | 如何在实际中计划和执行一个机器学习和深度学习项目

    你可能已经开始了包含多个图像的训练集的实验,随着项目的进展,你的团队决定向训练集添加更多的图像。你可能会想为什么要单独的版本数据?它不能和代码版本放在一起完成吗? 事实上,这一点经常被忽视。...为了帮助我们开发关于构建深度学习项目的坚实知识,可以模拟一个示例项目场景。就本文而言,假设你正在为一家专注于时尚的电子商务公司工作。该公司的目标是建立一个服装分类系统。...最终的产品将是一个web应用程序,该应用程序将能够获取服装的图像,并将其类别和评分作为输出。...为了解决这个问题,可以遵循一个相对成熟的目录结构。 web后端 ? 这本质上是为了将最终模型暴露为REST API的端点。...因此,与数据融为一体非常重要,我真的不能过分强调这一点。在下一节中,我们将深入探讨这个问题。我们将尝试制定一个清单,可以很容易地在你自己的工作中引用。 后面是什么?

    57820

    使用生成式对抗网络从随机噪声中创建数据

    在我的实验中,我尝试使用这个数据集来看看我能否得到一个GAN来创建足够真实的数据来帮助我们检测欺诈案例。这个数据集突出显示了有限的数据问题:在285,000个交易中,只有492个是欺诈。...GAN可以生成更逼真的图像(例如DCGAN),支持图像之间的样式转换(参见这里和这里),从文本描述生成图像(StackGAN),并通过半监督学习从较小的数据集中学习。...再次,如果我们有更多的欺诈数据,我们可能会更好地检测到它。也就是说,我们可以达到更高的召回率。现在我们将尝试使用GAN生成新的,现实的欺诈数据,以帮助我们检测实际的欺诈行为。...用GAN生成新的信用卡数据 为了将不同的GAN体系结构应用到这个数据集中,我将使用GAN-Sandbox,它使用Keras库和TensorFlow后端在Python中实现了许多流行的GAN体系结构。...超越无限 虽然我们无法产生足够现实的信用卡诈骗数据来帮助我们发现实际的欺诈行为,但是我们几乎没有用这些方法去琢磨。我们可以训练更长,更大的网络,并调整我们在本文中尝试的体系结构的参数。

    3.6K20

    让你的电脑拥有“视力”,用卷积神经网络就可以!

    图片来自Alfonso Reyes 但是,很显然地,我们不是长出了腿和胳膊的行走相机。现有的相机并不能完全理解它们拍摄的图片。如果它们能做到的话那就有点吓人了。...卷积神经网络图示 正如我之前提到的,计算机将图片看作矩阵中的一堆数字。CNN的不同层将函数应用于这些矩阵,以从图像中提取各种特征并降低图像的复杂度。...用蓝色表示的模型匹配了所有的数据点,但是如果我们想让这个模型预测一些点时,它却做不到。回到卷积神经网络,这意味着模型在它训练集上会十分准确,但是对于其他不在训练集里的图片,它却不能作出正确的判断。...比方说,我们正在尝试编写一个识别猫的程序,我们可以尝试通过寻找某些形状来表示猫。 ? 来自计算机视觉专家李飞飞的TED演讲的猫的形状 看起来很简单吧?但等一下。并非所有的猫都像这样。...我们可以在Python里使用Keras框架创建一个卷积神经网络,其中Keras是一个用Python编写的高级API。Keras可以帮助我们编写易于理解和可读性强的代码。

    79030

    看懂 Serverless SSR,这一篇就够了!

    一旦用户在浏览器中输入SPA支持的网站的URL,我粗略地列举下将会出现以下过程: 下载用于SPA初始化的 HTML 下载文件(遇到CSS,JavaScript,图像等) 一旦加载了JavaScript并执行它...上面显示的摘要绝对可以帮助我们选择正确的方法来渲染我们的应用程序。但是我们应该使用哪一个呢? 其实,这取决于您正在构建的应用程序,换句话说,取决于您面前的特定需求。...也就是如果我们可以从后端访问该URL,就像普通用户那样访问该URL,并在Web爬网程序发出请求时将其返回,该怎么办?您知道吗,只需模拟普通用户,等待完整的UI生成,获取最终的HTML,然后就可以使用?...所以,如果普通用户发出HTTP请求,我们只需从S3 bucket中获取请求的文件,并将其作为调用响应发送回API网关,然后将其返回给CloudFront,就可以返回该文件。...再次希望我能解释一下我们在Webiny尝试过的方法,但是如果您有任何疑问,请随时提出!我也想听听您对这个话题的看法,因此,如果您有什么要分享的,请分享吧! 谢谢阅读!

    7.9K41

    ajax跨域问题-web开发必会

    这意味着浏览器隔离来自不同源的内容,以防止它们之间的操作。 解决方式 通常来说,比较通用的有如下两种方式,一种是从服务器端下手,另一种则是从客户端的角度出发。...然后就托和自己班的女生–小兰。来帮自己去要。所以小兰就相当于一个代理。帮助小明获取原本不能直接获取的小红的联系方式。 下面来举个例子说明这个问题。...> 下面看下代码执行的结果。 ?...于是: 克服该限制更理想方法是在 Web 页面中插入动态脚本元素,该页面源指向其他域中的服务 URL 并且在自身脚本中获取数据。脚本加载时它开始执行。...该方法是可行的,因为同源策略不阻止动态脚本插入,并且将脚本看作是从提供 Web 页面的域上加载的。但如果该脚本尝试从另一个域上加载文档,就不会成功。

    2K60

    CS 可视化: CORS

    客户端发送带有服务器需要的所有信息的 HTTP 请求,以便将数据发送回客户端 假设我们正在尝试从位于 api.website.com 的服务器上获取一些用户信息,以在我们的 www.mywebsite.com...例如,加载位于 https://mywebsite.com/image1.png 的图像是完全可以的。 当资源位于不同的(子)域、协议或端口时,资源就是跨源的! 好了,但是为什么同源策略要存在呢?...客户端 CORS 尽管同源策略实际上仅适用于脚本,但浏览器为 JavaScript 请求“扩展”了此策略:默认情况下,我们只能访问相同源的获取的资源! 嗯,但是......我们经常需要访问跨源资源 也许我们的前端需要与后端 API 交互以加载数据?为了安全地允许跨源请求,浏览器使用一种称为CORS的机制! CORS 代表跨源资源共享。...通过添加这个头部,同源策略将不再限制我们接收位于 https://api.mywebsite.com 起源的资源,如果我们是从 https://mywebsite.com 发送请求的话!

    74310

    10个小技巧助您写出高性能的ASP.NET Core代码

    如果这些搜索引擎的响应速度超过10秒,你还会使用它们吗?我认为大伙应该不会用了吧。如今的用户最不能容忍的想必就是等待了吧。 今天,我们将学习一些有助于提高ASP.NET Core网站性能的一些小技巧。...阻塞调用或同步调用可以是任何东西,可以是从API中获取数据,也可以是执行一些内部操作。您应该始终以异步方式执行调用。...使用存储的数据,而不是调用服务器。 将数据保存在某个位置并让下次请求从这个地方获取数据而不是从服务器获取是一种很好的做法。在这里,我们可以使用缓存。...在获取只是用来只读显示的数据时不使用跟踪。它提高了性能。 尝试在数据库端过滤数据,不要使用查询获取整个数据,然后在您的末尾进行筛选。...压缩图像 确保使用压缩技术缩小图像的大小。 使用 CDN 如果您只有几个样式和JS文件,那么可以从您的服务器加载。对于较大的静态文件,请尝试使用CDN。

    5.5K31

    【Excel批处理】多个Excel文件一键执行原生函数

    视频演示前言大家好,我是老罗软件,最近公司有一批Excel文件,需要将每个excel 都执行函数计算。单个excel是很容易操作的,但多个文件就相当耗费人力,今天老罗就是帮大家来解决这个问题的。...需求描述有一批excel,需要将工资总和求出来,我找了一个excel打开如下:如果只有一个excel,我想人工操作还是很简单的,但是我有一批excel都需要这样操作:如果你想早点下班,抛开这些重复的繁琐步骤...软件打开后, 我们设置好界面的参数:下面我来详细介绍下参数意思。Excel目录: 就是你要执行函数的excel位置。函数: 这里填excel的原生函数表达式。...部分代码解析项目的 开始 按钮,会开启一个QThread线程去处理,首先是获取excel目录, 然后通过os.walk遍历目录获取到所有文件,然后一个一个进行处理,处理的业务代码如下:from api.excel_api...结尾语单个excel执行函数,我们用wps这些有名的工具就可以了, 但是针对多文件批量一键处理还可以尝试我文章中的介绍方法,可以为你提高很大的工作效率,让你有时间充实自己,而不是像机器人一样做重复的工作

    18710

    我是如何成为一名全栈工程师的?

    经历了将近一年的时间,我终于阶段性地完成了从iOS开发到后端开发的角色转变。 现在我可以自豪地说,我已经接近一名全栈工程师了,已经熟悉了后端开发的各种工具、环境和一些后端工作的方式。...可以从流程中看出来,初始数据是前端提供的账号密码,从前端流向后端,而后端生成session,然后从后端流向前端,我们第一步需要做的就是确定数据怎么流,剩下的就是各自领域的事情,后端去研究数据怎么存,前端去研究页面怎么画...但如果没有客观的条件支持,那么我的处理方式是,找一个你感兴趣的APP,去思考它是如何实现这些功能的,然后尝试着自己去实现,例如小红书,微信等等。...或者跟着某个学习视频来进行学习和练手,但是会有几个问题: 讲解的技术点不一定是官方最新建议的 一般这种视频进行的练手项目都很简单,不能完全应对真实的使用场景 学习方式 学习需要区分了解和使用 在这里,...TDD可以帮助我们快速了解框架,语法和API的使用,而结对编程能够帮助我们更好地了解它为什么这么写,为什么能够适用这个场景以及获取一些经验,尤其在有了chatGPT之后,就算没有一个大佬或者共同学习的小伙伴跟你结对编程

    64820

    再看API设计——从黑客的角度 | TW洞见

    互联网的高速发展以及多终端设备的广泛使用使得前后端分离架构变成了必须,越来越多的网络应用暴露出API以便于前端的使用,RESTFul API的设计成为了业界主流的设计范式。...在这篇文章中,我将以一个数据黑客的角度,展示如何利用API来大规模的获取所要的信息。...数据黑客 数据黑客没有一个准确的定义,在我看来这帮人对于数据具有敏锐的嗅觉;他们尝试得到一切能够获得的数据并进行数据分析;他们尝试在数据的云海中找出规律以便预测未来。...那么,通过数据分析,能否回答以下几个问题以便帮助我们正确的投标: 针对投标信息,雇主对自由职业者的信誉度和价格,哪个看得更重?...这样的话我就确定了网站每个项目的ID是可以直接访问的,从0开始遍历这个ID即可得到所有网站的信息。

    86240

    我认为前端的职责可能需要重新划分

    这一点,从每天都会听到的新 Web API(如 Web Assembly、Web Worker、Web GPU 等)中就可以看到。我们为应对那些新增的层所做的工作不仅和“基本 UI”相关。...你不能在 Web Assembly 层做 DOM 操作。不过,你可以做一些非常消耗 CPU 的事情,如图像处理、数据加密,甚或是机器学习。...编写一个非常高效的视频编辑库。 一个加解密 API,在将图像和视频发送到存储服务之前以及获取到它们之后对其进行加解密。 将部分数据存储在本地,使 App 可以离线运行,并能稍后通过服务同步。...小    结 头衔和学科并不是让开发者永远坚守职责的高墙。相反,它们帮助我们一次只专注于一件事。注意力分散是我们这个时代最严重的疾病之一。...今日好文推荐 传美的被勒索千万美元,连夜天价聘请安全专家;软银抵押一半阿里股票,孙正义:“为过去贪图暴利而感到羞愧”;谷歌数据中心爆炸 | Q 资讯 我的开源代码被大公司盗用后:有人承认,有人让我滚 从

    1.2K10

    CTO 观点:如何为企业选择合适的消息系统?

    在本文中,我将从 CTO 的视角出发,对比 Apache Pulsar 和 Apache Kafka。只进行理论上的对比空洞无效,也不能帮助我们作出决策,实际用例才真正值得参考。...我们在对比单位成本后,选择了成本效益高的一方。Kafka API 可以保证后端质量,用户在后端之间的数据移动不会受到影响,有效规避风险。即使社区不活跃,技术热度不高,我们的使用也不会受到影响。...复杂消息 由于企业正在向新消息平台迁移,消息系统最好可以处理新使用场景。数据架构师团队一直在了解各个平台,尝试寻找最佳解决方案。...在生产环境中部署 Kafka 的公司在数量上更胜一筹。 从用户数量来看,Kafka 的用户更多。但是,数据工程师团队认为, Kafka 的使用者可以轻松学习 Pulsar。...开发团队可以尝试一些解决方案,但这样就不能实现使用单个系统的预期目标。要处理队列使用场景,就同时需要 Kafka 集群和 RabbitMQ 集群。

    55920

    青出于蓝而胜于蓝,这是一款脱胎于Jupyter Notebook的新型编程环境

    比如我们会试验从未用过的新型 API,来理解其运作原理;我们探索正在开发的算法的行为,以查看其处理不同数据类型的方式;我们探索不同的输入组合,来调试代码…… nbdev:探索式编程 我们认为探索流程是有价值的...如上图所示,用这种方式构建软件时,项目团队中的所有成员均可以从你为理解问题域所做的工作中获益,如文件格式、性能特点、API 边缘案例(edge case)等。...但是,当时我们使用的软件开发工具并没能完成变革,去匹配工作方式的改变。一些工具被添加到库中,用来更轻松地执行测试驱动开发。...但是 Fortran 和 ALGOL 语言是为穿孔卡片设计的啊。」 他提出了完善的示例,以及多项编程系统设计新原则。尽管没人完全实现他的全部想法,但已经有人尝试实现其中的一部分。...事实上,它不仅没有影响生产效率,我还使用它构建出了之前无法构建的东西。它帮助我在试验算法后立即得到视觉化反馈。

    1.3K10

    青出于蓝而胜于蓝,这是一款脱胎于Jupyter Notebook的新型编程环境

    比如我们会试验从未用过的新型 API,来理解其运作原理;我们探索正在开发的算法的行为,以查看其处理不同数据类型的方式;我们探索不同的输入组合,来调试代码…… nbdev:探索式编程 我们认为探索流程是有价值的...如上图所示,用这种方式构建软件时,项目团队中的所有成员均可以从你为理解问题域所做的工作中获益,如文件格式、性能特点、API 边缘案例(edge case)等。...但是,当时我们使用的软件开发工具并没能完成变革,去匹配工作方式的改变。一些工具被添加到库中,用来更轻松地执行测试驱动开发。...但是 Fortran 和 ALGOL 语言是为穿孔卡片设计的啊。」 他提出了完善的示例,以及多项编程系统设计新原则。尽管没人完全实现他的全部想法,但已经有人尝试实现其中的一部分。...事实上,它不仅没有影响生产效率,我还使用它构建出了之前无法构建的东西。它帮助我在试验算法后立即得到视觉化反馈。

    1K20

    ESP32眼动追踪实现-EyeTrackVR

    这个东西只要25 传输上面,一个是无线的2.4G: 测试 一个有线的-看上去是USB,其实是串口,比特率高的不行(30W) 这里我就放了seeed的板子 首先项目第一步要跑起来这个后端: 安装windows...这个是所有的后端需要的库 完成后,直接开启 会有一个集成的API列表出现 这个API写了什么呢?...,30W的比特率 这个是相机的数据 fb = esp_camera_fb_get(); // 从相机获取帧缓冲区 if (fb) { len = fb->len; //...这个代码有趣 把代码的头对比好,来控制机器 初始化眼动跟踪器的网络相关功能(如果未启用 USB API) 看代码,串口没有控制功能,单纯的输出图像数据。...测试可以到70FPS,这个数据有点假 后端开启,再打开追踪的GUI 连接 这个是我的摄像头太垃圾了,没有调焦 开始捕获了 追踪中 这个上位机的代码呢,也可以自己开发: 第一步在这里改成小写以免打包失败

    86210

    青出于蓝而胜于蓝,这是一款脱胎于Jupyter Notebook的新型编程环境

    比如我们会试验从未用过的新型 API,来理解其运作原理;我们探索正在开发的算法的行为,以查看其处理不同数据类型的方式;我们探索不同的输入组合,来调试代码…… nbdev:探索式编程 我们认为探索流程是有价值的...如上图所示,用这种方式构建软件时,项目团队中的所有成员均可以从你为理解问题域所做的工作中获益,如文件格式、性能特点、API 边缘案例(edge case)等。...但是,当时我们使用的软件开发工具并没能完成变革,去匹配工作方式的改变。一些工具被添加到库中,用来更轻松地执行测试驱动开发。...但是 Fortran 和 ALGOL 语言是为穿孔卡片设计的啊。」 他提出了完善的示例,以及多项编程系统设计新原则。尽管没人完全实现他的全部想法,但已经有人尝试实现其中的一部分。...事实上,它不仅没有影响生产效率,我还使用它构建出了之前无法构建的东西。它帮助我在试验算法后立即得到视觉化反馈。

    1K30
    领券