トランザクションハッシュの決まり方について


#1

トランザクションハッシュは任意の文字または文字列を出せるものでしょうか?

末尾を16進数のうち希望したものにする、どこでもいいがabcdef…と続けるなど

具体的には特定のアドレスへのあらかじめ決められた数量のXEM送信の際、
送信元アドレスや送信時間の調整でそういった事が出来るかどうか教えていただけないでしょうか。
よろしくお願いいたします。


#2

トランザクションハッシュは、API仕様をみるとトランザクションのバイト配列をsha3-256でハッシュ化して得られるようです。

トランザクションのバイト配列の作成方法はAPI仕様書の7.9 Creating a signed transactionをみれば書いておりますが、トランザクションのバイト配列には、トランザクションの種類、送信するモザイクの種類、量、送信先、タイムスタンプなどが含まれます。

トランザクションハッシュに任意の文字列を出せるかどうかですが、実際試したわけではないですが、トランザクションのバイト配列を変えて試行錯誤するような形になるので、狙った文字列の長さが長くなるほど狙った文字列を得るのは難しくなると思われます。(マイニングのナンスを探すのと同じような感じになるので)

API仕様書
https://nemproject.github.io/#sending-the-data-to-NIS


#3

ご回答ありがとうございます!
なるほど、マイニングと同じような感じなんですね。

これは末尾だけ当てたい時では、
バイト配列に関わる情報のうちタイムスタンプ以外固定し、タイムスタンプを数十回ずらしながら計算すれば欲しい末尾の文字がいつ送信すれば出るか事前に分かるのだと思うのですが、

実際にそのタイムスタンプできっちり送信する事は容易なものなのでしょうか?


#4

予め、送りたいハッシュ値のTxを作ることになると思いますが、TxのタイムスタンプがTxを実際に送ろうとした時の時間とあまりにずれていると(どのくらいずれまで許容されるか忘れましたが)、FAILURE_TIMESTAMP_TOO_FAR_IN_PASTFAILURE_TIMESTAMP_TOO_FAR_IN_FUTUREというエラーになるので、バッチなどで実際に送りたい時間に送るように仕込む必要はありそうです。


#5

あらかじめ計算してTxを作り、バッチでタイミングを計ると出来てしまうと。
大変勉強になりました!DaokaTradeさんありがとうございました!