Author

Topic: Jonbet Crash Game Seeding Event (Read 137 times)

legendary
Activity: 2464
Merit: 3878
Visit: r7promotions.com
January 08, 2024, 01:00:05 PM
#10
May I know your website url?
newbie
Activity: 14
Merit: 0
January 08, 2024, 02:58:24 AM
#9
https://archive.ph/k91Vx#selection-2383.57-2383.72

Client seed for Fortune Double has been mined!
00000000000000000003a3a271533a06a146ae3556aa14240a378ee7d7654eeb

https://www.blockchain.com/explorer/blocks/btc/824826
newbie
Activity: 14
Merit: 0
January 08, 2024, 02:46:12 AM
#8
The game for this seeding event will be our original game Fortune Double.

As usual, we've generated a new chain of 10,000,000 SHA256 hashes where each hash is the hash of the hexadecimal representation of the previous hash. Being the last hash in the chain: 2cdcfd73de78db2eac8eb282ce819d756525fcd06a34ce858b1ffa8f74cbb9ec

Code:
const ROULETTE_TILES = [
  { number: 0, color: 'white' },
  { number: 11, color: 'black' },
  { number: 5, color: 'red' },
  { number: 10, color: 'black' },
  { number: 6, color: 'red' },
  { number: 9, color: 'black' },
  { number: 7, color: 'red' },
  { number: 8, color: 'black' },
  { number: 1, color: 'red' },
  { number: 14, color: 'black' },
  { number: 2, color: 'red' },
  { number: 13, color: 'black' },
  { number: 3, color: 'red' },
  { number: 12, color: 'black' },
  { number: 4, color: 'red' },
];

module.exports.getColorByRoll = (roll) => {
  return ROULETTE_TILES.find((t) => t.number === roll).color;
};

const getWhiteMultiplierFromHash = (hash) => {
  let h = parseInt(hash.slice(0, -52 / 4), 16);
  let e = Math.pow(2, 52);

  let multiplier = Math.floor((100 * e - h) / (e - h)) / 100 + 7.5;
  multiplier = Math.max(8.5, Math.min(multiplier, 250));

  return +multiplier.toFixed(2);
};

module.exports.getRollFromHash = (hash) => {
  const integ = parseInt(hash, 16);
  const MAX_RANGE = Math.pow(2, 256);
  const randval = integ / MAX_RANGE;
  const n = Math.floor(randval * 15);
  const tile = ROULETTE_TILES.find((t) => t.number === n);

  let color, multiplier;
  switch (tile.color) {
    case 'white':
      color = 0;
      multiplier = getWhiteMultiplierFromHash(hash);
      break;

    case 'black':
      color = 2;
      multiplier = 2;
      break;

    case 'red':
      color = 1;
      multiplier = 2;
      break;
  }

  return {
    n: n,
    multiplier: multiplier,
    color: color,
  };
};

We’re gonna be using a BlockHash that hasn’t been mined at the time of this post, we’re expecting to use Bitcoin block 824,826 this to prove we have no influence over the outcome of the game. Please guys feel free to quote this post so this will be all set in stone.

Looking forward to show you guys Fortune Double very soon!
newbie
Activity: 14
Merit: 0
January 08, 2024, 01:45:37 AM
#7
https://archive.ph/cqk4F#selection-1863.127-1863.135

Client seed for Crash II has been mined!
000000000000000000015399285347bdd20f4bde955a58d08e3b24c480a2b09b

https://www.blockchain.com/explorer/blocks/btc/824821
newbie
Activity: 14
Merit: 0
January 08, 2024, 01:04:32 AM
#6
Hello all! We're back again prepping another game before our launch. The game for this seeding event will be our original game Crash II.

As usual, we've generated a new chain of 10,000,000 SHA256 hashes where each hash is the hash of the hexadecimal representation of the previous hash. Being the last hash in the chain: a47ae20974d246da47fa1d54c231002de5d08fe72c4a120e9809c3ff02fee837

Code:
const { createHmac } = require('crypto');

const divisible = (hash, mod) => {
  // So ABCDEFGHIJ should be chunked like  AB CDEF GHIJ
  let val = 0;

  let o = hash.length % 4;
  for (let i = o > 0 ? o - 4 : 0; i < hash.length; i += 4) {
    val = ((val << 16) + parseInt(hash.substring(i, i + 4), 16)) % mod;
  }

  return val === 0;
};

const calculateIfIsBonusRound = (provablyFairHash) => {
  return divisible(provablyFairHash, 72);
};

const calculateCrashPointFromHash = function (hash) {
  // In 1 of 15 games the game crashes instantly.
  if (divisible(hash, 15)) return 0;

  // Use the most significant 52-bit from the hash to calculate the crash point
  let h = parseInt(hash.slice(0, 52 / 4), 16);
  let e = Math.pow(2, 52);

  return (Math.floor((100 * e - h) / (e - h)) / 100).toFixed(2);
};

// these will be the 10M pre generated rolls to be used
const hashChain = ['random1', 'random2'];

const gameHash = hashChain.pop();

const blockHash = '';

const hash = createHmac('sha256', gameHash).update(blockHash).digest('hex');

const crashPoint = calculateCrashPointFromHash(hash);
// if it's bonus round you get double payout
const isBonusRound = calculateIfIsBonusRound(hash);

console.log({ crashPoint, isBonusRound });


We’re gonna be using a BlockHash that hasn’t been mined at the time of this post, we’re expecting to use Bitcoin block 824,821 this to prove we have no influence over the outcome of the game. Please guys feel free to quote this post so this will be all set in stone.

Looking forward to show you guys Crash II very soon!
legendary
Activity: 2557
Merit: 1886
October 30, 2023, 08:59:05 PM
#5
Hm. So your original bitcointalk post is:  2023-10-26T02:26:40Z  but I believe bitcointalk gives you a grace window of 5 minutes to edit a post without showing it as edited? So that pushes us to potentially: 2023-10-26T02:31:40Z .


But the mined block time was 2023-10-26T02:26:57Z (which I realize is not necessarily exactly when it was mined).  And your archive of the seeding event is 2023-10-26T02:26:59Z which is actually 2 seconds after the mined bitcoin block time.


So while I'm sure you aren't cheating in your seeding event, it's also not obvious to me that you fairly picked a client seed either. I believe it might technically have been possible for you to post a seeding event, then once the next block was mined, edit your original post, then use archive.org to snapshot the post-edited page. Because this uncertainty exists, you've kind of defeated the purpose of the seeding event.  Had you picked a bitcoin block that was days (or at least, hours) ahead of time and widely dispersed details of your seeding event and methodology it could be obvious to see the client seed was fairly picked.
 

 
newbie
Activity: 14
Merit: 0
October 30, 2023, 02:54:52 PM
#4
https://archive.ph/H2ceo#selection-1571.42-1571.47

Client seed for Slide has been mined!
0000000000000000000282c24c48319da876cf4fbdcd427376a51a70d4bd020f


https://www.blockchain.com/explorer/blocks/btc/814558
newbie
Activity: 14
Merit: 0
October 30, 2023, 02:19:48 PM
#3
We'll also be releasing our original game Slide following the same approach as our previous posts, crash and double.

As part of our fairness we generated a chain of 10,000,000 SHA256 hashes where each hash is the hash of the hexadecimal representation of the previous hash. Being the last hash in the chain: 5ac52cfcc9687f26d28caa2d9b7fd9d54b2c9c5f1ec328ff09475eb1838b0b0f

Script to calculate Slide point:
Code:
const { createHmac } = require('crypto');

const divisible = (hash, mod) => {
  // So ABCDEFGHIJ should be chunked like  AB CDEF GHIJ
  let val = 0;

  let o = hash.length % 4;
  for (let i = o > 0 ? o - 4 : 0; i < hash.length; i += 4) {
    val = ((val << 16) + parseInt(hash.substring(i, i + 4), 16)) % mod;
  }

  return val === 0;
};
const calculateSlidePointFromHash = function (hash) {
  // In 1 of 15 games the game slides instantly.
  if (divisible(hash, 15)) return 0;

  // Use the most significant 52-bit from the hash to calculate the slide point
  let h = parseInt(hash.slice(0, 52 / 4), 16);
  let e = Math.pow(2, 52);

  return (Math.floor((100 * e - h) / (e - h)) / 100).toFixed(2);
};

// these will be the 10M pre generated rolls to be used
const hashChain = [];

const gameHash = hashChain.pop();

// It's the hash we're gonna be using of the result of a yet to be mined block on the blockchain #814,558
const blockHash = '';

const hash = createHmac('sha256', gameHash).update(blockHash).digest('hex');

const slidePoint = calculateSlidePointFromHash(hash);
console.log({ slidePoint });

We’re gonna be using a BlockHash that hasn’t been mined at the time of this post, we’re expecting to use Bitcoin block 814558, this to prove we have no influence over the outcome of the game. Please guys feel free to quote this post so this will be all set in stone.

Looking forward to show you guys Slide very soon!
newbie
Activity: 14
Merit: 0
October 25, 2023, 10:33:04 PM
#2
Archived post: https://archive.ph/cbBcn

Client seed has been mined!
0000000000000000000283a5702709c495051981f70595ff60b3366a8d77dc01


https://www.blockchain.com/explorer/blocks/btc/813847
newbie
Activity: 14
Merit: 0
October 25, 2023, 10:26:40 PM
#1
Welcome! In preparation for the upcoming launch of our original game Crash, we're performing this seeding event to ensure fairness and immutable rolls. For this seeding event we are following a similar approach as Stake.com.  

As part of our fairness we generated a chain of 10,000,000 SHA256 hashes where each hash is the hash of the hexadecimal representation of the previous hash. Being the last hash in the chain: 4c17cadb418fd89af62e4ea8427fc04a97b8fcdac9ba41e23fd7047339aca70b


Script to calculate Crash point:
Code:
const { createHmac } = require('crypto');

const divisible = (hash, mod) => {
  // So ABCDEFGHIJ should be chunked like  AB CDEF GHIJ
  let val = 0;

  let o = hash.length % 4;
  for (let i = o > 0 ? o - 4 : 0; i < hash.length; i += 4) {
    val = ((val << 16) + parseInt(hash.substring(i, i+4), 16)) % mod;
  }

  return val === 0;
};

const calculateCrashPointFromHash = function(hash) {
  // In 1 of 15 games the game crashes instantly.
  if (divisible(hash, 15))
    return 0;

  // Use the most significant 52-bit from the hash to calculate the crash point
  let h = parseInt(hash.slice(0,52/4),16);
  let e = Math.pow(2,52);

  return (Math.floor((100 * e - h) / (e - h)) / 100).toFixed(2);
}

// these will be the 10M pre generated rolls to be used
const hashChain = [];

const gameHash = hashChain.pop();

// It's the hash we're gonna be using of the result of a yet to be mined block on the blockchain #813,847
const blockHash = '';

const hash = createHmac('sha256', gameHash).update(blockHash).digest('hex');

const crashPoint = calculateCrashPointFromHash(hash);
console.log({ crashPoint });

We’re gonna be using a BlockHash that hasn’t been mined at the time of this post, we’re expecting to use Bitcoin block 813,847, this to prove we have no influence over the outcome of the game. Please guys feel free to quote this post so this will be all set in stone.

Looking forward to show you guys Crash very soon!

Jump to: