Commentaires sur le succès du réseau Fantom – Malgré la récente baisse des frais de transaction pour Ethereum, les blockchains de contrats intelligents concurrentes gagnent du terrain. Le nombre de transactions quotidiennes a explosé chez Fantom.

Fantom est une blockchain qui a été mise à disposition fin août 2020 et entre dans la catégorie des concurrents d’Ethereum. Il dispose donc d’une blockchain compatible avec la machine virtuelle Ethereum (EVM). En pratique, cela signifie qu’il est capable d’interpréter et d’exécuter du code de solidité exactement comme Ethereum et donc d’héberger les mêmes contrats qu’avec Ethereum.

Contrairement à Ethereum, cependant, Fantom fournit un consensus à travers un mécanisme de preuve d’enjeu à coup sûr . En conséquence, il fonctionne actuellement beaucoup mieux qu’Ethereum.

Comme avec toutes les plates-formes compatibles EVM, Fantom a évidemment vu le développement d’un écosystème DeFi. Cela a abouti à la création de plusieurs plates-formes d’agriculture de revenu, telles que SpookySwap ou SpiritSwap, dont les pools rapportent déjà plusieurs millions de dollars.

Compte tenu de l’augmentation récente du nombre de plates-formes DeFi, le nombre de transactions quotidiennes sur la blockchain Fantom a ont littéralement explosé depuis la mi-avril.

Ainsi, en dix jours, ils ont augmenté de plus de 1 700%, passant d’environ 12 000 transactions par jour le 16 avril à plus de 205 000 transactions le 28 avril.

Pour le moment, Fantom semble exploiter la situation volatile dans laquelle se trouve Ethereum en termes de frais de transaction. Cependant, d’autres blockchains tentent également de remplacer Ethereum. Reste à voir si celles-ci pourront s’imposer sur le long terme afin de survivre à la démocratisation des solutions de second niveau et au passage à la Proof of Stake sur Ethereum.

Ingénieur logiciel et systèmes distribués par formation, crypto passionné depuis 2013. Homme à tout faire entre minage et développement, j’essaie toujours d’en savoir plus sur le monde des crypto-monnaies et de partager les résultats de mes recherches à travers mes articles.

Votre email ne sera pas publié. En publiant un commentaire, vous acceptez notre politique de confidentialité.

$ (‘#_ form_3_submit’). attr (‘onClick’, ‘return false;’);
$ (‘# form_capture_jdc # _form_3_submit’). cliquez sur (fonction () {
$ (‘# email’). css (‘border’, ‘none’);
$ (‘# rgpd’). css (‘box-shadow’, ‘aucun’);
if ($ (‘# email’). val ()! = ”) {
if ($ (‘# rgpd’). prop (‘vérifié’) == true) {
$ .ajax ({
URL: ‘https://journalducoin.com/wp-content/themes/journalducoin-wa/tdc-add-lead.php?email=’ $ (‘# email’). val (),
Tapez: ‘OBTENIR’,
Type de données: ‘html’,
Succès: Fonction (données, état) {
$ (‘# form_capture_jdc formulaire’). trigger (‘soumettre’);
}}
});
} else {$ (‘# rgpd’). css (‘boîte-ombre’, ‘0px 0px 3px 0px # F20000’); }}
} autre {
if ($ (‘# email’). val () == ”) {$ (‘# email’). css (‘bordure’, ‘1px solide # F20000’); }}
if ($ (‘# rgpd’). prop (‘vérifié’) == false) {$ (‘# rgpd’). css (‘boîte-ombre’, ‘0px 0px 3px 0px # F20000’); }}
}}
});

window.cfields = [];
window._show_thank_you = Fonction (ID, message, trackcmp_url, email) {
var form = document.getElementById (‘_ form_’ id ‘_’), dank_you = form.querySelector (‘._ form-merci’);
form.querySelector (‘._ form-content’). style.display = ‘aucun’;
Thank_you.innerHTML = Message;
merci_you.style.display = ‘block’;
const vgoAlias ​​= type de visiteurGlobalObjectAlias ​​=== ‘indéfini’? ‘vgo’: visiteursGlobalObjectAlias;
var VisitorObject = window [vgoAlias];
if (E-Mail & & type d’objet visiteur! == ‘undefined’) {
VisitorObject (‘setEmail’, E-Mail);
VisitorObject (‘Mettre à jour’);
} else if (typeof (trackcmp_url)! = ‘indéfini’ & & trackcmp_url) {
// URL de suivi du site à utiliser après l’envoi du formulaire en ligne.
_load_script (trackcmp_url);
}}
if (typeof window._form_callback! == ‘undefined’) window._form_callback (id);
};
window._show_error = Fonction (ID, message, HTML) {
var form = document.getElementById (‘_ form_’ id ‘_’), err = document.createElement (‘div’), button = form.querySelector (’bouton’), old_error = form.querySelector (‘._ form_error’ );
if (old_error) old_error.parentNode.removeChild (ancienne_error);
err.innerHTML = message;
err.className = ‘_error-inner _form_error _no_arrow’;
var wrapper = document.createElement (‘div’);
wrapper.className = ‘_form-inner’;
wrapper.appendChild (err);
button.parentNode.insertBefore (wrapper, bouton);
document.querySelector (‘[id ^ = “_ form”] [id $ = “_ submit”]’). désactivé = faux;
if (html) {
var div = document.createElement (‘div’);
div.className = ‘_error-html’;
div.innerHTML = html;
err.appendChild (div);
}}
};
window._load_script = fonction (url, rappel) {
var head = document.querySelector (‘head’), script = document.createElement (‘script’), r = false;
script.type = ‘texte / javascript’;
script.charset = ‘utf-8’;
script.src = url;
if (rappel) {
script.onload = script.onreadystatechange = function () {
if (! r & & (! this.readyState || this.readyState == ‘complete’)) {
r = vrai;
rappeler ();
}}
};
}}
head.appendChild (script);
};
(une fonction () {
if (window.location.search.search (“excludeform”)! == -1) renvoie false;
var getCookie = function (nom) {
var match = document.cookie.match (new RegExp (‘(^ |;)’ nom ‘= ([^;])’));
Vengeance? Match [2]: zéro;
}}
var setCookie = function (nom, valeur) {
var maintenant = nouvelle date ();
var time = now.getTime ();
var expireTime = heure 1000 * 60 * 60 * 24 * 365;
now.setTime (expireTime);
document.cookie = nom ‘=’ valeur ‘; expires = ‘maintenant’; chemin = / ‘;
}}
var addEvent = function (élément, événement, fonction) {
if (element.addEventListener) {
element.addEventListener (événement, fonction);
} autre {
var oldFunc = element [événement ‘on’];
element [‘on’ event] = function () {
oldFunc.apply (meurt, arguments);
func.apply (ceci, arguments);
};
}}
}}
var _removed = faux;
var form_to_submit = document.getElementById (‘_ form_3_’);
var allInputs = form_to_submit.querySelectorAll (‘input, select, textarea’), tooltips = [], submit = false;

var getUrlParam = function (nom) {
var regexStr = ‘[? &] ‘nom’ = ([^ & #] *) ‘;
var résultats = new RegExp (regexStr, ‘i’). exec (window.location.href);
Retournez les résultats! = indéfini? decodeURIComponent (résultats [1]): faux;
};

pour (var i = 0; i < allInputs.length; i) {
var regexStr = " Champ \ [(\ d) \] &quot ;;
var results = new RegExp (regexStr) .exec (allInputs [i] .name);
if (résultats! = indéfini) {
allInputs [i] .dataset.name = window.cfields [résultats [1]];
} autre {
allInputs [i] .dataset.name = allInputs [i] .name;
}}
var fieldVal = getUrlParam (allInputs [i] .dataset.name);

if (fieldVal) {
if (allInputs [i] .dataset.autofill === " false") {
continue;
}}
if (allInputs [i] .type == " radio" || allInputs [i] .type == " checkbox") {
if (allInputs [i] .value == fieldVal) {
allInputs [i] .checked = true;
}}
} autre {
allInputs [i] .value = fieldVal;
}}
}}
}}

var remove_tooltips = function () {
pour (var i = 0; i < tooltips.length; i) {
Info-bulles [i] .tip.parentNode.removeChild (Info-bulles [i] .tip);
}}
Info-bulles = [];
};
var remove_tooltip = function (elem) {
pour (var i = 0; i < tooltips.length; i) {
if (Info-bulles [i] .elem === elem) {
Info-bulles [i] .tip.parentNode.removeChild (Info-bulles [i] .tip);
tooltips.splice (i, 1);
Revenir;
}}
}}
};
var create_tooltip = function (élément, texte) {
var tooltip = document.createElement (& # 039; div& # 039;), arrow = document.createElement (& # 039; div& # 039;), interne = document.createElement (& # 039; div&_tip;) =}
if (elem.type! = & # 039; radio& # 039; & & elem.type! = & # 039; case à cocher& # 039;) {
tooltip.className = & # 039; _error& # 039 ;;
arrow.className = & # 039; _error-arrow& # 039 ;;
inner.className = & # 039; _error-inner& # 039 ;;
inner.innerHTML = texte;
tooltip.appendChild (flèche);
tooltip.appendChild (intérieur);
elem.parentNode.appendChild (info-bulle);
} autre {
tooltip.className = & # 039; _error-inner _no_arrow& # 039 ;;
tooltip.innerHTML = texte;
elem.parentNode.insertBefore (info-bulle, elem);
new_tooltip.no_arrow = true;
}}
new_tooltip.tip = info-bulle;
new_tooltip.elem = elem;
tooltips.push (new_tooltip);
return new_tooltip;
};
var resize_tooltip = function (info-bulle) {
var rect = tooltip.elem.getBoundingClientRect ();
var doc = document.documentElement, scrollPosition = rect.top – ((window.pageYOffset || doc.scrollTop) – (doc.clientTop || 0));
if (scrollPosition < 40) {
tooltip.tip.className = tooltip.tip.className.replace (/? (_ ci-dessus | _below)? / g, & # 039; & # 039;) & # 039; _below& ‘;
} autre {
tooltip.tip.className = tooltip.tip.className.replace (/? (_ ci-dessus | _below)? / g, & # 039; & # 039;) & # 039; _above& # 039 ;;
}}
};
var resize_tooltips = function () {
if (_removed) return;
pour (var i = 0; i < tooltips.length; i) {
if (! info-bulles [i] .no_arrow) resize_tooltip (info-bulles [i]);
}}
};
var validate_field = function (elem, remove) {
var tooltip = null, value = elem.value, no_error = true;
supprimer? remove_tooltip (elem): false;
if (elem.type! = & ‘checkbox&’) elem.className = elem.className.replace (/? _has_error? / g, & # 039; & # 039;);
if (elem.getAttribute (& ‘required&’)! == null) {
if (elem.type == & # 039; radio& # 039; || (elem.type == & # 039; checkbox& # 039; & & /any/.test(elem.className)) {
var elems = form_to_submit.elements [elem.name];
if (! (instance elems de NodeList || instance elems de HTMLCollection) || elems.length < = 1) {
no_error = elem.checked;
}}
autrement {
no_error = false;
pour (var i = 0; i < elems.length; i) {
if (elems [i] .checked) no_error = true;
}}
}}
if (! no_error) {
tooltip = create_tooltip (elem, " Veuillez sélectionner une option. ");
}}
} else if (elem.type == & ‘checkbox&’) {
var elems = form_to_submit.elements [elem.name], found = false, err = [];
no_error = vrai;
pour (var i = 0; i < elems.length; i) {
if (elems [i] .getAttribute (& ‘required&’) === null) continue;
if (! found & & elems [i]! == elem) return true;
trouvé = vrai;
elems [i] .className = elems [i] .className.replace (/? _has_error? / g, & ‘&’);
if (! elems [i] .checked) {
no_error = false;
elems [i] .className = elems [i] .className & # 039; _has_error& # 039 ;;
err.push ("% s est requis" .replace ("% s" elems [i] .valeur));
}}
}}
if (! no_error) {
tooltip = create_tooltip (elem, err.join (& # 039;
‘));
}}
} else if (elem.tagName == ‘SELECT’) {
var sélectionné = vrai;
if (item.multiple) {
sélectionné = faux;
pour (var i = 0; i < elem.options.length; i) {
if (elem.options [i] .selected) {
sélectionné = vrai;
Interruption;
}}
}}
} autre {
pour (var i = 0; i < elem.options.length; i) {
if (elem.options [i] .selected & &! elem.options [i] .value) {
sélectionné = faux;
}}
}}
}}
si (! sélectionné) {
elem.className = elem.className & # 039; _has_error& # 039 ;;
no_error = false;
tooltip = create_tooltip (elem, " Veuillez sélectionner une option. ");
}}
} else if (valeur === undefined || valeur === null || valeur === & # 039; & # 039;) {
elem.className = elem.className & # 039; _has_error& # 039 ;;
no_error = false;
tooltip = create_tooltip (elem, & “Ce champ est obligatoire. &”);
}}
}}
if (no_error & & elem.name == & # 039; email& # 039;) {
if (! value.match (/ ^ [ _a-z0-9-& # 039; & =] (. [ _a-z0-9-& # 039;]) * @ [a-z0-9 -] (. [a-z0-9-]) * (. [az] {2,}) $ / i)) {
elem.className = elem.className & # 039; _has_error& # 039 ;;
no_error = false;
tooltip = create_tooltip (elem, " Entrez une adresse e-mail valide. ");
}}
}}
if (no_error & & /date_field/.test(elem.className)) {
if (! value.match (/ ^ d d d d- d d- d d $ /)) {
elem.className = elem.className & # 039; _has_error& # 039 ;;
no_error = false;
tooltip = create_tooltip (elem, " Veuillez entrer une date valide. ");
}}
}}
Info-bulle? resize_tooltip (info-bulle): false;
return no_error;
};
var need_validate = function (el) {
if (el.getAttribute (& ‘required&’)! == null) {
retourne vrai
}}
if (el.name === & ’email&’ & & el.value! == " & ‘) {
retourne vrai
}}
retour faux
};
var validate_form = fonction (s) {
var err = form_to_submit.querySelector (& # 039; ._ form_error& # 039;), no_error = true;
if (! soumis) {
soumis = vrai;
for (var i = 0, len = allInputs.length; i < len; i) {
var entrée = allInputs [i];
if (need_validate (entrée)) {
if (input.type == & ‘text&’) {
addEvent (entrée, & ‘blur&’, function () {
this.value = this.value.trim ();
validate_field (ceci, vrai);
});
addEvent (entrée, & ‘input&’, function () {
validate_field (ceci, vrai);
});
} else if (input.type == & ‘radio&’ || input.type == & ” checkbox& ”) {
(Fonction (el) {
var radios = form_to_submit.elements [el.name];
pour (var i = 0; i < radios.length; i) {
addEvent (Radios [i], & ‘click&’, function () {
validate_field (el, vrai);
});
}}
}) (Contribution);
} else if (input.tagName == & ‘SELECT&’) {
addEvent (entrée, & ‘change&’, function () {
validate_field (ceci, vrai);
});
} else if (input.type == & ‘textarea&’) {
addEvent (entrée, & ‘input&’, function () {
validate_field (ceci, vrai);
});
}}
}}
}}
}}
remove_tooltips ();
for (var i = 0, len = allInputs.length; i < len; i) {
var elem = allInputs [i];
if (need_validate (elem)) {
if (elem.tagName.toLowerCase ()! == " select") {
elem.value = elem.value.trim ();
}}
validate_field (elem)? vrai: no_error = faux;
}}
}}
if (! no_error & & e) {
e.preventDefault ();
}}
resize_tooltips ();
return no_error;
};
addEvent (fenêtre, & ‘resize&’, resize_tooltips);
addEvent (fenêtre, & ‘scroll&’, resize_tooltips);
window._old_serialize = null;
if (typeof serialize! == & ‘undefined&’) window._old_serialize = window.serialize;
_load_script (" // d3rxaij56vjege.cloudfront.net/form-serialize/0.3/serialize.min.js&quot ;, function () {
window._form_serialize = window.serialize;
if (window._old_serialize) window.serialize = window._old_serialize;
});
var form_submit = fonction (s) {
e.preventDefault ();
if (validate_form ()) {
// utilisez cette astuce pour obtenir le bouton d’envoi & Désactivez-le avec un simple javascript
document.querySelector (& # 039; #_ form_3_submit& # 039;). désactivé = vrai;
var serialized = _form_serialize (document.getElementById (& # 039; _form_3_& # 039;));
var err = form_to_submit.querySelector (& ‘._ form_error&’);
tort? err.parentNode.removeChild (err): false;
_load_script (& # 039; https: //journalducoin.activehosted.com/proc.php? & # 039; sérialisé & # 039; & jsonp = true& # 039;);
}}
retour faux;
};
addEvent (form_to_submit, & ‘submit&’, form_submit);
}) ();

Ce site Web utilise Google Analytics pour collecter des informations anonymes telles que le nombre de visiteurs sur le site Web et les pages les plus populaires.

Ce site Web utilise des cookies afin que nous puissions vous offrir la meilleure expérience utilisateur possible. Les informations sur les cookies sont stockées dans votre navigateur et remplissent des fonctions telles que vous reconnaître lorsque vous revenez sur notre site Web et aider notre équipe à comprendre les zones du site Web que vous trouvez les plus intéressantes et utiles.

Cette option doit être utilisée à tout moment. doit être activé afin que nous puissions enregistrer vos paramètres pour les paramètres des cookies.

Si vous désactivez ce cookie, nous ne pouvons pas enregistrer vos paramètres. Cela signifie que vous devrez activer ou désactiver les cookies chaque fois que vous visitez ce site Web.

Ce site Web utilise Google Analytics pour collecter des informations anonymes telles que le nombre de visiteurs sur le site Web et les pages les plus populaires.

Ref: https://journalducoin.com