2018年6月

“对于标准来说,最好的事情莫过于大量的人都去选择使用它。“

—— Andrew S. Tanenbaum

通证标准的现状

在以太坊平台上,通证标准的现状出奇的简单:ERC-20 通证 token 标准是通证接口中唯一被采用( EIP-20)和接受的通证标准。

它在 2015 年被提出,最终接受是在 2017 年末。

在此期间,提出了许多解决 ERC-20 缺点的 以太坊意见征集 Ethereum Requests for Comments (ERC),其中的一部分是因为以太坊平台自身变更所导致的,比如,由 EIP-150 修复的 重入 re-entrancy bug。其它 ERC 提出的对 ERC-20 通证模型的强化。这些强化是通过收集大量的以太坊区块链和 ERC-20 通证标准的使用经验所确定的。ERC-20 通证接口的实际应用产生了新的要求和需要,比如像权限和操作方面的非功能性需求。

这篇文章将浅显但完整地对以太坊平台上提出的所有通证(类)的标准进行简单概述。我将尽可能客观地去做比较,但不可避免地仍有一些不客观的地方。

通证标准之母:ERC-20

有成打的 非常好的 关于 ERC-20 的详细描述,在这里就不一一列出了。只对在文章中提到的相关核心概念做个比较。

提取模式

用户不太好理解 ERC-20 接口,尤其是从一个 外部所有者帐户 externally owned account (EOA)转账 通证的模式,即一个终端用户(“Alice”)到一个智能合约的转账,很难正确理解 approve/transferFrom 模式。

从软件工程师的角度看,这个提取模式非常类似于 好莱坞原则 Hollywood Principle (“不要给我们打电话,我们会给你打电话的!”)。那个调用链的想法正好相反:在 ERC-20 通证转账中,通证不能调用合约,但是合约可以调用通证上的 transferFrom

虽然好莱坞原则经常用于去实现 关注点分离 Separation-of-Concerns (SoC),但在以太坊中它是一个安全模式,目的是为了防止通证合约去调用外部合约上的未知的函数。这种行为是非常有必要的,因为会出现 调用深度攻击 Call Depth Attack ,直到 EIP-150 被启用才解决。在这个硬分叉之后,这个重入 bug 将不再可能出现了,并且提取模式也不能提供任何比直接通证调用更好的安全性。

但是,为什么现在它成了一个问题呢?可能是由于某些原因,它的用法设计有些欠佳,但是我们可以通过前端的 DApp 来修复这个问题,对吗?

因此,我们来看一看,如果一个用户使用 transfer 去发送一些通证到智能合约会发生什么事情。Alice 对通证合约的合约地址进行转账,

….啊啊啊,它不见了!

是的,通证没有了。很有可能,没有任何人再能拿回通证了。但是像 Alice 的这种做法并不鲜见,正如 ERC-223 的发明者 Dexaran 所发现的,大约有 $400.000 的通证(由于 ETH 波动很大,我们只能说很多)是由于用户意外发送到智能合约中,并因此而丢失。

即便合约开发者是一个非常友好和无私的用户,他也不能创建一个合约以便将它收到的通证返还给你。因为合约并不会提示这类转账,并且事件仅在通证合约上发出。

从软件工程师的角度来看,那就是 ERC-20 的重大缺点。如果发生一个事件(为简单起见,我们现在假设以太坊交易是真实事件),对参与的当事人应该有一个提示。但是,这个事件是在通证的智能合约中触发的,合约接收方是无法知道它的。

目前,还不能做到防止用户向智能合约发送通证,并且在 ERC-20 通证合约上使用这种不直观的转账将导致这些发送的通证永远丢失。

帝国反击战:ERC-223

第一个尝试去修复 ERC-20 的问题的提案是 Dexaran 提出来的。这个提议通过将 EOA 和智能合约账户做不同的处理的方式来解决这个问题。

强制的策略是去反转调用链(并且使用 EIP-150 解决它现在能做到了),并且在正在接收的智能合约上使用一个预定义的回调(tokenFallback)。如果回调没有实现,转账将失败(将消耗掉发送方的燃料,这是 ERC-223 最常被批评的一个地方)。

好处:

  • 创建一个新接口,有意使用这个废弃的函数来不遵守 ERC-20
  • 允许合约开发者去处理收到的通证(即:接受/拒绝)并因此遵守事件模式
  • 用一个交易来代替两个交易(transfer vs. approve/transferFrom)并且节省了燃料和区域链的存储空间

坏处:

  • 如果 tokenFallback 不存在,那么合约的 fallback 功能将运行,这可能会产生意料之外的副作用
  • 假如合约使用通证转账功能的话,比如,发送通证到一个特定的像多签名钱包一样的账户,这将使 ERC-223 通证失败,它将不能转移(即它们会丢失)。

程序员修练之道:ERC-677

ERC-667:transferAndCall 通证标准 尝试将 ERC-20 和 ERC-223 结合起来。这个创意是在 ERC-20 中引入一个 transferAndCall 函数,并保持标准不变。ERC-223 有意不完全向后兼容,由于不再需要 approve/allowance 模式,并因此将它删除。

ERC-667 的主要目标是向后兼容,为新合约向外部合约转账提供一个安全的方法。

好处:

  • 容易适用新的通证
  • 兼容 ERC-20
  • 为 ERC-20 设计的适配器用于安全使用 ERC-20

坏处:

  • 不是真正的新方法。只是一个 ERC-20 和 ERC-223 的折衷
  • 目前实现 尚未完成

重逢:ERC-777

ERC-777:一个先进的新通证标准,引入它是为了建立一个演进的通证标准,它是吸取了像带值的 approve() 以及上面提到的将通证发送到合约这样的错误观念的教训之后得来的演进后标准。

另外,ERC-777 使用了新标准 ERC-820:使用一个注册合约的伪内省,它允许为合约注册元数据以提供一个简单的内省类型。并考虑到了向后兼容和其它的功能扩展,这些取决于由一个 EIP-820 查找到的地址返回的 ITokenRecipient,和由目标合约实现的函数。

ERC-777 增加了许多使用 ERC-20 通证的经验,比如,白名单操作者、提供带 send(…) 的以太兼容的接口,为了向后兼容而使用 ERC-820 去覆盖和调整功能。

好处:

  • 从 ERC-20 的使用经验上得来的、经过深思熟虑的、进化的通证接口
  • 为内省要求 ERC-820 使用新标准,接受了增加的功能
  • 白名单操作者非常有用,而且比 approve/allowance 更有必要,它经常是无限的

坏处:

  • 刚刚才开始,复杂的依赖合约调用的结构
  • 依赖导致出现安全问题的可能性增加:第一个安全问题并不是在 ERC-777 中 确认(并解决的),而是在最新的 ERC-820 中

(纯主观的)结论(轻喷)

目前为止,如果你想遵循 “行业标准”,你只能选择 ERC-20。它获得了最广泛的理解与支持。但是,它还是有缺陷的,最大的一个缺陷是因为非专业用户设计和规范问题导致的用户真实地损失金钱的问题。ERC-223 是非常好的,并且在理论上找到了 ERC-20 中这个问题的答案了,它应该被考虑为 ERC-20 的一个很好的替代标准。在一个新通证中实现这两个接口并不复杂,并且可以降低燃料的使用。

ERC-677 是事件和金钱丢失问题的一个务实的解决方案,但是它并没能提供足够多的新方法,以促使它成为一个标准。但是它可能是 ERC-20 2.0 的一个很好的候选者。

ERC-777 是一个更先进的通证标准,它应该成为 ERC-20 的合法继任者,它提供了以太坊平台所需要的非常好的成熟概念,像白名单操作者,并允许以优雅的方式进行扩展。由于它的复杂性和对其它新标准的依赖,在主链上出现第一个 ERC-777 标准的通证还需要些时日。

链接

  1. 在 ERC-20 中使用 approve/transferFrom 模式的安全问题: https://drive.google.com/file/d/0ByMtMw2hul0EN3NCaVFHSFdxRzA/view
  2. ERC-20 中的无事件操作:https://docs.google.com/document/d/1Feh5sP6oQL1-1NHi-X1dbgT3ch2WdhbXRevDN681Jv4
  3. ERC-20 的故障及历史:https://github.com/ethereum/EIPs/issues/223#issuecomment-317979258
  4. ERC-20/223 的不同之处:https://ethereum.stackexchange.com/questions/17054/erc20-vs-erc223-list-of-differences

via: http://blockchainers.org/index.php/2018/02/08/token-erc-comparison-for-fungible-tokens/

作者:Alexander Culum 选题:lujun9972 译者:qhwdw 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

有一些使用灵活、功能丰富而物有所值的开源 ERP 系统,这里有 9 个值得你看看。

拥有一定数量员工的企业就需要大量的协调工作,包括制定价格、计划生产、会计和财务、管理支出、管理存货等等。把一套截然不同的工具拼接到一起去处理这些工作,是一种粗制滥造和无价值的做法。

那种方法没有任何弹性。并且那样在各种各样的自组织系统之间高效移动数据是非常困难的。同样,它也很难维护。

因此,大多数成长型企业都转而使用一个 企业资源计划 (ERP)系统。

在这个行业中的大咖有 Oracle、SAP、以及 Microsoft Dynamics。它们都提供了一个综合的系统,但同时也很昂贵。如果你的企业支付不起如此昂贵的大系统,或者你仅需要一个简单的系统,怎么办呢?你可以使用开源的产品来作为替代。

一个 ERP 系统中有什么东西

显然,你希望有一个满足你需要的系统。基于那些需要,更多的功能并不意味着就更好。但是,你的需要会根据你的业务的增长而变化的,因此,你希望能够找到一个 ERP 系统,它能够根据你新的需要而扩展它。那就意味着系统有额外的模块或者支持插件和附加功能。

大多数的开源 ERP 系统都是 web 应用程序。你可以下载并将它们安装到你的服务器上。但是,如果你不希望(或者没有相应技能或者人员)自己去维护系统,那么应该确保它们的应用程序提供托管版本。

最后,你还应该确保应用程序有良好的文档和支持 —— 要么是付费支持或者有一个活跃的用户社区。

有很多弹性很好的、功能丰富的、很划算的开源 ERP 系统。如果你正打算购买这样的系统,这里有我们挑选出来的 9 个。

ADempiere

像大多数其它开源 ERP 解决方案,ADempiere 的目标客户是中小企业。它已经存在一段时间了 — 这个项目出现于 2006,它是 Compiere ERP 软件的一个分支。

它的意大利语名字的意思是“实现”或者“满足”,它“涉及多个方面”的 ERP 特性,旨在帮企业去满足各种需求。它在 ERP 中增加了供应链管理(SCM)和客户关系管理(CRM)功能,能够让该 ERP 套件在一个软件中去管理销售、采购、库存以及帐务处理。它的最新版本是 v.3.9.0,更新了用户界面、POS、人力资源、工资以及其它的特性。

因为是一个跨平台的、基于 Java 的云解决方案,ADempiere 可以运行在Linux、Unix、Windows、MacOS、智能手机、平板电脑上。它使用 GPLv2 授权。如果你想了解更多信息,这里有一个用于测试的 demo,或者也可以在 GitHub 上查看它的 源代码

Apache OFBiz

Apache OFBiz 的业务相关的套件是构建在通用的架构上的,它允许企业根据自己的需要去定制 ERP。因此,它是有内部开发资源的大中型企业的最佳套件,可以去修改和集成它到它们现有的 IT 和业务流程。

OFBiz 是一个成熟的开源 ERP 系统;它的网站上说它是一个有十年历史的顶级 Apache 项目。可用的 模块 有会计、生产制造、人力资源、存货管理、目录管理、客户关系管理,以及电子商务。你可以在它的 demo 页面 上试用电子商务的网上商店以及后端的 ERP 应用程序。

Apache OFBiz 的源代码能够在它的 项目仓库 中找到。它是用 Java 写的,它在 Apache 2.0 license 下可用。

Dolibarr

Dolibarr 提供了中小型企业端到端的业务管理,从发票跟踪、合同、存货、订单,以及支付,到文档管理和电子化 POS 系统支持。它的全部功能封装在一个清晰的界面中。

如果你担心不会使用 Dolibarr,这里有一些关于它的文档

另外,还有一个 在线演示,Dolibarr 也有一个 插件商店,你可以在那是购买一些软件来扩展它的功能。你可以在 GitHub 上查看它的 源代码;它在 GPLv3 或者任何它的最新版本许可下面使用。

ERPNext

ERPNext 是这类开源项目中的其中一个;实际上它最初在 2014 年就被 Opensource.com 推荐了。它被设计用于打破一个陈旧而昂贵的专用 ERP 系统的垄断局面。

ERPNext 适合于中小型企业。它包含的模块有会计、存货管理、销售、采购、以及项目管理。ERPNext 是表单驱动的应用程序 — 你可以在一组字段中填入信息,然后让应用程序去完成剩余部分。整个套件非常易用。

如果你感兴趣,在你考虑参与之前,你可以请求获取一个 demo,去 下载它 或者在托管服务上 购买一个订阅

Metasfresh

Metasfresh 的名字表示它承诺软件的代码始终保持“新鲜”。它自 2015 年以来每周发行一个更新版本,那时,它的代码是由创始人从 ADempiere 项目中分叉的。与 ADempiere 一样,它是一个基于 Java 的开源 ERP,目标客户是中小型企业。

虽然,相比在这里介绍的其它软件来说,它是一个很 “年青的” 项目,但是它早早就引起了一起人的注意,获得很多积极的评价,比如,被提名为“最佳开源”的 IT 创新奖入围者。

Metasfresh 在自托管系统上或者在云上单用户使用时是免费的,或者可以按月交纳订阅费用。它的 源代码 在 GitHub 上,可以在遵守 GPLv2 许可的情况下使用,它的云版本是以 GPLv3 方式授权使用。

Odoo

Odoo 是一个应用程序集成解决方案,它包含的模块有项目管理、帐单、存货管理、生产制造、以及采购。这些模块之间可以相互通讯,实现高效平滑地信息交换。

虽然 ERP 可能很复杂,但是,Odoo 通过简单的,甚至是简洁的界面使它变得很友好。这个界面让人联想到谷歌云盘,它只让你需要的功能可见。在你决定签定采购合同之前,你可以 得到一个 Odoo 去试用

Odoo 是基于 web 的工具。按单个模块来订阅的话,每个模块每月需要支付 20 美元。你也可以 下载它,或者可以从 GitHub 上获得 源代码,它以 LGPLv3 方式授权。

Opentaps

Opentaps 是专为大型业务设计的几个开源 ERP 解决方案之一,它的功能强大而灵活。这并不奇怪,因为它是在 Apache OFBiz 基础之上构建的。

你可以得到你所希望的模块组合,来帮你管理存货、生产制造、财务,以及采购。它也有分析功能,帮你去分析业务的各个方面。你可以借助这些信息让未来的计划做的更好。Opentaps 也包含一个强大的报表功能。

在它的基础之上,你还可以 购买一些插件和附加模块 去增强 Opentaps 的功能。包括与 Amazon Marketplace Services 和 FedEx 的集成等。在你 下载 Opentaps 之前,你可以到 在线 demo 上试用一下。它遵守 GPLv3 许可。

WebERP

WebERP 是一个如它的名字所表示的那样:一个通过 Web 浏览器来使用的 ERP 系统。另外还需要的其它软件只有一个,那就是查看报告所使用的 PDF 阅读器。

具体来说,它是一个面向批发、分销、生产制造业务的账务和业务管理解决方案。它也可以与 第三方的业务软件 集成,包括多地点零售管理的销售点系统、电子商务模块、以及构建业务知识库的 wiki 软件。它是用 PHP 写的,并且它致力于成为低资源占用、高效、快速、以及平台无关的、普通商业用户易于使用的 ERP 系统。

WebERP 正在积极地进行开发,并且它有一个活跃的 论坛,在那里你可以咨询问题或者学习关于如何使用这个应用程序的相关知识。你也可以试用一个 demo,或者在 GitHub 上下载它的 源代码(遵守 GPLv2 许可)

xTuple PostBooks

如果你的生产制造、分销、电子商务业务已经从小规模业务成长起来了,并且正在寻找一个适合你的成长型企业的 ERP 系统,那么,你可以去了解一下 xTuple PostBooks。它是围绕核心 ERP 功能、帐务、以及可以添加存货、分销、采购、以及供应商报告等 CRM 功能构建的全面解决方案的系统。

xTuple 在通用公共属性许可证(CPAL)下使用,并且这个项目欢迎开发者去分叉它,然后为基于存货的生产制造型企业开发其它的业务软件。它的基于 web 的核心是用 JavaScript 写的,它的 源代码 可以在 GitHub 上找到。你可以去在 xTuple 的网站上注册一个免费的 demo 去了解它。

还有许多其它的开源 ERP 可供你选择 — 另外你可以去了解的还有 Tryton,它是用 Python 写的,并且使用的是 PostgreSQL 数据库引擎,或者基于 Java 的 Axelor,它的好处是用户可以使用拖放界面来创建或者修改业务应用。如果还有在这里没有列出的你喜欢的开源 ERP 解决方案,请在下面的评论区共享出来。你也可以去查看我们的 供应链管理工具 榜单。

这篇文章是 以前版本 的一个更新版,它是由 Opensource.com 的主席 Scott Nesbitt 所写。


via: https://opensource.com/tools/enterprise-resource-planning

作者:Opensource.com 选题:lujun9972 译者:qhwdw 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

学习编程很难。即使当你最终怎么正确使用你的冒号和括号,但仍然有很大的可能你的程序不会如果所想的工作。 通常,这意味着你忽略了某些东西或者误解了语言结构,你需要在代码中找到你的期望与现实存在分歧的地方。

程序员通常使用被叫做 调试器 debugger 的工具来处理这种情况,它允许一步一步地运行他们的程序。不幸的是,大多数调试器都针对专业用途进行了优化,并假设用户已经很好地了解了语言结构的语义(例如:函数调用)。

Thonny 是一个适合初学者的 Python IDE,由爱沙尼亚的 Tartu 大学 开发,它采用了不同的方法,因为它的调试器是专为学习和教学编程而设计的。

虽然 Thonny 适用于像小白一样的初学者,但这篇文章面向那些至少具有 Python 或其他命令式语言经验的读者。

开始

从第 Fedora 27 开始,Thonny 就被包含在 Fedora 软件库中。 使用 sudo dnf install thonny 或者你选择的图形工具(比如“ 软件 Software ”)安装它。

当第一次启动 Thonny 时,它会做一些准备工作,然后呈现一个空白的编辑器和 Python shell 。将下列程序文本复制到编辑器中,并将其保存到文件中(Ctrl+S)。

n = 1
while n < 5:
    print(n * "*")
    n = n + 1

我们首先运行该程序。 为此请按键盘上的 F5 键。 你应该看到一个由星号组成的三角形出现在 shell 窗格中。

一个简单的 Thonny 程序

Python 分析了你的代码并理解了你想打印一个三角形了吗?让我们看看!

首先从“ 查看 View ”菜单中选择“ 变量 Variables ”。这将打开一张表格,向我们展示 Python 是如何管理程序的变量的。现在通过按 Ctrl + F5(在 XFCE 中是 Ctrl + Shift + F5)以调试模式运行程序。在这种模式下,Thonny 使 Python 在每一步所需的步骤之前暂停。你应该看到程序的第一行被一个框包围。我们将这称为焦点,它表明 Python 将接下来要执行的部分代码。

 Thonny 调试器焦点

你在焦点框中看到的一段代码段被称为赋值语句。 对于这种声明,Python 应该计算右边的表达式,并将值存储在左边显示的名称下。按 F7 进行下一步。你将看到 Python 将重点放在语句的正确部分。在这个例子中,表达式实际上很简单,但是为了通用性,Thonny 提供了表达式计算框,它允许将表达式转换为值。再次按 F7 将文字 1 转换为值 1。现在 Python 已经准备好执行实际的赋值—再次按 F7,你应该会看到变量 n 的值为 1 的变量出现在变量表中。

Thonny 变量表

继续按 F7 并观察 Python 如何以非常小的步骤前进。它看起来像是理解你的代码的目的或者更像是一个愚蠢的遵循简单规则的机器?

函数调用

函数调用 Function Call 是一种编程概念,它常常给初学者带来很大的困惑。从表面上看,没有什么复杂的事情——给代码命名,然后在代码中的其他地方引用它(调用它)。传统的调试器告诉我们,当你进入调用时,焦点跳转到函数定义中(然后稍后神奇地返回到原来的位置)。这是整件事吗?这需要我们关心吗?

结果证明,“跳转模型” 只对最简单的函数是足够的。理解参数传递、局部变量、返回和递归都得理解堆栈框架的概念。幸运的是,Thonny 可以直观地解释这个概念,而无需在厚厚的掩盖下搜索重要的细节。

将以下递归程序复制到 Thonny 并以调试模式(Ctrl+F5Ctrl+Shift+F5)运行。

def factorial(n):
    if n == 0:
        return 1
    else:
        return factorial(n-1) * n

print(factorial(4))

重复按 F7,直到你在对话框中看到表达式 factorial(4)。 当你进行下一步时,你会看到 Thonny 打开一个包含了函数代码、另一个变量表和另一个焦点框的新窗口(移动窗口以查看旧的焦点框仍然存在)。

通过递归函数的 Thonny

此窗口表示堆栈帧,即用于解析函数调用的工作区。几个放在彼此顶部的这样的窗口称为 调用堆栈 call stack 。注意调用位置的参数 4 与 “局部变量” 表中的输入 n 之间的关系。继续按 F7 步进, 观察在每次调用时如何创建新窗口并在函数代码完成时被销毁,以及如何用返回值替换了调用位置。

值与参考

现在,让我们在 Python shell 中进行一个实验。首先输入下面屏幕截图中显示的语句:

Thonny shell 显示列表突变

正如你所看到的, 我们追加到列表 b, 但列表 a 也得到了更新。你可能知道为什么会发生这种情况, 但是对初学者来说,什么才是最好的解释呢?

当教我的学生列表时,我告诉他们我一直欺骗了他们关于 Python 内存模型。实际上,它并不像变量表所显示的那样简单。我告诉他们重新启动解释器(工具栏上的红色按钮),从“ 查看 View ”菜单中选择“ Heap ”,然后再次进行相同的实验。如果这样做,你就会发现变量表不再包含值——它们实际上位于另一个名为“ Heap ”的表中。变量表的作用实际上是将变量名映射到地址(或称 ID),地址又指向了 Heap 表中的行。由于赋值仅更改变量表,因此语句 b = a 只复制对列表的引用,而不是列表本身。这解释了为什么我们通过这两个变量看到了变化。

在堆模式中的 Thonny

(为什么我要在教列表的主题之前推迟说出内存模型的事实?Python 存储的列表是否有所不同?请继续使用 Thonny 的堆模式来找出结果!在评论中告诉我你认为怎么样!)

如果要更深入地了解参考系统, 请将以下程序通过打开堆表复制到 Thonny 并进行小步调试(F7) 中。

def do_something(lst, x):
    lst.append(x)

a = [1,2,3]
n = 4
do_something(a, n)
print(a)

即使“堆模式”向我们显示真实的图片,但它使用起来也相当不方便。 因此,我建议你现在切换回普通模式(取消选择“ 查看 View ”菜单中的“ Heap ”),但请记住,真实模型包含变量、参考和值。

结语

我在这篇文章中提及到的特性是创建 Thonny 的主要原因。很容易对函数调用和引用形成错误的理解,但传统的调试器并不能真正帮助减少混淆。

除了这些显著的特性,Thonny 还提供了其他几个初学者友好的工具。 请查看 Thonny的主页 以了解更多信息!


via: https://fedoramagazine.org/learn-code-thonny-python-ide-beginners/

作者:Aivar Annamaa 译者:Auk7F7 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

2018 年 6 月 24 日,由 Primas 基金会主办的“盖世来临——DTCP 协议发布暨 DApp 发布会”在上海盛大举行,「Linux 中国」联合创始人王兴宇出席了此次发布会。此前,Primas 与「Linux 中国」签订了战略合作伙伴协议,通过 Primas 提供的整套区块链技术服务:DTCP(分布式可信内容协议)、经济激励机制和去中心化爬虫在内的技术支持为「Linux 中国」创建开源社区新玩法,实现 Primas 与「Linux 中国」的互相赋能和生态链接。

「Linux中国」立志成为华文区一流的 Linux 与开源的交流社区,推动 Linux 和开源在中国的发展,促进 Linux 及开源技术在中国的普及,构建开源社区环境。「Linux 中国」开源社区主要涉及 Linux 及开源文化的传播和讨论、开源技术的研究和普及。其所传播的内容主要来自开源贡献者的写作、翻译和按内容协议的转载。

通过此次战略合作,Primas 将利用 DTCP 和相应的激励机制,带动开源社区的升级,创建社区新生态,确保社区内容的可信性,拉动更多开源爱好者参与社区建设和作出贡献,同时,使对 Linux 与开源感兴趣的开源爱好者能以更低的成本获得更优质的内容。

DTCP 是 Primas 团队开发的基于区块链技术的互联网底层协议,是对 WWW 协议的升级,旨在构建一个开放、互通、可信的高质量互联网。DTCP 定义了一整套内容元数据标准,包括作者、发布时间、信用等级、引用信息等多方位的 metadata,通过区块链技术,为元数据生成不可篡改、不会丢失的全网唯一数字身份,确保了发布内容的可信和可追溯。DTCP 为「Linux 中国」开源社区建造了信用生态环境,确保每一位社区建设者的每一次智力耕耘均有可追溯性,劳动成果不被窃取及篡改,且通过建设者之间的链接,为 Linux 技术及开源赋能,使其拥有更多延展性,成为真正意义上的 Linux 和开源生态社区。

同时,Primas 独创的经济激励机制和去中心化爬虫技术,可以为「Linux 中国」的社区建设者获得更多智力收入,吸引更多的建设者参与其中,使其价值变现,切身体验付出既得回报的满足感。去中心化爬虫技术使社区所有建设者可以将某一位建设者的相关信息记录上链,帮助单个建设者建立自己的社区“家园”,形成社区去中心化,每个建设者即是中心的形态,实现社区自治。

此次合作的达成与「Linux 中国」近期正在积极推进的开源生态区块链化的进程相结合,为「Linux 中国」及中国广大的开源社区团体们开拓了一个新的开源发展模式,必将有力地推进中国的开源文化和技术生态的发展。

通过此次战略合作,Primas 将区块链技术实际应用落地与「Linux 中国」携手创建社区新生态,从技术层面带动开源社区突破升级,开启区块链的颠覆时代。

简介:本教程将向你展示如何在 Ubuntu 和其他基于 Ubuntu 的 Linux 发行版上启用 exFAT 文件系统支持。用此种方法在系统上挂载 exFAT 驱动器时,你将不会看到错误消息。

在 Ubuntu 上挂载 exFAT 磁盘时出现问题

有一天,我试图使用以 exFAT 格式化 的 U 盘,其中包含约为 10GB 大小的文件。只要我插入 U 盘,我的 Ubuntu 16.04 就会抛出一个错误说无法挂载未知的文件系统类型 ‘exfat’

Fix exfat drive mount error on Ubuntu Linux

确切的错误信息是这样的:

Error mounting /dev/sdb1 at /media/abhishek/SHADI DATA: Command-line `mount -t "exfat" -o "uhelper=udisks2,nodev,nosuid,uid=1001,gid=1001,iocharset=utf8,namecase=0,errors=remount-ro,umask=0077" "/dev/sdb1" "/media/abhishek/SHADI DATA"` exited with non-zero exit status 32: mount: unknown filesystem type 'exfat'

exFAT 挂载错误的原因

微软最喜欢的 FAT 文件系统仅限于最大 4GB 的文件。你不能将大于 4GB 的文件传输到 FAT 驱动器。为了克服 FAT 文件系统的限制,微软在 2006 年推出了 exFAT 文件系统。

由于大多数微软相关的东西都是专有的,exFAT 文件格式也不例外。Ubuntu 和许多其他 Linux 发行版默认不提供专有的 exFAT 文件支持。这就是你看到 exFAT 文件出现挂载错误的原因。

如何在 Ubuntu Linux 上挂载 exFAT 驱动器

Fix exFAT mount error on Ubuntu Linux

解决这个问题很简单。你只需启用 exFAT 支持即可。

我将展示在 Ubuntu 中的命令,但这应该适用于其他基于 Ubuntu 的发行版,例如 Linux Mint、elementary OS 等。

打开终端(Ubuntu 中 Ctrl+Alt+T 快捷键)并使用以下命令:

sudo apt install exfat-fuse exfat-utils

安装完这些软件包后,进入文件管理器并再次点击 U 盘来挂载它。无需重新插入 USB。它应该能直接挂载。

这对你有帮助么

我希望这个提示可以帮助你修复 Linux 发行版的 exFAT 的挂载错误。如果你有任何其他问题、建议或感谢,请在评论中留言。


via: https://itsfoss.com/mount-exfat/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

用一些来自 Linux 社区的工具,在 Linux 和 Windows 之间共享文件是超容易的。让我们看看可以做这件事的两种不同方法。

现代很多人都在混合网络上工作,Linux 和 Windows 系统都扮演着重要的结束。在两者之间共享文件有时是非常关键的,并且使用正确的工具非常容易。只需很少的功夫,你就可以将文件从 Windows 复制到 Linux 或从 Linux 到 Windows。在这篇文章中,我们将讨论配置 Linux 和 Windows 系统所需的东西,以允许你轻松地将文件从一个操作系统转移到另一个。

在 Linux 和 Windows 之间复制文件

在 Windows 和 Linux 之间移动文件的第一步是下载并安装诸如 PuTTY 的 pscp 之类的工具。你可以从 putty.org 获得它(LCTT 译注:切记从官方网站下载,并最好对比其 md5/sha1 指纹),并轻松将其设置在 Windows 系统上。PuTTY 带有一个终端仿真器(putty)以及像 pscp 这样的工具,用于在 Linux 和 Windows 系统之间安全地复制文件。当你进入 PuTTY 站点时,你可以选择安装所有工具,或选择安装你想要的工具,也可以选择单个 .exe 文件。

你还需要在你的 Linux 系统上设置并运行 ssh 服务器。这允许它支持客户端(Windows 端)连接请求。如果你还没有安装 ssh 服务器,那么以下步骤可以在 Debian 系统上运行(包括 Ubuntu 等):

sudo apt update
sudo apt install ssh-server
sudo service ssh start

对于 Red Hat 及其相关的 Linux 系统,使用类似的命令:

sudo yum install openssh-server
sudo systemctl start sshd

注意,如果你正在运行防火墙(例如 ufw),则可能需要打开 22 端口以允许连接。

使用 pscp 命令,你可以将文件从 Windows 移到 Linux,反之亦然。它的 “copy from to” 命令的语法非常简单。

从 Windows 到 Linux

在下面显示的命令中,我们将 Windows 系统上用户账户中的文件复制到 Linux 系统下的 /tmp 目录。

C:\Program Files\PuTTY>pscp \Users\shs\copy_me.txt [email protected]:/tmp
[email protected]'s password:
copy_me.txt | 0 kB | 0.1 kB/s | ETA: 00:00:00 | 100%

从 Linux 到 Windows

将文件从 Linux 转移到 Windows 也同样简单。只要颠倒参数即可。

C:\Program Files\PuTTY>pscp [email protected]:/tmp/copy_me.txt \Users\shs
[email protected]'s password:
copy_me.txt | 0 kB | 0.1 kB/s | ETA: 00:00:00 | 100%

如果 1) pscp 位于 Windows 搜索路径中,并且 2) 你的 Linux 系统在 Windows 的 hosts 文件中,则该过程可以变得更加顺畅和轻松。

Windows 搜索路径

如果你使用 PuTTY 安装程序安装 PuTTY 工具,你可能会发现 C:\Program files\PuTTY 位于 Windows 搜索路径中。你可以通过在 Windows 命令提示符下键入 echo %path% 来检查是否属于这种情况(在搜索栏中键入 cmd 来打开命令提示符)。如果是这样,你不需要关心文件系统中相对于 pscp 可执行文件的位置。进入到包含你想要移动文件的文件夹可能会更容易。

C:\Users\shs>pscp copy_me.txt [email protected]:/tmp
[email protected]'s password:
copy_me.txt | 0 kB | 0.1 kB/s | ETA: 00:00:00 | 100%

更新你的 Windows 的 hosts 文件

这是另一个小修补。使用管理员权限,你可以将 Linux 系统添加到 Windows 的 hosts 文件中(C:\Windows\System32\drivers\etc\hosts),然后使用其主机名代替其 IP 地址。请记住,如果你的 Linux 系统的 IP 地址是动态分配的,那么它不会一直发挥作用。

C:\Users\shs>pscp copy_me.txt shs@stinkbug:/tmp
[email protected]'s password:
hosts | 0 kB | 0.8 kB/s | ETA: 00:00:00 | 100%

请注意,Windows 的 hosts 文件与 Linux 系统上的 /etc/hosts 文件格式相同 -- IP 地址、空格、主机名。注释以 # 符号来表示的。

# Linux systems
192.168.0.18        stinkbug

讨厌的行结尾符

请记住,Windows 上文本文件中的行以回车符和换行符结束。pscp 工具不会删除回车符,以使文件看起来像 Linux 文本文件。相反,它只是完整地复制文件。你可以考虑安装 tofrodos 包,这使你能够在 Linux 系统上使用 fromdostodos 命令来调整在平台之间移动的文件。

在 Windows 和 Linux 之间共享文件夹

共享文件夹是完全不同的操作。你最终将 Windows 文件夹挂载到你的 Linux 系统或将 Linux 文件夹挂载到 Windows 文件夹中,以便两个系统可以使用同一组文件,而不是将文件从一个系统复制到另一个系统。最好的工具之一就是 Samba,它模拟 Windows 协议并在 Linux 系统上运行。

一旦安装了 Samba,你将能够将 Linux 文件夹挂载到 Windows 上或将 Windows 文件夹挂载到 Linux 上。当然,这与本文前面描述的复制文件有很大的不同。相反,这两个系统中的每一个都可以同时访问相同的文件。

关于选择在 Linux 和 Windows 系统之间共享文件的正确工具的更多提示可以在这里找到。


via: https://www.networkworld.com/article/3269189/linux/sharing-files-between-linux-and-windows.html

作者:Sandra Henry-Stocker 选题:lujun9972 译者:MjSeven 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出