Solidity

课程推荐|深入浅出区块链博主:全栈区块链开发者的4堂必修课(线上优惠)

倾然丶 夕夏残阳落幕 提交于 2019-12-06 23:22:32
Tiny熊从2017年开始更新“深入浅出区块链”博客,在第一篇文章中,关于如何系统学习区块链技术,他这样描述:“从事区块链开发也有很多方向,如:区块链应用开发人员、区块链架构师、底层核心开发、共识算法研究等等。方向不同,需要学习的内容就不一样,想要系统学习区块链开发,首先要确定方向。 从2017年到现在,“深入浅出区块链”博客上累计更新了近50篇区块链技术学习干货,Tiny熊从2016年开始投入区块链技术领域,目前担任登链科技CTO。 本次为大家推荐的四门课程,区块链入门、以太坊智能合约语言、通过Token学习以太坊智能合约、以太坊Dapp开发实战,帮助建立区块链开发者的学习成长路径。 **注:**具体课程介绍见下文, 课程免费/五折优惠 , 回复课程关键词(每个课程介绍后有提示)即可获取优惠码购课学习。 1 课程一 区块链入门-零基础搞懂区块链 课程简介 课程主要讲述:区块链价值、区块链应用场景、区块链从何而来、比特币是什么、比特币运行原理、什么是以太坊、什么是EOS 课程目标 区块链已火遍全球,行业人才急缺,岗位炙手可热,学习正当时,本课程带你零基础搞懂区块链,为你讲解区块链技术核心价值与原理。 课程大纲 1-1区块链的价值是什么 区块链如何解决信任问题(信任人到信任代码) 区块链在效率方面的提升 区块链能更好的保护隐私 更多领域(也许想象力有多大价值就多大) 1

适合区块链开发者使用的10个工具

谁说我不能喝 提交于 2019-12-06 23:22:15
本文翻译自DashMagazine《10 Tools for Blockchain Development》,原文链接: https://hackernoon.com/10-tools-for-blockchain-development-67f862a03a36 。有部分不影响原意的修改。 区块链虽然通过比特币等加密货币为大多数人所熟知,但它的用途远不止加密货币。很多世界知名的公司都在研究如何利用这项技术,比如摩根士丹利推出MPCoin、Facebook、Google等都推出了各自的区块链计划。国内如阿里巴巴、百度、腾讯等巨头也纷纷布局区块链。企业对区块链的兴趣自然会带来对区块链开发人员的需求。根据upwork的一份报告,区块链恰好是其平台上增长最快的技能,超过了TensorFlow和机器学习等技能,跻身前20名。 区块链不仅仅用于处理交易或存储价值,一些区块链能够执行智能合约,在其上开发应用程序(DApp)。如果你有志成为一名区块链开发者,或者想启动一个区块链项目,这里有10个区块链开发人员经常使用的工具推荐给你。当然,区块链开发工具有很多,这10个只是更受欢迎而已。 1、Solidity Solidity是以Contact为导向的编程语言,用于编写在各个区块链平台(如以太坊)上执行的智能合约。Solidity具有与JavaScript编程语言类似的语法,并增强了以太坊虚拟机

区块链100讲:区块链人才市场分析

痴心易碎 提交于 2019-12-06 23:21:46
随着 “柚子杯”黑客马拉松上海创世赛落下帷幕,由古千峰老师创办的活动,获得一众好评,关注的媒体、技术人才以及投资人越来越多。据悉来自东京的BC College观摩整场比赛后,立即决定做东京站城市合伙人。 他花了很多时间研究基于区块链技术的分布式商业,并给企业做有关培训,在企业培训过程中,发现很多企业都有区块链化的需求。通过区块链,有些企业可以改造业务流程,有些企业可以改变融资方式,有些企业通过区块链提高自己的行业信誉,但是他们都不知道如何和区块链结合。 古千峰老师说,越来越多的朋友和企业前来咨询有关区块链技术人才的事情。在交流过程中,发现由于区块链技术太新,发展太快,很多企业只知道需要区块链技术人才,但需要怎么样的人才?如何根据项目的实际需要组建团队?却往往有很大的误区。 今天,就区块链技术相关的开发人才说一下简单分类,希望有所帮助。 1 架构师(Architect) 职责:负责决策项目的技术路线,设计系统框架,核心算法逻辑并协调技术团队内部管理。 岗位:技术总监、技术专家、CTO等。 该岗位需要有丰富的软件工程师经验,熟悉各种区块链架构的优劣,根据项目的需要决定采取什么技术路线,并设计系统框架,同时负责技术团队的内部管理。 由于区块链行业特殊性,架构师还需要对金融学、经济学、社会学等方面有较深的认知。 2 软件工程师(Software Engineer,简称Coding) 职责

How is the source code protected from being tampered with in a blockchain?

白昼怎懂夜的黑 提交于 2019-12-06 17:25:52
class Block{ constructor(timestamp, transactions, previousHash = ''){ this.timestamp = timestamp; this.transactions = transactions; this.previousHash = previousHash; this.hash = this.calculateHash(); this.nonce = 0; } calculateHash(){ return SHA256(this.previousHash + JSON.stringify(this.transactions) + this.timestamp + this.nonce).toString(); } mineBlock(difficulty){ while(this.hash.substring(0, difficulty) !== Array(difficulty + 1).join("0")){ this.nonce++; this.hash = this.calculateHash(); } console.log("Block mined: " + this.hash); } } In the above code, how is it promised that the

How to return mapping list in Solidity? (Ethereum contract)

余生长醉 提交于 2019-12-06 17:18:02
问题 I want to make simple smart contract that has a list, can set item, and can get the list. Code in solidity: contract lister { mapping(int => string) list; int id = 0; function getList() returns ( /*HERE*/ ) { return list; } function setItemToList(string str) { list[id] = str; id++; } } I want to make getList() return the list, but return type is not compatible. How can I do that? 回答1: Bulk access to lists/arrays/etc is painful in Solidity. You rarely see it in contracts. In your case, a

Quorum Ethereum Truffle) Error: Number can only safely store up to 53 bits

放肆的年华 提交于 2019-12-06 15:21:05
I am actually learning smart contract programming on ethereum and I work with truffle. Right now I am making this tutorial here: https://truffleframework.com/tutorials/building-dapps-for-quorum-private-enterprise-blockchains Where you learn how to create a dapp with quorum. But now I have a problem. I did everything exactly as described, but when I do: truffle migrate I get this error here: $ truffle migrate ⚠️ Important ⚠️ If you're using an HDWalletProvider, it must be Web3 1.0 enabled or your migration will hang. Starting migrations... ====================== > Network name: 'development' >

以太坊和Metamask开发web应用不需要再使用密码

孤街浪徒 提交于 2019-12-06 13:45:47
我在ConsenSys为各种客户构建了大量的概念证明,通常他们想要利用以太坊区块链来解决某些业务用例。奇怪的是,这些系统通常设计有标准的网络登录(即用户名和密码)。我总是问自己为什么我还在这样做设计,毕竟,这是今天以太网目前可以解决每个烦人的Web应用程序的一个方面。所以我决定停下脚步,设计一下这个解决方案。 JSON Web token 登录标准Web系统(和/或使用其API)的一种非常流行的方法是将密码(经过哈希的客户端)提交给认证端点并接收token作为回报。这通常称为JSON Web Token,通常在一段有限的时间内(几分钟到几天)有效。这是一个关于标准实现的很好的教程。 JSON Web Token很好,我开始认为在区块链上验证自己很容易。事实上,当你使用以太坊时,你需要不断地去改进。 如果你将以太网地址(这只是公钥的sha3哈希)视为网站上的帐户,则可以通过使用私钥对一段数据进行签名来证明你拥有该帐户,这非常容易。此数据是任意的,可以是网站API提供的任意随机字符串。因此,我们可以使用地址作为用户名并绕过密码的需要。事实上,我们甚至不需要使用区块链来做到这一点。 这是使用Express的样子: 首先,我们需要使用私钥进行椭圆曲线签名: var ethUtil = require(‘ethereumjs-util’); // >=5.1.1 var data = ‘i

Questions about contract calling another contract

强颜欢笑 提交于 2019-12-06 10:48:05
Need help with two related Solidity questions. Question 1. Say, I have a contract calling another one: contract B { function f1() { ... } } contract A { B b; function f() { b.f1(); } } Will msg.sender for f1 be same as for f() ? Of will it be an address of a contract A ? Question 2. Say, I have contracts A and B. I want to have contract A { B b; A(address addr) { b = B(addr); } } In other language, I would use B b = null; in declaration, to avoid double initialization, but it does not work in Solidity. So how do I declare a member variable and then initialize it by address? Will msg.sender for

金色学院推出《以太坊Solidity智能合约开发速成》课程 -- 我是授课老师

断了今生、忘了曾经 提交于 2019-12-06 08:24:53
从零开始讲解Solidity智能合约编程,从编程语句到高级技巧。 以太坊是一个分布式的平台,可以运行智能合约:应用程序按照既定程序运行,不会出现停机,审查,欺诈或第三方干扰的可能性。这些应用程序运行在定制构建的区块链上,这是一个功能强大的全球共享基础架构,可以通过数字流转来代表财产的所有权。 以太坊EVM是当前区块链行业应用最为广泛的虚拟机,其所支持的Solidity智能合约语言是图灵完备的。应用Solidity智能合约语言,原本在真实世界中的复杂商业逻辑和应用都能在区块链上轻松实现。这也使得Solidity编程成为基于以太坊的应用开发中最为活跃的领域。 为提高广大开发者学习以太坊Solidity智能合约的效率,系统并快速学习智能合约开发,金色学院联合区块链行业知名技术讲师郑嘉文共同推出《以太坊Solidity智能合约开发速成》课程。 课程从零开始讲解Solidity智能合约编程,内容从最基础的编程语句开始,到智能合约编程的高级技巧。每一个知识点的讲解都辅以相应的示例。适合至少使用或者掌握了至少一门编程用户的开发者学习。 课程大纲 讲师简介 嘉文 《白话区块链》作者之一,曾长期担任贝尔公司在线营销部门与大数据产品部门的经理和技术架构师。专注于大数据分析和研究,以及与分布式数据库系统的分析和研究,从2012年开始先后对比特币、以太坊、雷欧币、瑞波、超级账本进行了代码级研究

Dynamic array in Solidity

▼魔方 西西 提交于 2019-12-06 07:48:44
问题 I a very new to Ethereum and Solidity development. I just want to declare a simple array ( dynamic list ), one set function to push string in that and one get a function which returns all the strings saved in the dynamic array. I search a lot but not able to find this simple stuff. Thanks in advance 回答1: Here is my solution, you need experimental ABIEncoderV2 to return array of strings. pragma solidity ^0.5.2; pragma experimental ABIEncoderV2; contract Test { string[] array; function push