ProHoster > Блог > administratio > Quorum negotiationes publicas et privatas in JPMorgan perfice, quorum impedimento utens Web3
Quorum negotiationes publicas et privatas in JPMorgan perfice, quorum impedimento utens Web3
Quorum est stipes Ethereum-substructio ab JPMorgano evoluta et recentissima primum suggestum crepidinis distributum ab Microsoft Azure oblatum est.
Quorum causas privatas et publicas sustinet et multos usus mercatorum habet.
In hoc articulo, unum talem missionem examinabimus - instruere retis distributi inter macellum et possessorem horreorum, ut notitias recentes de temperie horrei praebeant.
Ad illustrandum, missionem adhibemus ad vigilantiam temperatam in apothecae sodalium Quorum retis in Interreti Rerum (IOT).
context
Coetus societates horreorum in consortio coniungit cum informationibus et processibus automatis in impedimento coniunctim coniungit. Ad hoc, societatibus quorum uti placuit. In hoc articulo duos missiones operiemus: publicas res et privatas res.
Transactiones a diversis participantibus penitus fiunt cum consortio cuius sunt. Utraque transactiones vel contractus disponit vel munus vocat in contractu ad notitias fasciculos retis. Hae actiones omnibus nodis in retis replicantur.
Publica negotia praesto sunt ad videndum ab omnibus participantibus consortium. Negotiationes privatae lavacrum secreto addunt et praesto sunt iis tantum participes qui iura hoc faciunt.
Utrisque missionibus eodem contractu ad claritatem utimur.
Dolor contractus
Infra est simplex contractus captiosus pro nostro missione creatus. Publica variabilis est temperaturequae mutari utens set ac per modum get.
pragma solidity ^0.4.25;
contract TemperatureMonitor {
int8 public temperature;
function set(int8 temp) public {
temperature = temp;
}
function get() view public returns (int8) {
return temperature;
}
}
Ut contractus operari web3.jsin ABI formato et bytecode vertendum est. Munus utens formatContractinfra conscribit contractus usura solc-js.
Nunc ut contractus paratus est, retiaculum explicabimus et contractus explicabimus.
Node instruere
Nodus explicans satis intensus esse potest et hic processus substitui potest utendo servitio Vinculum.
Infra est processus explicandi Quorum retis cum consensu Raft et tribus nodis.
Primum consilium crearemus Quorum Project:
Quorum network cum Raft consensum crearemus in Google Cloud Platform:
Duos nodos nodi iam per defaltam creatos addamus:
Nodi tres cursus;
Nodi singula pagina ostendit RPC endpunctum, clavem publicam, etc.
Retis explicatur. Nunc pandemus captiosam pactiones et res gestas utendo web3.js.
Publica transactions
context
CELLA temperatura magni momenti est in redigendis sumptibus, praesertim pro fructibus destinatis ad nullas temperaturas sub-reponendas.
Societates permittens communicare extra temperiem locorum locorum eorum in tempore reali et in motu immutabili recitare, participes retis sumptibus et tempore minuere.
Tria opera faciemus, in schemate illustrata;
Nos contractus per explicandam nodi 1:
const contractAddress = await deployContract(raft1Node);
console.log(`Contract address after deployment: ${contractAddress}`);
Pone temperatus per nodi 2 per gradus III:
const status = await setTemperature(raft2Node, contractAddress, 3);
console.log(`Transaction status: ${status}`);
// Execute public script
node public.js
Contract address after deployment: 0xf46141Ac7D6D6E986eFb2321756b5d1e8a25008F
Transaction status: true
Retrieved contract Temperature 3
Deinde inspicere possumus entries in Quorum rimor in tabula Vinstack, ut infra patebit.
Omnes tres nodi interacted et operationes renovatae sunt:
Primus contractus transactionem direxit.
Secundum transactionem constituit contractus temperatus ad 3 gradus.
Temperatura per nodi localem recipitur, ita transactio nulla creatur.
Privata transactions
context
Communis postulatio consociationum est notitia tutelae. Exempli gratia, considera missionem in qua Supermarket redditus horreis spatium nendae seafood a separato Vendor:
Vendor sensoriis utens IoT legit, temperaturas omnes 30 secundas aestimat et eas transmittit Ad forum;
hi valores modo praesto sint Ad venditorem и Ad forumretis a consortio.
Quattuor munia perficiemus in schemate supra illustrata.
Eisdem tribus nodis e missione praecedente utimur ad res privatas demonstrandas:
forum dolor contractus explicat privatus to Supermarket и Vendor.
Tertium latus ius dolor contractus aditus non habet.
Invocabimus modi get и set pro Supermarket и Vendor ad demonstrandum privatum, Quorum transactionem.
Privatus contractus participantium explicabimus forum и Vendor per participem forum:
In posuere tortor a Tertia pars (nodi externi) et obtine temperatus valorem;
// Attempts to set Contract temperature to 10, this will not mutate contract's temperature
await setTemperature(
raft3Node,
contractAddress,
process.env.PK1,
10,
);
// This returns null
const temp = await getTemperature(raft3Node, contractAddress);
console.log(`[Node3] temp retrieved after updating contract from external nodes: ${temp}`);
In posuere tortor a Vendor (nodi internus) et temperatus valorem posside:
Temperatus in hoc missione debet reddere valorem XII ex acri contractu. Lorem quod Vendor hinc aditum ad captiosam contractus habet auctoritatem.
// Updated Contract temperature to 12 degrees
await setTemperature(
raft2Node,
contractAddress,
process.env.PK1,
12,
);
// This returns 12
const temp2 = await getTemperature(raft2Node, contractAddress);
console.log(`[Node2] temp retrieved after updating contract from internal nodes: ${temp2}`);
Nos adepto temperatus a Tertia pars (nodi externi);
In gradu 3 temperatura ad 12 sed Tertium latus aditus ad captiuitatem non habet. Ergo valor reditus nullus debet esse.
// This returns null
const temp3 = await getTemperature(raft3Node, contractAddress);
console.log(`[Node3] temp retrieved from external nodes after update ${temp}`);
Deinde propius inspiciemus in negotiis privatis faciendis in quorum retis cum web3.js. Cum in plerisque codicibus idem sit rerum publicarum, eas tantum partes, quae privatis negotiis diversae sunt, illustrabimus.
Nota contractum ad retiaculum impositum immutabile esse, ideo accessus permissus opportunis nodi concedendus est, quo pacto contractus publicus tempore contractus explicatur, non post.
async function deployContract(web3, publicKey) {
const address = await getAddress(web3);
const contract = new web3.eth.Contract(
temperatureMonitor.interface,
);
return contract.deploy({
data: temperatureMonitor.bytecode,
})
.send({
from: address,
gas: ‘0x2CD29C0’,
// Grant Permission to Contract by including nodes public keys
privateFor: [publicKey],
})
.then((contract) => {
return contract.options.address;
});
}
Simili modo negotia privata fiunt - includendo clavem publicam participantium tempore executionis.
async function setTemperature(web3, contractAddress, publicKey, temp) {
const address = await getAddress(web3);
const myContract = await getContract(web3, contractAddress);
return myContract.methods.set(temp).send({
from: address,
// Grant Permission by including nodes public keys
privateFor: [publicKey],
}).then((receipt) => {
return receipt.status;
});
}
Nunc currere possumus private.js cum sequentibus eventibus:
node private.js
Contract address after deployment: 0x85dBF88B4dfa47e73608b33454E4e3BA2812B21D
[Node3] temp retrieved after updating contract from external nodes: null
[Node2] temp retrieved after updating contract from internal nodes: 12
[Node3] temp retrieved from external nodes after update null
Quorum explorator in Chainstack sequentibus ostendet:
instruere contractus participem forum;
supplicium SetTemperature ex Tertia pars;
supplicium SetTemperature ex participem Vendor.
Ut videre potes, utraque res perficitur, sed tantum transactionem participem Vendor in contractu temperatus renovavit. Ita res privatae immutabilitatem praebent, sed simul notitias tertiae parti non revelant.
conclusio,
Quorum causam ad usum commercialem inspeximus ut informationes temperaturas in horreis up-date praeberet instruendo retis inter duas partes - macellum et horreum possessoris.
Ostendimus quomodo temperaturae notitiae up-dates per res tam publicas quam privatas defendi possint.
Multum applicatio missionum potest esse et, ut vides, non est difficile.